Search in sources :

Example 1 with MappingBuilder

use of org.eclipse.vorto.core.api.model.BuilderUtils.MappingBuilder in project vorto by eclipse.

the class ModelContentToEcoreConverter method convertFunctionblockMapping.

private Model convertFunctionblockMapping(FunctionblockModel model, ModelContent context, String platformKey) {
    MappingBuilder builder = BuilderUtils.newMapping(new ModelId(ModelType.InformationModel, model.getId().getName() + "Mapping", model.getId().getNamespace() + ".mapping." + platformKey, model.getId().getVersion()), platformKey);
    builder.withVortolang("1.0");
    builder.withDescription("Mapping that contains " + platformKey + " specific meta data");
    builder.withReference(ModelIdFactory.newInstance(ModelType.Functionblock, model.getId().getNamespace(), model.getId().getVersion(), model.getId().getVersion()));
    org.eclipse.vorto.core.api.model.functionblock.FunctionblockModel eFbm = convertFunctionblock(model, context);
    for (Stereotype stereotype : model.getStereotypes()) {
        MappingRuleBuilder ruleBuilder = new MappingRuleBuilder();
        ruleBuilder.withStereotypeTarget(stereotype.getName(), stereotype.getAttributes());
        FunctionBlockSource source = MappingFactory.eINSTANCE.createFunctionBlockSource();
        source.setModel(eFbm);
        ruleBuilder.withSource(source);
        builder.addRule(ruleBuilder.build());
    }
    for (ModelProperty statusProperty : model.getStatusProperties()) {
        for (Stereotype stereotype : statusProperty.getStereotypes()) {
            MappingRuleBuilder ruleBuilder = new MappingRuleBuilder();
            ruleBuilder.withStereotypeTarget(stereotype.getName(), stereotype.getAttributes());
            StatusSource source = MappingFactory.eINSTANCE.createStatusSource();
            source.setModel(eFbm);
            source.setProperty(eFbm.getFunctionblock().getStatus().getProperties().stream().filter(property -> property.getName().equals(statusProperty.getName())).findAny().get());
            ruleBuilder.withSource(source);
            builder.addRule(ruleBuilder.build());
        }
    }
    for (ModelProperty configProperty : model.getConfigurationProperties()) {
        for (Stereotype stereotype : configProperty.getStereotypes()) {
            MappingRuleBuilder ruleBuilder = new MappingRuleBuilder();
            ruleBuilder.withStereotypeTarget(stereotype.getName(), stereotype.getAttributes());
            ConfigurationSource source = MappingFactory.eINSTANCE.createConfigurationSource();
            source.setModel(eFbm);
            source.setProperty(eFbm.getFunctionblock().getConfiguration().getProperties().stream().filter(property -> property.getName().equals(configProperty.getName())).findAny().get());
            ruleBuilder.withSource(source);
            builder.addRule(ruleBuilder.build());
        }
    }
    return builder.build();
}
Also used : EntityBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.EntityBuilder) InformationModel(org.eclipse.vorto.core.api.model.informationmodel.InformationModel) ReturnPrimitiveType(org.eclipse.vorto.core.api.model.functionblock.ReturnPrimitiveType) ModelIdFactory(org.eclipse.vorto.core.api.model.model.ModelIdFactory) MappingPackageImpl(org.eclipse.vorto.core.api.model.mapping.impl.MappingPackageImpl) Entity(org.eclipse.vorto.core.api.model.datatype.Entity) DictionaryPropertyType(org.eclipse.vorto.core.api.model.datatype.DictionaryPropertyType) PrimitivePropertyType(org.eclipse.vorto.core.api.model.datatype.PrimitivePropertyType) FunctionblockBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.FunctionblockBuilder) RefParam(org.eclipse.vorto.core.api.model.functionblock.RefParam) MappingBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.MappingBuilder) MappingRuleBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.MappingRuleBuilder) ReturnObjectType(org.eclipse.vorto.core.api.model.functionblock.ReturnObjectType) Operation(org.eclipse.vorto.model.Operation) Type(org.eclipse.vorto.core.api.model.datatype.Type) IModel(org.eclipse.vorto.model.IModel) ReturnType(org.eclipse.vorto.core.api.model.functionblock.ReturnType) ConfigurationSource(org.eclipse.vorto.core.api.model.mapping.ConfigurationSource) ReturnDictonaryType(org.eclipse.vorto.core.api.model.functionblock.ReturnDictonaryType) ModelId(org.eclipse.vorto.core.api.model.model.ModelId) ModelBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.ModelBuilder) Collectors(java.util.stream.Collectors) FunctionblockPackageImpl(org.eclipse.vorto.core.api.model.functionblock.impl.FunctionblockPackageImpl) InformationModelPackageImpl(org.eclipse.vorto.core.api.model.informationmodel.impl.InformationModelPackageImpl) List(java.util.List) DictionaryType(org.eclipse.vorto.model.DictionaryType) ModelEvent(org.eclipse.vorto.model.ModelEvent) PrimitiveType(org.eclipse.vorto.model.PrimitiveType) Optional(java.util.Optional) Constraint(org.eclipse.vorto.model.Constraint) Infomodel(org.eclipse.vorto.model.Infomodel) DatatypePackageImpl(org.eclipse.vorto.core.api.model.datatype.impl.DatatypePackageImpl) StatusSource(org.eclipse.vorto.core.api.model.mapping.StatusSource) ArrayList(java.util.ArrayList) EnumBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.EnumBuilder) Model(org.eclipse.vorto.core.api.model.model.Model) ConstraintIntervalType(org.eclipse.vorto.core.api.model.datatype.ConstraintIntervalType) IReferenceType(org.eclipse.vorto.model.IReferenceType) Property(org.eclipse.vorto.core.api.model.datatype.Property) FunctionblockFactory(org.eclipse.vorto.core.api.model.functionblock.FunctionblockFactory) MappingFactory(org.eclipse.vorto.core.api.model.mapping.MappingFactory) DatatypeFactory(org.eclipse.vorto.core.api.model.datatype.DatatypeFactory) PrimitiveParam(org.eclipse.vorto.core.api.model.functionblock.PrimitiveParam) EntityModel(org.eclipse.vorto.model.EntityModel) Presence(org.eclipse.vorto.core.api.model.datatype.Presence) ModelProperty(org.eclipse.vorto.model.ModelProperty) PropertyType(org.eclipse.vorto.core.api.model.datatype.PropertyType) InformationModelBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.InformationModelBuilder) Param(org.eclipse.vorto.core.api.model.functionblock.Param) BuilderUtils(org.eclipse.vorto.core.api.model.BuilderUtils) FunctionBlockSource(org.eclipse.vorto.core.api.model.mapping.FunctionBlockSource) EventBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.EventBuilder) DictonaryParam(org.eclipse.vorto.core.api.model.functionblock.DictonaryParam) FunctionblockModel(org.eclipse.vorto.model.FunctionblockModel) Stereotype(org.eclipse.vorto.model.Stereotype) ModelContent(org.eclipse.vorto.model.ModelContent) ModelType(org.eclipse.vorto.core.api.model.model.ModelType) EnumModel(org.eclipse.vorto.model.EnumModel) ObjectPropertyType(org.eclipse.vorto.core.api.model.datatype.ObjectPropertyType) ConfigurationSource(org.eclipse.vorto.core.api.model.mapping.ConfigurationSource) FunctionBlockSource(org.eclipse.vorto.core.api.model.mapping.FunctionBlockSource) Stereotype(org.eclipse.vorto.model.Stereotype) MappingBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.MappingBuilder) StatusSource(org.eclipse.vorto.core.api.model.mapping.StatusSource) ModelProperty(org.eclipse.vorto.model.ModelProperty) ModelId(org.eclipse.vorto.core.api.model.model.ModelId) MappingRuleBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.MappingRuleBuilder)

Example 2 with MappingBuilder

use of org.eclipse.vorto.core.api.model.BuilderUtils.MappingBuilder in project vorto by eclipse.

the class HelloWorldGeneratorTest method getMappedElementEntity.

/*
	 * Test case for checking the attribute mapping and corresponding property value for an entity
	 * 
	 * 
	 */
@Test
public void getMappedElementEntity() throws Exception {
    MappingBuilder mapping = BuilderUtils.newMapping(new ModelId(ModelType.Mapping, "", "", ""), "helloworld");
    EntityMappingRule entityMappingRule = MappingFactory.eINSTANCE.createEntityMappingRule();
    EntityAttributeSource entityAttributeSource = MappingFactory.eINSTANCE.createEntityAttributeSource();
    entityAttributeSource.setModel(_entity);
    entityMappingRule.getSources().add(entityAttributeSource);
    StereoTypeTarget stereotypeTarget = MappingFactory.eINSTANCE.createStereoTypeTarget();
    stereotypeTarget.setName("OBJECT_ID");
    Attribute objectIDattribute = MappingFactory.eINSTANCE.createAttribute();
    objectIDattribute.setName("ID");
    objectIDattribute.setValue("entityAttributID");
    stereotypeTarget.getAttributes().add(objectIDattribute);
    entityMappingRule.setTarget(stereotypeTarget);
    mapping.addRule(entityMappingRule);
    InvocationContext ctx = new InvocationContext(createMappingList(mapping.build()), Collections.emptyMap());
    Property prop = functionBlock.getFunctionblock().getStatus().getProperties().get(0);
    assertNotNull(ctx.getMappedElement(prop, "OBJECT_ID"));
    assertEquals("entityAttributID", ctx.getMappedElement(prop, "OBJECT_ID").getAttributeValue("ID", "entityAttributID"));
}
Also used : EntityMappingRule(org.eclipse.vorto.core.api.model.mapping.EntityMappingRule) MappingBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.MappingBuilder) Attribute(org.eclipse.vorto.core.api.model.mapping.Attribute) EntityAttributeSource(org.eclipse.vorto.core.api.model.mapping.EntityAttributeSource) InvocationContext(org.eclipse.vorto.plugin.generator.InvocationContext) StereoTypeTarget(org.eclipse.vorto.core.api.model.mapping.StereoTypeTarget) Property(org.eclipse.vorto.core.api.model.datatype.Property) ModelId(org.eclipse.vorto.core.api.model.model.ModelId) Test(org.junit.Test)

Example 3 with MappingBuilder

use of org.eclipse.vorto.core.api.model.BuilderUtils.MappingBuilder in project vorto by eclipse.

the class HelloWorldGeneratorTest method getMappedElementFunctionbLock.

/*
	 * Test case for checking the attribute mapping and corresponding property value for a function block
	 * 
	 * 
	 */
@Test
public void getMappedElementFunctionbLock() throws Exception {
    MappingBuilder mapping = BuilderUtils.newMapping(new ModelId(ModelType.Mapping, "", "", ""), "helloworld");
    FunctionBlockMappingRule rule = MappingFactory.eINSTANCE.createFunctionBlockMappingRule();
    FunctionBlockPropertySource statusValueSource = MappingFactory.eINSTANCE.createFunctionBlockPropertySource();
    statusValueSource.setModel(functionBlock);
    rule.getSources().add(statusValueSource);
    StereoTypeTarget stereotypeTarget = MappingFactory.eINSTANCE.createStereoTypeTarget();
    stereotypeTarget.setName("OBJECT_ID");
    Attribute objectIDattribute = MappingFactory.eINSTANCE.createAttribute();
    objectIDattribute.setName("ID");
    objectIDattribute.setValue("functionBlockAttributID");
    stereotypeTarget.getAttributes().add(objectIDattribute);
    rule.setTarget(stereotypeTarget);
    mapping.addRule(rule);
    InvocationContext ctx = new InvocationContext(createMappingList(mapping.build()), Collections.emptyMap());
    Property prop = functionBlock.getFunctionblock().getStatus().getProperties().get(0);
    assertNotNull(ctx.getMappedElement(prop, "OBJECT_ID"));
    assertEquals("functionBlockAttributID", ctx.getMappedElement(prop, "OBJECT_ID").getAttributeValue("ID", "functionBlockAttributID"));
}
Also used : FunctionBlockMappingRule(org.eclipse.vorto.core.api.model.mapping.FunctionBlockMappingRule) MappingBuilder(org.eclipse.vorto.core.api.model.BuilderUtils.MappingBuilder) FunctionBlockPropertySource(org.eclipse.vorto.core.api.model.mapping.FunctionBlockPropertySource) Attribute(org.eclipse.vorto.core.api.model.mapping.Attribute) InvocationContext(org.eclipse.vorto.plugin.generator.InvocationContext) StereoTypeTarget(org.eclipse.vorto.core.api.model.mapping.StereoTypeTarget) Property(org.eclipse.vorto.core.api.model.datatype.Property) ModelId(org.eclipse.vorto.core.api.model.model.ModelId) Test(org.junit.Test)

Aggregations

MappingBuilder (org.eclipse.vorto.core.api.model.BuilderUtils.MappingBuilder)3 Property (org.eclipse.vorto.core.api.model.datatype.Property)3 ModelId (org.eclipse.vorto.core.api.model.model.ModelId)3 Attribute (org.eclipse.vorto.core.api.model.mapping.Attribute)2 StereoTypeTarget (org.eclipse.vorto.core.api.model.mapping.StereoTypeTarget)2 InvocationContext (org.eclipse.vorto.plugin.generator.InvocationContext)2 Test (org.junit.Test)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Optional (java.util.Optional)1 Collectors (java.util.stream.Collectors)1 BuilderUtils (org.eclipse.vorto.core.api.model.BuilderUtils)1 EntityBuilder (org.eclipse.vorto.core.api.model.BuilderUtils.EntityBuilder)1 EnumBuilder (org.eclipse.vorto.core.api.model.BuilderUtils.EnumBuilder)1 EventBuilder (org.eclipse.vorto.core.api.model.BuilderUtils.EventBuilder)1 FunctionblockBuilder (org.eclipse.vorto.core.api.model.BuilderUtils.FunctionblockBuilder)1 InformationModelBuilder (org.eclipse.vorto.core.api.model.BuilderUtils.InformationModelBuilder)1 MappingRuleBuilder (org.eclipse.vorto.core.api.model.BuilderUtils.MappingRuleBuilder)1 ModelBuilder (org.eclipse.vorto.core.api.model.BuilderUtils.ModelBuilder)1 ConstraintIntervalType (org.eclipse.vorto.core.api.model.datatype.ConstraintIntervalType)1