H:inputText com mascara

Pessoal
procurei bastante para uma solução para meu problema e estou usando aqui como ultimo recurso.
seguinte:

tenho um <h:inputText … … /> na minha pagina de cadastro
este inputtext deve possuir uma mascara de entrada, até aí tudo bem eu poderia ter usado javascript
mas o problema é q esta mascara é definida pelo usuario da aplicação, e poderá ser modificada a qualquer momento.

exemplo de mascara ###.#.##.### onde # será um numero de 0 a 9 e o ponto, é ponto mesmo

alguem pode me ajudar ?

minha ideia era criar um metodo q quando o usuario esta digitando ele o java vai mascarando o campo conforme a regra definida, estou tentando usar algo do tipo:

  <s:decorate id="campoDecoration" template="layout/edit.xhtml">
      <ui:define name="label">Campo</ui:define>
      <h:inputText id="campo" required="true" size="50"  maxlength="50"
            value="#{minhaClasseHome.instance.campo}">
            <a:support event="onblur" reRender="campoDecoration" 
                bypassUpdates="true" ajaxSingle="true"/>
    *      <a:support event="onchange" reRender="campoDecoration" bypassUpdates="true" ajaxSingle="true"
                actionListener="#{minhaClasseHome.instance.metodoMascara}" ></a:support>
                </h:inputText>
     </s:decorate>

obs: acho q é irrelevante, mas, estou usando seam-gen para gerar minhas páginas de cadastro!
todo o código acima foi gerado pelo SEAM, a unica mudança q fiz , foi colocar a linha q está com o *
nao sei como ficaria o metodo metodoMascara para fazer qualquer alteraçao no meu campo!