use of org.eclipse.vorto.model.Param in project vorto by eclipse.
the class ModelDtoFactory method createParam.
private static Param createParam(org.eclipse.vorto.core.api.model.functionblock.Param p, Optional<MappingModel> mappingModel) {
Param param = new Param();
param.setDescription(p.getDescription());
param.setMultiple(p.isMultiplicity());
param.setName(p.getName());
if (p instanceof PrimitiveParam) {
PrimitiveType pt = ((PrimitiveParam) p).getType();
param.setType(org.eclipse.vorto.model.PrimitiveType.valueOf(pt.name()));
if (((PrimitiveParam) p).getConstraintRule() != null && ((PrimitiveParam) p).getConstraintRule().getConstraints() != null) {
List<Constraint> constraints = ((PrimitiveParam) p).getConstraintRule().getConstraints().stream().map(c -> createConstraint(c)).collect(Collectors.toList());
param.setConstraints(constraints);
}
} else if (p instanceof DictonaryParam) {
param.setType(createReferenceType(((DictonaryParam) p).getType()));
} else {
param.setType(createModelId(((RefParam) p).getType()));
}
if (mappingModel.isPresent()) {
param.setTargetPlatformKey(mappingModel.get().getTargetPlatform());
for (MappingRule rule : getParamRule(((org.eclipse.vorto.core.api.model.functionblock.Operation) p.eContainer()).getName(), param.getName(), mappingModel.get().getRules())) {
if (rule.getTarget() instanceof StereoTypeTarget) {
StereoTypeTarget target = (StereoTypeTarget) rule.getTarget();
param.addStereotype(Stereotype.create(target.getName(), convertAttributesToMap(target.getAttributes())));
} else if (rule.getTarget() instanceof ReferenceTarget) {
ReferenceTarget target = (ReferenceTarget) rule.getTarget();
param.setMappingReference(createModelId(target.getMappingModel()));
}
}
}
return param;
}
Aggregations