use of org.whole.lang.models.model.SimpleEntity in project whole by wholeplatform.
the class ControlQueriesTest method testChoose3.
@Test
public void testChoose3() {
Model model = new ModelsModel().create();
ModelDeclarations decls = model.getDeclarations();
ITemplateManager tm = ControlQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("choose3");
int i = 0;
IEntityIterator<IEntity> iterator = BehaviorUtils.compileAndLazyEvaluate(query, model);
while (iterator.hasNext()) {
IEntity result = iterator.next();
IEntity decl = decls.wGet(i++);
switch(decl.wGetEntityOrd()) {
case ModelsEntityDescriptorEnum.SimpleEntity_ord:
Features features = ((SimpleEntity) decl).getFeatures();
if (!features.isEmpty())
assertEquals(features.get(0).getName().wStringValue(), result.wStringValue());
break;
case ModelsEntityDescriptorEnum.CompositeEntity_ord:
CompositeEntity compositeEntity = (CompositeEntity) decl;
assertEquals(compositeEntity.getComponentType().wStringValue(), result.wStringValue());
break;
case ModelsEntityDescriptorEnum.DataEntity_ord:
DataEntity dataEntity = (DataEntity) decl;
assertEquals(dataEntity.getDataType().wStringValue(), result.wStringValue());
break;
case ModelsEntityDescriptorEnum.EnumEntity_ord:
EnumEntity enumEntity = (EnumEntity) decl;
assertEquals(enumEntity.getValues().wGet(0).wStringValue(), result.wStringValue());
break;
}
}
}
use of org.whole.lang.models.model.SimpleEntity in project whole by wholeplatform.
the class ControlQueriesTest method testQueryDecl5.
@Test
public void testQueryDecl5() {
Model model = new ModelsModel().create();
ModelDeclarations decls = model.getDeclarations();
IBindingManager bm = BindingManagerFactory.instance.createArguments();
ITemplateManager tm = ControlQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("queryDecl5");
int count = 0;
int index = 0;
for (IEntity p : BehaviorUtils.compileAndLazyEvaluate(query, model, bm)) {
IEntity decl = decls.wGet(index++);
switch(decl.wGetEntityOrd()) {
case ModelsEntityDescriptorEnum.SimpleEntity_ord:
Features features = ((SimpleEntity) decl).getFeatures();
if (!features.isEmpty())
assertEquals(features.get(0).getName().wStringValue(), p.wStringValue());
break;
case ModelsEntityDescriptorEnum.CompositeEntity_ord:
assertEquals(((CompositeEntity) decl).getComponentType().wStringValue(), p.wStringValue());
break;
case ModelsEntityDescriptorEnum.DataEntity_ord:
assertEquals(((DataEntity) decl).getName().wStringValue(), p.wStringValue());
break;
case ModelsEntityDescriptorEnum.EnumEntity_ord:
assertTrue(Matcher.matchImpl(ModelsEntityDescriptorEnum.EnumEntity, p));
break;
}
count++;
}
assertEquals(33, count);
}
use of org.whole.lang.models.model.SimpleEntity in project whole by wholeplatform.
the class ControlQueriesTest method testChoose2.
@Test
public void testChoose2() {
Model model = new ModelsModel().create();
ModelDeclarations decls = model.getDeclarations();
ITemplateManager tm = ControlQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("choose2");
int i = 0;
IEntityIterator<IEntity> iterator = BehaviorUtils.compileAndLazyEvaluate(query, model);
while (iterator.hasNext()) {
IEntity result;
IEntity decl = decls.wGet(i++);
switch(decl.wGetEntityOrd()) {
case ModelsEntityDescriptorEnum.SimpleEntity_ord:
IEntity features = ((SimpleEntity) decl).getFeatures();
for (int j = 0; j < features.wSize(); j++) {
result = iterator.next();
assertEquals(((Feature) features.wGet(j)).getName().wStringValue(), result.wStringValue());
}
break;
case ModelsEntityDescriptorEnum.CompositeEntity_ord:
result = iterator.next();
CompositeEntity compositeEntity = (CompositeEntity) decl;
assertEquals(compositeEntity.getComponentType().wStringValue(), result.wStringValue());
break;
case ModelsEntityDescriptorEnum.DataEntity_ord:
result = iterator.next();
DataEntity dataEntity = (DataEntity) decl;
assertEquals(dataEntity.getDataType().wStringValue(), result.wStringValue());
break;
case ModelsEntityDescriptorEnum.EnumEntity_ord:
EnumValues enumValues = ((EnumEntity) decl).getValues();
if (enumValues.wIsEmpty())
iterator.next();
else
for (int j = 0; j < enumValues.wSize(); j++) {
result = iterator.next();
assertEquals(enumValues.wGet(j).wStringValue(), result.wStringValue());
}
break;
}
}
}
use of org.whole.lang.models.model.SimpleEntity in project whole by wholeplatform.
the class SelectQueriesTest method testVariableScopes.
@Test
public void testVariableScopes() {
Model model = new XmlModel().create();
ITemplateManager tm = SelectQueriesTemplateManager.instance();
PathExpression query = (PathExpression) tm.create("selectVariableScopes");
IBindingManager bm = BindingManagerFactory.instance.createArguments();
for (IEntity tuple : BehaviorUtils.compileAndLazyEvaluate(query, model, bm)) {
Document d = (Document) tuple.wGet(0);
SimpleEntity se = (SimpleEntity) tuple.wGet(1);
assertFalse(bm.wIsSet("fromName"));
assertFalse(bm.wIsSet("oneTime"));
assertFalse(bm.wIsSet("featuresTimes"));
assertFalse(bm.wIsSet("featuresTimesInLine"));
assertFalse(bm.wIsSet("fTimes"));
assertFalse(bm.wIsSet("siblingTimes"));
// changed semantics: from variables are substituted multiple times
assertTrue(1 < d.wGet(0).wSize() - 1);
assertEquals(1, d.wGet(1).wSize() - 1);
assertEquals(se.getFeatures().wSize(), d.wGet(2).wSize() - 1);
assertEquals(se.getFeatures().wSize(), d.wGet(3).wSize() - 1);
assertEquals(model.getDeclarations().wSize() - 1 - model.getDeclarations().wIndexOf(se), d.wGet(4).wSize() - 1);
}
}
use of org.whole.lang.models.model.SimpleEntity in project whole by wholeplatform.
the class SelectQueriesTest method testTemplateFromWhere.
@Test
public void testTemplateFromWhere() {
Model m = new XmlModel().create();
SimpleEntity simpleEntity = (SimpleEntity) m.getDeclarations().wGet(0);
ITemplateManager tm = SelectQueriesTemplateManager.instance();
PathExpression pe1 = (PathExpression) tm.create("selectTemplateFromWhere");
for (ClassDeclaration classDecl : BehaviorUtils.<ClassDeclaration>compileAndLazyEvaluate(pe1, simpleEntity)) {
assertEquals(StringUtils.toUpperCap(simpleEntity.getName().getValue()), classDecl.getName().wStringValue());
int featuresSize = simpleEntity.getFeatures().wSize();
assertEquals(featuresSize * 2, classDecl.getBodyDeclarations().wSize());
}
}
Aggregations