nimbus 超便利だった罠

JavaのDTOまたはBEANのクラスに座標で値を格納できるんです。
便利です。

っと、失礼しました。
知らない人は何をいってるか解らないと思うので、適当コードで説明させて頂きます。

◆普通のDTO


public class NimbusDto(){

  private int id = 0;
  private String name = "";

  public void setId(int id){
     this.id = id;
  }

  public void setName(String name){
     this.name = name;
  }

  //getter・・・
}

(適当にかいた)NimbusDtoに値を格納する時には普通はsetterを呼んで追加すると思うんですね。
nimbus だとこうなります。

◆DTOに値を設定


NimbusDto nimbusDto = new NimbusDto();

//座標を設定
Property prop = PropertyFactory.createProperty(”id”);

//値をセット(nimbusDtoは参照渡し)
prop.setProperty(nimbusDto, "999");

まぁぱっと見なにが便利なんだこれ的に思う人もいると思うんですが、
nimbusのすごいところは多重階層にも対応しているところです。

MVELとか使えば、自力で実装可能な処もあるかもしれませんが、正直めんどくさい。
座標をドット記号区切りで記入すれば、階層を解析し、任意フィールドに値を設定してくれます。

◆NimbusDtoを内包するNimbusSecondDto


public class NimbusSecondDto(){

  private int id = 0;
  private String name = "";
  private NimbusDto nimbusDto = new NimbusDto();

  public void setId(int id){
     this.id = id;
  }

  public void setName(String name){
     this.name = name;
  }

  public void setNimbusDto (NimbusDto nimbusDto ){
     this.nimbusDto = nimbusDto ;
  }

  //getter・・・
}

◆多重階層座標指定しての値セット


NimbusSecondDto nimbusSecondDto = new NimbusSecondDto();

//座標を設定(多重階層)
Property prop = PropertyFactory.createProperty(”nimbusDto.id”);

//値をセット(nimbusSecondDtoは参照渡し)
prop.setProperty(nimbusSecondDto, "111");

これでNimbusDtoのIDフィールドに値が設定されます。
便利ですねぇ、すごいですねぇ、楽ですねぇw

そのほかにも、色々と便利な記法があるんですが、なぜか本家のマニュアルは厚みがありませんので、
自力で解析したものが多いです。

◆フィールドの属性を取得


NimbusSecondDto nimbusSecondDto = new NimbusSecondDto();

//座標を設定(多重階層)
Property prop = PropertyFactory.createProperty(”nimbusDto.id”);

//属性を取得(nimbusDtoは参照渡し)
Class type = prop.getPropertyType(nimbusSecondDto );

nimbusDto.idのintという属性が取得できます。

◆キャストしてのフィールドセット


NimbusSecondDto nimbusSecondDto = new NimbusSecondDto();

//座標を設定(多重階層)
Property prop = PropertyFactory.createProperty(”nimbusDto.id”);

//属性を取得(nimbusSecondDto は参照渡し)
Class type = prop.getPropertyType(nimbusSecondDto );

//intにキャストして値をセット(nimbusSecondDto は参照渡し)
prop.setProperty(nimbusSecondDto , type , "111");

int型にキャストして設定してくれます。

◆フィールドの値を取得


NimbusSecondDto nimbusSecondDto = new NimbusSecondDto();

//座標を設定(多重階層)
Property prop = PropertyFactory.createProperty(”nimbusDto.id”);

//フィールド値を取得(nimbusSecondDto は参照渡し)
Object result = prop.getProperty(nimbusSecondDto );

”nimbusDto.id”の値を取得できます。

という具合に適当に説明しましたが、今後もお世話になるので色々解析していきたいなぁっと思ってます。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です