Vraptor e parâmetros genéricos [hierarquia de classes]

Galera se eu tiver uma hierarquia de classes, por exemplo:

public class Pessoa {}

public class PessoaFisica extends Pessoa {}

public class PessoaJuridica extends Pessoa {}

Eu terei que criar um controller pra cada tipo ou um método pra cada tipo? Não dá pra colocar o tipo mais genérico?
Exemplo:

public class PessoasController {

    public void add(Pessoa pessoa) { //isso não vai funcionar pra Pessoa jurídica né?

    }

}

Estou usando o vrptor 3 e to precisando modelar classes desse tipo. Só que acho que fica meio estranho eu ter 3 controllers pra cada uma ou vários métodos add pra cada tipo…

o problema é que o VRaptor não tem como saber se precisa instanciar uma pessoa física ou jurídica…

e é meio difícil definir um jeito fácil de fazer isso…

na última versão do vraptor(snapshot), dá pra fazer algo do tipo:

passar um parâmetro na requisição:

  • pessoa = PessoaFisica

criar um converter para pessoa:

@Convert(Pessoa.class)
public class PessoaConverter implements Converter<Pessoa> {

     public Pessoa convert(String value, ....) {
         if ("PessoaFisica".equals(value)) { // value é o que veio no parâmetro
             return new PessoaFisica();
         }
         //....
     }
}

daí o VRaptor vai continuar populando a pessoa com uma instância da pessoa física…

isso é o suficiente pra vc?

o snapshot em questão é esse:
https://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.4.0-SNAPSHOT/vraptor-3.4.0-20110505.142301-2.jar