use of org.whole.lang.queries.model.PathExpression in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testEveryPredicate.
@Test
public void testEveryPredicate() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new QueriesGrammar().create();
PathExpression pe1 = (PathExpression) tm.create("unusedProduction");
IEntityIterator<Production> iterator = BehaviorUtils.<Production>compileAndLazyEvaluate(pe1, g);
Assert.assertTrue(iterator.hasNext());
Production p = iterator.next();
Assert.assertEquals("Statement", p.getName().getValue());
Assert.assertTrue(iterator.hasNext());
p = iterator.next();
Assert.assertEquals("Declaration", p.getName().getValue());
Assert.assertTrue(iterator.hasNext());
p = iterator.next();
Assert.assertEquals("Index", p.getName().getValue());
Assert.assertFalse(iterator.hasNext());
}
use of org.whole.lang.queries.model.PathExpression in project whole by wholeplatform.
the class PathExpressionsQueriesTest method testSingleVariableTestInPathLastStep.
@Test
public void testSingleVariableTestInPathLastStep() {
ITemplateManager tm = PathExpressionsQueriesTemplateManager.instance();
Grammar g = new TestXmlGrammar().create();
PathExpression pe1 = (PathExpression) tm.create("findNonTerminalOccurrences");
PathExpression pe2 = (PathExpression) tm.create("bindNonTerminalOccurrences");
IBindingManager bm = BindingManagerFactory.instance.createArguments();
IEntityIterator<NonTerminal> i1 = BehaviorUtils.<NonTerminal>compileAndLazyEvaluate(pe1, g);
for (NonTerminal nt : BehaviorUtils.<NonTerminal>compileAndLazyEvaluate(pe2, g, bm)) {
Assert.assertSame(nt, i1.next());
Assert.assertEquals(nt.getValue(), bm.wStringValue("nt"));
}
Assert.assertFalse(i1.hasNext());
}
use of org.whole.lang.queries.model.PathExpression in project whole by wholeplatform.
the class RewriteQueriesTest method testInsert1.
@Test
public void testInsert1() {
Model model = new ModelsModel().create();
ModelDeclarations declarations = model.getDeclarations();
ITemplateManager tm = RewriteQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("insert1");
for (IEntity entity : BehaviorUtils.compileAndLazyEvaluate(query, model)) assertTrue(Matcher.match(ModelsEntityDescriptorEnum.Feature, entity));
for (int i = 0; i < declarations.wSize(); i++) {
IEntity decl = declarations.wGet(i);
if (Matcher.match(ModelsEntityDescriptorEnum.SimpleEntity, decl)) {
Features features = ((SimpleEntity) decl).getFeatures();
int size = features.wSize();
assertTrue(size >= 2);
String name1 = ((Feature) features.wGet(size - 2)).getName().getValue();
assertEquals("n1", name1);
String name2 = ((Feature) features.wGet(size - 1)).getName().getValue();
assertEquals("n2", name2);
}
}
}
use of org.whole.lang.queries.model.PathExpression in project whole by wholeplatform.
the class RewriteQueriesTest method testUpdate3.
@Test
public void testUpdate3() {
Model model = new ModelsModel().create();
ModelDeclarations declarations = model.getDeclarations();
ITemplateManager tm = RewriteQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("update3");
List<String> names = new ArrayList<String>();
for (int i = 0; i < declarations.wSize(); i++) {
IEntity decl = declarations.wGet(i);
if (Matcher.match(ModelsEntityDescriptorEnum.DataEntity, decl))
names.add(((DataEntity) decl).getName().getValue());
}
for (IEntity entity : BehaviorUtils.compileAndLazyEvaluate(query, model)) assertTrue(Matcher.match(ModelsEntityDescriptorEnum.SimpleName, entity));
Iterator<String> iterator = names.iterator();
for (int i = 0; i < declarations.wSize() && iterator.hasNext(); i++) {
IEntity decl = declarations.wGet(i);
if (Matcher.match(ModelsEntityDescriptorEnum.SimpleEntity, decl))
assertEquals(iterator.next(), ((SimpleEntity) decl).getName().getValue());
}
}
use of org.whole.lang.queries.model.PathExpression in project whole by wholeplatform.
the class RewriteQueriesTest method testUpdate2.
@Test
public void testUpdate2() {
Model model = new ModelsModel().create();
ModelDeclarations declarations = model.getDeclarations();
ITemplateManager tm = RewriteQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("update2");
for (IEntity entity : BehaviorUtils.compileAndLazyEvaluate(query, model)) assertTrue(Matcher.match(ModelsEntityDescriptorEnum.SimpleName, entity) || Matcher.match(ModelsEntityDescriptorEnum.DataType, entity));
for (int i = 0; i < declarations.wSize(); i++) {
IEntity decl = declarations.wGet(i);
if (Matcher.match(ModelsEntityDescriptorEnum.DataEntity, decl)) {
assertEquals("MyDataEntityName", ((DataEntity) decl).getName().getValue());
assertEquals("MyDataType", ((DataEntity) decl).getDataType().getValue());
}
}
}
Aggregations