use of org.eclipse.vorto.plugin.generator.InvocationContext in project vorto by eclipse.
the class GeneratorExecutionHandler method handleRequest.
@Override
public void handleRequest(InputStream input, OutputStream output, Context context) throws IOException {
ObjectMapper mapper = ObjectMapperFactory.getInstance();
ApiGatewayRequest request = ApiGatewayRequest.createFromJson(input);
Optional<ICodeGenerator> generator = generators.stream().filter(gen -> gen.getMeta().getKey().equals(request.getPathParam(PLUGINKEY))).findAny();
if (!generator.isPresent()) {
objectMapper.writeValue(output, createHttpReponse(404));
}
ModelContent modelContent = mapper.readValue(request.getInput(), ModelContent.class);
ModelContentToEcoreConverter converter = new ModelContentToEcoreConverter();
Model converted = converter.convert(modelContent, Optional.empty());
InvocationContext invocationContext = InvocationContext.simpleInvocationContext(request.getQueryParams());
InformationModel infomodel = org.eclipse.vorto.plugin.utils.Utils.toInformationModel(converted);
try {
IGenerationResult generatorResult = generator.get().generate(infomodel, invocationContext);
ApiGatewayResponse validResponse = createResponse(generatorResult);
OutputStreamWriter writer = new OutputStreamWriter(output, "UTF-8");
writer.write(objectMapper.writeValueAsString(validResponse));
writer.close();
} catch (GeneratorException e) {
ApiGatewayResponse response = createHttpReponse(500);
objectMapper.writeValue(output, response);
}
}
use of org.eclipse.vorto.plugin.generator.InvocationContext in project vorto by eclipse.
the class BoschIoTSuiteGeneratorTest method generateArduino.
/*
* Check if cpp file is generated when language is passed as arduino to BoschIOTSuiteGenerator
*/
@Test
public void generateArduino() throws Exception {
configProperties.put("language", "arduino");
InvocationContext context = new InvocationContext(mappingModels, configProperties);
IGenerationResult iGenerationResult = boschIOTSuiteGenerator.generate(modelProvider(), context);
Generated generatedfile = zipFileReader(iGenerationResult, "StatusPropertiesFunctionBlock", ".cpp");
assertEquals("StatusPropertiesFunctionBlock.cpp", generatedfile.getFileName());
}
use of org.eclipse.vorto.plugin.generator.InvocationContext in project vorto by eclipse.
the class BoschIoTSuiteGeneratorTest method generateProvisionTrue.
/*
* Check if provisioning script file is returned when config property is passed as provision to
* BoschIOTSuiteGenerator
*/
@Test
public void generateProvisionTrue() throws Exception {
configProperties.put("provision", "true");
InvocationContext context = new InvocationContext(mappingModels, configProperties);
SingleGenerationResult singleGenerationResult = (SingleGenerationResult) boschIOTSuiteGenerator.generate(modelProvider(), context);
assertEquals("Provisioning_MySensor.postman.json", singleGenerationResult.getFileName());
}
use of org.eclipse.vorto.plugin.generator.InvocationContext in project vorto by eclipse.
the class BoschIoTSuiteGeneratorTest method generateJava.
/*
* Check if java file is generated when language is passed as java to BoschIOTSuiteGenerator
*/
@Test
public void generateJava() throws Exception {
configProperties.put("language", "python");
InvocationContext context = new InvocationContext(mappingModels, configProperties);
IGenerationResult iGenerationResult = boschIOTSuiteGenerator.generate(modelProvider(), context);
Generated generatedfile = zipFileReader(iGenerationResult, "StatusPropertiesFunctionBlock", ".java");
assertEquals("StatusPropertiesFunctionBlock.java", generatedfile.getFileName());
}
use of org.eclipse.vorto.plugin.generator.InvocationContext 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"));
}
Aggregations