JXPathを利用してオブジェクトから値を取得。 2007/03/22

JXPathがおもしろいです。
XPathを使用してオブジェクトグラフにアクセスできます。

簡単なサンプルです。


import java.util.HashMap;
import java.util.Map;

public class A {

private Map map = new HashMap();
private Map my = new HashMap();

public Map getMap() {
return map;
}

public void setMap(Map map) {
this.map = map;
}

public Map getMy() {
return my;
}

public void setMy(Map my) {
this.my = my;
}

}


JXPathを使用して値を取得するクラスです。


import org.apache.commons.jxpath.JXPathContext;
import a.a.A;

public class TestAccessA {

/**
* @param args
*/
public static void main(String[] args) {

a();
}

public static void a(){
A a = new A();
A a2 = new A();
a2.getMap().put("x", "OK");
a2.getMap().put("x2", "OK o_o");
a.getMap().put("aobj", a2);
a.getMy().put("aobj", a2);

JXPathContext context = JXPathContext.newContext(a);

Object object= context.getValue(
"/my['aobj']//map//x2");
System.out.println(object);

}
}



入りくんだオブジェクトグラフからXPathで値が取得できるのはおもしろいです。

: