use of org.eclipse.vorto.codegen.api.GenerationResultZip in project vorto by eclipse.
the class JavabeanGenerator method generate.
public IGenerationResult generate(InformationModel infomodel, InvocationContext invocationContext, IVortoCodeGenProgressMonitor monitor) throws VortoCodeGeneratorException {
GenerationResultZip zipOutputter = new GenerationResultZip(infomodel, getServiceKey());
for (FunctionblockProperty fbp : infomodel.getProperties()) {
this.generateForFunctionBlock(infomodel, fbp.getType(), zipOutputter);
FunctionBlock fb = fbp.getType().getFunctionblock();
for (Entity entity : Utils.getReferencedEntities(fb)) {
generateForEntity(infomodel, entity, zipOutputter);
}
for (Enum en : Utils.getReferencedEnums(fb)) {
generateForEnum(infomodel, en, zipOutputter);
}
}
new GeneratorTaskFromFileTemplate<InformationModel>(new PomFileTemplate()).generate(infomodel, invocationContext, zipOutputter);
return zipOutputter;
}
use of org.eclipse.vorto.codegen.api.GenerationResultZip in project vorto by eclipse.
the class BoschIoTThingsGenerator method generate.
public IGenerationResult generate(InformationModel infomodel, InvocationContext invocationContext, IVortoCodeGenProgressMonitor monitor) throws VortoCodeGeneratorException {
GenerationResultZip zipOutputter = new GenerationResultZip(infomodel, getServiceKey());
ChainedCodeGeneratorTask<InformationModel> generator = new ChainedCodeGeneratorTask<InformationModel>();
GenerationResultBuilder result = GenerationResultBuilder.from(zipOutputter);
if (hasNoTarget(invocationContext)) {
result.append(generateSchema(infomodel, monitor, invocationContext));
} else {
if (invocationContext.getConfigurationProperties().getOrDefault(SIMULATOR, FALSE).equalsIgnoreCase(TRUE)) {
generator.addTask(new JavaClientTask());
}
if (invocationContext.getConfigurationProperties().getOrDefault(SCHEMAVALIDATOR, FALSE).equalsIgnoreCase(TRUE)) {
result.append(generateSchema(infomodel, monitor, invocationContext));
}
}
generator.generate(infomodel, invocationContext, zipOutputter);
if (invocationContext.getConfigurationProperties().getOrDefault("kura", FALSE).equalsIgnoreCase(TRUE)) {
Map<String, String> props = new HashMap<>();
props.put("boschcloud", "true");
props.put("bluetooth", "true");
IGenerationResult kuraResult = invocationContext.lookupGenerator("kura").generate(infomodel, InvocationContext.simpleInvocationContext(props), monitor);
result.append(kuraResult);
}
if (invocationContext.getConfigurationProperties().getOrDefault("alexa", FALSE).equalsIgnoreCase(TRUE)) {
Map<String, String> props = new HashMap<>();
props.put("cloud", "bosch");
props.put("thingId", invocationContext.getConfigurationProperties().getOrDefault("thingId", ""));
IGenerationResult awsResult = invocationContext.lookupGenerator("aws").generate(infomodel, InvocationContext.simpleInvocationContext(props), monitor);
result.append(awsResult);
}
if (invocationContext.getConfigurationProperties().getOrDefault("webui", FALSE).equalsIgnoreCase(TRUE)) {
Map<String, String> props = new HashMap<>();
props.put("boschcloud", "true");
props.put("swagger", "true");
props.put("persistence", "true");
IGenerationResult webuiResult = invocationContext.lookupGenerator("webui").generate(infomodel, InvocationContext.simpleInvocationContext(props), monitor);
result.append(webuiResult);
}
return result.build();
}
use of org.eclipse.vorto.codegen.api.GenerationResultZip in project vorto by eclipse.
the class CGenerator method generate.
@Override
public IGenerationResult generate(InformationModel model, InvocationContext context) {
GenerationResultZip outputter = new GenerationResultZip(model, getServiceKey());
for (FunctionblockProperty property : model.getProperties()) {
ChainedCodeGeneratorTask<FunctionblockModel> generator = new ChainedCodeGeneratorTask<FunctionblockModel>();
if (property.getType().getFunctionblock().getStatus() != null) {
generator.addTask(new GeneratorTaskFromFileTemplate<>(new CHeaderTemplate()));
}
generator.generate(property.getType(), context, outputter);
}
return outputter;
}
use of org.eclipse.vorto.codegen.api.GenerationResultZip in project vorto by eclipse.
the class WebDeviceGenerator method generate.
@Override
public IGenerationResult generate(InformationModel context, InvocationContext invocationContext, IVortoCodeGenProgressMonitor monitor) throws VortoCodeGeneratorException {
GenerationResultZip outputter = new GenerationResultZip(context, getServiceKey());
for (FunctionblockProperty property : context.getProperties()) {
ChainedCodeGeneratorTask<FunctionblockModel> generator = new ChainedCodeGeneratorTask<FunctionblockModel>();
generator.addTask(new GeneratorTaskFromFileTemplate<>(new ServiceClassTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new PageTemplate()));
generator.generate(property.getType(), invocationContext, outputter);
}
ChainedCodeGeneratorTask<InformationModel> generator = new ChainedCodeGeneratorTask<InformationModel>();
generator.addTask(new GeneratorTaskFromFileTemplate<>(new WebSocketConfigTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new PomFileTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new IndexHtmlFileTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new DeviceInfoTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new DeviceInfoServiceTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new ControllersScriptFileTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new AppScriptFileTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new ApplicationMainTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new CssTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new ApplicationYmlTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<>(new ReadmeTemplate()));
generator.generate(context, invocationContext, outputter);
IGenerationResult javaResult = invocationContext.lookupGenerator(JavabeanGenerator.KEY).generate(context, invocationContext, monitor);
return GenerationResultBuilder.from(outputter).append(javaResult).build();
}
use of org.eclipse.vorto.codegen.api.GenerationResultZip in project vorto by eclipse.
the class WebUIGenerator method generate.
@Override
public IGenerationResult generate(InformationModel model, InvocationContext context, IVortoCodeGenProgressMonitor monitor) {
GenerationResultZip output = new GenerationResultZip(model, getServiceKey());
ChainedCodeGeneratorTask<InformationModel> generator = new ChainedCodeGeneratorTask<InformationModel>();
/**
* config templates
*/
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new LocalConfigurationTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new WebSecurityConfigTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new WebSocketConfigTemplate()));
/**
* model templates
*/
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingTemplate()));
/**
* web controller templates
*/
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new IdentityControllerTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingControllerTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingMessageControllerTemplate()));
/**
* Root Application templates
*/
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new PomTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingApplicationTemplate()));
/**
* Web static javascript templates
*/
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new AppTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new BrowserControllerTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new DetailsControllerTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new LoginControllerTemplate()));
/**
* Web static css templates
*/
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new StyleTemplace()));
/**
* Web static html partial templates
*/
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new IndexHtmlTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new BrowserTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new LocatorTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new LoginTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new DetailsTemplate()));
/**
* Swagger stuff
*/
if (context.getConfigurationProperties().getOrDefault("swagger", "true").equalsIgnoreCase("true")) {
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new SwaggerConfigurationTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ApiControllerTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ApiTemplate()));
}
/**
* History stuff
*/
if (context.getConfigurationProperties().getOrDefault("persistence", "true").equalsIgnoreCase("true")) {
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new CrudRepositoryTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new HistoryDataControllerTemplate()));
}
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ApplicationConfigTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new AngularGageTemplate()));
/**
* IoT Cloud Platform Integration stuff
*/
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new QueryTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new DataServiceTemplate()));
if (context.getConfigurationProperties().getOrDefault("boschcloud", "false").equalsIgnoreCase("true")) {
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingsQueryTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingClientTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingClientBuilderTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingBuilderTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new org.eclipse.vorto.codegen.webui.templates.service.bosch.model.ThingTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new org.eclipse.vorto.codegen.webui.templates.service.bosch.model.FeatureTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingSearchResultTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingTypeAwareTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new FeatureImplTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingImplTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingSearchResultImplTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new AsyncInvocationTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new DefaultThingClient()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new ThingsInvocationTemplate()));
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new BoschThingsDataServiceTemplate()));
} else {
generator.addTask(new GeneratorTaskFromFileTemplate<InformationModel>(new SampleDataServiceTemplate()));
}
generator.generate(model, context, output);
ChainedCodeGeneratorTask<FunctionblockProperty> fbPropertyGenerators = new ChainedCodeGeneratorTask<FunctionblockProperty>();
for (FunctionblockProperty property : model.getProperties()) {
fbPropertyGenerators.addTask(new GeneratorTaskFromFileTemplate<>(new FeatureTemplate()));
fbPropertyGenerators.addTask(new GeneratorTaskFromFileTemplate<>(new LocationControllerTemplate()));
fbPropertyGenerators.generate(property, context, output);
FunctionBlock fb = property.getType().getFunctionblock();
for (Entity entity : Utils.getReferencedEntities(fb)) {
generateForEntity(model, entity, output);
}
for (Enum en : Utils.getReferencedEnums(fb)) {
generateForEnum(model, en, output);
}
}
return output;
}
Aggregations