2010年1月28日木曜日

EMFQuery

先日Teneoを調べていたのだがEMFプロジェクトの中にEMF Queryというのがあり、それを使うと十分に使えるんじゃないか?思い調べてみました。
EMF Queryのサンプルからちょこっと変更を加えた下記コードのように記述すると動作することが確認されました。


public class Sample {
public static void main(String[] args) {
// TODO Auto-generated method stub
BookCategory category = null;
Collection selectedEObjects = null;
selectedEObjects = new java.util.ArrayList();
Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
writer.setFirstName("FirstName");
writer.setLastName("LastName");
writer.setName("FullName");
for (int i = 0; i < 10; i++) {
Book book = EXTLibraryFactory.eINSTANCE.createBook();
book.setPublicationDate(new Date());
book.setPages(i*100);
book.setAuthor(writer);
book.setCategory(BookCategory.MYSTERY_LITERAL);
book.setTitle("タイトル"+i);
library.getBooks().add(book);
selectedEObjects.add((EObject) book);
category = book.getCategory();
}
// PREPAREDSTATEMENT
SELECT select = new SELECT(
new FROM(selectedEObjects),
new WHERE(new EObjectAttributeValueCondition(
EXTLibraryPackage.eINSTANCE.getBook_Pages(),
NumberCondition.between(500, Integer.MAX_VALUE)
)
)
);
//Execute Query & getResultSet
Collection resultset = select.execute();
System.out.println(resultset);
for (EObject object:resultset) {
System.out.println(object.toString());
}

}
}

0 件のコメント:

コメントを投稿