Estou desenvolvendo uma taglib que recebe um coleção de objetos, e os ordena. Porém essa taglib deve ordenar qualquer tipo de objeto de uma aplicação web. Ou seja, Se na minha aplicação eu tenho dois TO(Transfer Object) UsuarioTO e FuncionarioTO e cada hora eu quero ordenar uma lista de cada objeto, em minha taglib não posso fazer o Iterator com:
Uma solução para isso é o polimorfismo. Você pode criar uma interface que tanto usuário como funcionário emplimentam esta interface.
Quando for iterar na verdade você terá um objeto do tipo da interface. Tipo
Eu não posso usar polimorfismo, pois as classes são totalmente independentes, Em uma aplicação de uma empresa posso ter mais de 30 Transfer Object…
Alguém tem outra solução… :oops:
B
BrunoCarloPJ
Ola,
O que vc pode fazer e fazer com que todas os seus TO implementes Comparable, de forma que eles saibam como se ordenar… e desta forma vc ja tem o polimorfismo.
C
ChristielenPJ
Pessoal, vocês não estão entendendo :cry:
Vou colocar a minha classe que desenvolve uma taglib para que vocês possam entender melhor.
Essa linha UsuarioTO usuarioTO = (UsuarioTO) it.next();
não pode ser fixa porque tenho vários TO. Alguém tem alguma idéia de como eu faço para pegar o nome da classe do objeto que estou passando por parâmetro pela minha taglib??
C
camisinhaPJ
Christielen,
de acordo com o seu código não vejo porque você não pode utilizar polimorfismo…para isso basta todas as classes TO independente de quantas sejam, implementarem a interface. Como foi exibido anteriormente.
E quando você passar a listagem de objeto, esta irá ser do tipo da interface.
Pelo o que você mostrou dá perfeitamente para utilizar polimorfismo.
Contudo se você está vendo alguma barreira em implementar desta forma você pode utilizar o [color=“darkblue”]instance of[/color], que é uma péssima prática de programação.
Valeu
B
BrunoCarloPJ
Ola,
Po, mas o que vc esta mostrando noa e uma ordenacao… vc esta tentando mostrar os atributos de um Bean usando tags… pelo menos e o que deu pra notar no codigo que vc postou…
Se for isto, vc pode usar reflection, vc configura seu tag para receber os nomes das propriedades a serem exibidas, as recupera via reflection, para isto so fazer uma busca aqui no forun, eu mesmo ja ajudei alguns colegas a fazerem isto, e exibir…
Mas acho que vc pode usar EL para fazer isto, misturando com o forEach, do JSTL… fica melhor, e vc nao precisa escrever uma tag para isto…
C
ChristielenPJ
Pessoal eu sei que existem tags que executam a tarefa de listagem de uma coleção, porém o pessoal de onde eu trabalho que que eu desenvolva um grid customizado, ou seja, eu passo como parâmetro para minha taglib a lista de objetos e os campos que eu quero que apareça na taglib. Certo? Porém dentro de minha taglib eu tenho que itera-la para formata-la num HTML desenvolvidos pelo designer da empresa.
Eu não posso fazer que um transfer object tenham poliformismo porque se eu fizer isso o pessoal da arquitetura do projeto me mata :roll:
Não sei mas o que fazer, vocês tem uma solução alternativa para que eu possa ordenar a lista de objetos e que sejam independentes de Transfer Object, ou seja, eu passo qualquer lista de objeto com qualquer TO e ele saiba como itera-lo??