Search in sources :

Example 11 with MappingRule

use of org.eclipse.vorto.core.api.model.mapping.MappingRule in project vorto by eclipse.

the class DefaultResolver method doResolve.

@Override
protected ModelId doResolve(ModelInfo mappingModelResource, ResolveQuery query) {
    IModelContent content = this.repository.getModelContent(mappingModelResource.getId(), ContentType.DSL);
    MappingModel mappingModel = (MappingModel) content.getModel();
    Optional<MappingRule> objectRule = mappingModel.getRules().stream().filter(rule -> rule.getTarget() instanceof StereoTypeTarget && ((StereoTypeTarget) rule.getTarget()).getName().equals(query.getStereoType())).findFirst();
    if (objectRule.isPresent()) {
        Optional<Attribute> objectIdAttribute = ((StereoTypeTarget) objectRule.get().getTarget()).getAttributes().stream().filter(attribute -> attribute.getName().equals(query.getAttributeId())).findFirst();
        if (objectIdAttribute.isPresent() && objectIdAttribute.get().getValue().equals(query.getAttributeValue())) {
            return ModelId.fromReference(mappingModel.getReferences().get(0).getImportedNamespace(), mappingModel.getReferences().get(0).getVersion());
        }
    }
    return null;
}
Also used : IModelContent(org.eclipse.vorto.repository.core.IModelContent) Service(org.springframework.stereotype.Service) ContentType(org.eclipse.vorto.repository.core.IModelRepository.ContentType) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel) Optional(java.util.Optional) MappingRule(org.eclipse.vorto.core.api.model.mapping.MappingRule) StereoTypeTarget(org.eclipse.vorto.core.api.model.mapping.StereoTypeTarget) ResolveQuery(org.eclipse.vorto.repository.api.resolver.ResolveQuery) ModelId(org.eclipse.vorto.repository.api.ModelId) Attribute(org.eclipse.vorto.core.api.model.mapping.Attribute) ModelInfo(org.eclipse.vorto.repository.api.ModelInfo) Attribute(org.eclipse.vorto.core.api.model.mapping.Attribute) IModelContent(org.eclipse.vorto.repository.core.IModelContent) MappingRule(org.eclipse.vorto.core.api.model.mapping.MappingRule) StereoTypeTarget(org.eclipse.vorto.core.api.model.mapping.StereoTypeTarget) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel)

Example 12 with MappingRule

use of org.eclipse.vorto.core.api.model.mapping.MappingRule in project vorto by eclipse.

the class LWM2MMappingParseTest method parseEnumMapping.

@Test
public void parseEnumMapping() throws IOException {
    MappingModel mappingModel = this.createMappingModel("LWM2MResourceEnum.mapping");
    EList<MappingRule> rules = mappingModel.getRules();
    assertEquals(4, rules.size());
}
Also used : MappingRule(org.eclipse.vorto.core.api.model.mapping.MappingRule) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel) Test(org.junit.Test)

Example 13 with MappingRule

use of org.eclipse.vorto.core.api.model.mapping.MappingRule in project vorto by eclipse.

the class LWM2MMappingParseTest method parseInformationModelMapping.

@Test
public void parseInformationModelMapping() throws IOException {
    MappingModel mappingModel = createMappingModel("LWM2MObjectType.mapping");
    EList<MappingRule> rules = mappingModel.getRules();
    assertEquals(1, rules.size());
}
Also used : MappingRule(org.eclipse.vorto.core.api.model.mapping.MappingRule) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel) Test(org.junit.Test)

Example 14 with MappingRule

use of org.eclipse.vorto.core.api.model.mapping.MappingRule in project vorto by eclipse.

the class MappingModelSyntaxTest method parseMappingWithFunctionBlockProperty.

@Test
public void parseMappingWithFunctionBlockProperty() throws IOException {
    MappingModel mappingModel = createMappingModel("fb/FunctionBlock_Property.mapping");
    EList<MappingRule> rules = mappingModel.getRules();
    assertEquals(6, rules.size());
}
Also used : MappingRule(org.eclipse.vorto.core.api.model.mapping.MappingRule) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel) Test(org.junit.Test)

Example 15 with MappingRule

use of org.eclipse.vorto.core.api.model.mapping.MappingRule in project vorto by eclipse.

the class MappingModelSyntaxTest method parseMappingWithFunctionBlockReference.

@Test
public void parseMappingWithFunctionBlockReference() throws IOException {
    MappingModel mappingModel = createMappingModel("fb/FunctionBlock_Ref.mapping");
    EList<MappingRule> rules = mappingModel.getRules();
    assertEquals(2, rules.size());
}
Also used : MappingRule(org.eclipse.vorto.core.api.model.mapping.MappingRule) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel) Test(org.junit.Test)

Aggregations

MappingRule (org.eclipse.vorto.core.api.model.mapping.MappingRule)20 MappingModel (org.eclipse.vorto.core.api.model.mapping.MappingModel)18 Test (org.junit.Test)14 StereoTypeTarget (org.eclipse.vorto.core.api.model.mapping.StereoTypeTarget)6 ModelId (org.eclipse.vorto.repository.api.ModelId)5 ReferenceTarget (org.eclipse.vorto.core.api.model.mapping.ReferenceTarget)3 Optional (java.util.Optional)2 FunctionblockModel (org.eclipse.vorto.core.api.model.functionblock.FunctionblockModel)2 FunctionblockProperty (org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty)2 Attribute (org.eclipse.vorto.core.api.model.mapping.Attribute)2 EntityModel (org.eclipse.vorto.repository.api.content.EntityModel)2 Infomodel (org.eclipse.vorto.repository.api.content.Infomodel)2 ModelProperty (org.eclipse.vorto.repository.api.content.ModelProperty)2 List (java.util.List)1 Map (java.util.Map)1 Collectors (java.util.stream.Collectors)1 BooleanPropertyAttribute (org.eclipse.vorto.core.api.model.datatype.BooleanPropertyAttribute)1 Entity (org.eclipse.vorto.core.api.model.datatype.Entity)1 Enum (org.eclipse.vorto.core.api.model.datatype.Enum)1 EnumLiteralPropertyAttribute (org.eclipse.vorto.core.api.model.datatype.EnumLiteralPropertyAttribute)1