Lze pouzit ASM nebo Javassist, ale to je IMHO overkill pro vas ucel.

2010/4/1 Ondra Medek <[email protected]>:
> 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
>



-- 
Ondra Medek

Odpovedet emailem