EMF Queryのサンプルからちょこっと変更を加えた下記コードのように記述すると動作することが確認されました。
- public class Sample {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- BookCategory category = null;
- Collection<eobject> selectedEObjects = null;
- selectedEObjects = new java.util.ArrayList<eobject>();
- 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<eobject> resultset = select.execute();
- System.out.println(resultset);
- for (EObject object:resultset) {
- System.out.println(object.toString());
- }
- }
- }
- </eobject></eobject></eobject>