use of org.franca.core.franca.FField in project joynr by bmwcarit.
the class TypeUtilTest method testRecurstiveStruct.
@Test
public void testRecurstiveStruct() throws Exception {
FStructType structType = FrancaFactory.eINSTANCE.createFStructType();
structType.setName("TestStruct");
FField field = FrancaFactory.eINSTANCE.createFField();
field.setName("exampleField");
field.setArray(true);
FTypeRef typeRef = FrancaFactory.eINSTANCE.createFTypeRef();
typeRef.setDerived(structType);
field.setType(typeRef);
structType.getElements().add(field);
TypeUtil typeUtil = Guice.createInjector().getInstance(TypeUtil.class);
FCompoundType result = typeUtil.getCompoundType(structType);
assertEquals(structType, result);
}
use of org.franca.core.franca.FField in project joynr by bmwcarit.
the class CompoundTypeGeneratorTest method testRecursiveStruct.
@Test
public void testRecursiveStruct() throws Exception {
FModel model = FrancaFactory.eINSTANCE.createFModel();
FStructType structType = FrancaFactory.eINSTANCE.createFStructType();
FTypeCollection typeCollection = FrancaFactory.eINSTANCE.createFTypeCollection();
typeCollection.getTypes().add(structType);
model.getTypeCollections().add(typeCollection);
structType.setName("TestStruct");
FField field = FrancaFactory.eINSTANCE.createFField();
field.setName("exampleField");
field.setArray(true);
FTypeRef typeRef = FrancaFactory.eINSTANCE.createFTypeRef();
typeRef.setDerived(structType);
field.setType(typeRef);
structType.getElements().add(field);
JsTemplateFactory templateFactory = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
install(new FactoryModuleBuilder().build(JsTemplateFactory.class));
bind(Boolean.class).annotatedWith(Names.named(JoynrGeneratorExtensions.JOYNR_GENERATOR_GENERATE)).toInstance(true);
bind(Boolean.class).annotatedWith(Names.named(JoynrGeneratorExtensions.JOYNR_GENERATOR_CLEAN)).toInstance(false);
}
}).getInstance(JsTemplateFactory.class);
CompoundTypeGenerator generator = templateFactory.createCompoundTypeGenerator(structType);
generator.generate();
}
Aggregations