Pouzijte wrapper, jak pisesete, ale nic prepisovat nemusite:
class Clovek2 {
private Clovek original;
public Clovek2(Clovek original) {
this.original = original;
}
public Clovek getOriginal() { return this.original;}
// pridane property
public isAdult() { return this.original.getAge() > 18; }
...
}
a ve view volejte clovek.getOriginal().getAge() nebo clovek.isAdult();
2010/4/1 Petr Prikryl <[email protected]>:
> Dobry den,
> resim takovy zajimavy problem jak pridat metodu a pripadne zmenit
> chovani metody ve view, pricemz jsem vazany tim ze puvodni objekt je
> entita a nemuzu (nechci) ji pridavat metody a parametry ktere se v
> bussines z ni daji vyderivovat.
>
> Napriklad:
> Clovek{
> private Integer id;
> private Date narozen;
> //a dalsich 50 atributu (prehanim)
> }
>
> ClovekProxy extends Clovek{
> public Boolean dospely(){
> return narozen>xy; //cca
> }
>
> pricemz potreboval bych neco jako:
>
> public List<ClovekProxy> getLidi{
> return (List<CLovekProxy>) userBean.findAll();
> }
>
> nechce se mi to ale delat pres
> iteraci pres kolekci a new ClovekProxy(Clovek c);
>
> ClovekProxy extends Clovek{
> public Boolean dospely(){
> return narozen>xy; //cca
> /////////////
> //zkopirovat vsechny metody a upravit v nich
> //kod na
> getNarozen(){
> return c.getNarozen;
> }
> ///////////
> }
>
> protoze se mi to zda ze to je hrozne neefektivni (z hlediska
> programovani ne vykonu), a takove skrabani levou nohou za pravym uchem.
>
> libilo by se mi neco jako
> public ClovekProxy(Clovek c){
> this=c;
> }
>
> Pripadne existuje na toto nejaky framework, pripadne bude neco podobneho
> v java 1.7? Nebo se mam smmirit ze to je limit javy? Protoze mam pocit
> ze ve smalltalku by to slo vyresit (nejsem smalltalkista)
>
> Dekuji
> PP