Search in sources :

Example 11 with FunctionblockProperty

use of org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty in project vorto by eclipse.

the class JavaClientTask method generate.

@Override
public void generate(InformationModel element, InvocationContext context, IGeneratedWriter writer) {
    ChainedCodeGeneratorTask<InformationModel> generator = new ChainedCodeGeneratorTask<InformationModel>();
    generator.addTask(new GeneratorTaskFromFileTemplate<>(new PomTemplate()));
    generator.addTask(new GeneratorTaskFromFileTemplate<>(new LogbackTemplate()));
    generator.addTask(new ThingsClientGeneratorTask());
    generator.addTask(new ThingsIntegrationUtilGeneratorTask());
    generator.generate(element, context, writer);
    for (FunctionblockProperty fbProperty : element.getProperties()) {
        if (context.getConfigurationProperties().getOrDefault(CONFIG_PARAM_SKIP_CLIENT, "false").equalsIgnoreCase("false")) {
            new GeneratorTaskFromFileTemplate<>(new FunctionblockTemplate()).generate(fbProperty.getType(), context, writer);
        }
    }
}
Also used : PomTemplate(org.eclipse.vorto.codegen.bosch.things.javaclient.templates.PomTemplate) LogbackTemplate(org.eclipse.vorto.codegen.bosch.things.javaclient.templates.LogbackTemplate) ThingsClientGeneratorTask(org.eclipse.vorto.codegen.bosch.things.javaclient.tasks.ThingsClientGeneratorTask) InformationModel(org.eclipse.vorto.core.api.model.informationmodel.InformationModel) ChainedCodeGeneratorTask(org.eclipse.vorto.codegen.api.ChainedCodeGeneratorTask) FunctionblockProperty(org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty) ThingsIntegrationUtilGeneratorTask(org.eclipse.vorto.codegen.bosch.things.javaclient.tasks.ThingsIntegrationUtilGeneratorTask) FunctionblockTemplate(org.eclipse.vorto.codegen.bosch.things.javaclient.templates.FunctionblockTemplate)

Example 12 with FunctionblockProperty

use of org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty 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;
}
Also used : FunctionblockModel(org.eclipse.vorto.core.api.model.functionblock.FunctionblockModel) GenerationResultZip(org.eclipse.vorto.codegen.api.GenerationResultZip) ChainedCodeGeneratorTask(org.eclipse.vorto.codegen.api.ChainedCodeGeneratorTask) FunctionblockProperty(org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty)

Example 13 with FunctionblockProperty

use of org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty in project vorto by eclipse.

the class TestInfoModelFactory method createFunctionblockProperty.

private static FunctionblockProperty createFunctionblockProperty(FunctionblockModel fbm) {
    FunctionblockProperty fbp = InformationModelFactory.eINSTANCE.createFunctionblockProperty();
    fbp.setName("fbm1");
    fbp.setType(fbm);
    return fbp;
}
Also used : FunctionblockProperty(org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty)

Example 14 with FunctionblockProperty

use of org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty 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();
}
Also used : GenerationResultZip(org.eclipse.vorto.codegen.api.GenerationResultZip) PageTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.PageTemplate) ControllersScriptFileTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.ControllersScriptFileTemplate) InformationModel(org.eclipse.vorto.core.api.model.informationmodel.InformationModel) DeviceInfoServiceTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.DeviceInfoServiceTemplate) ChainedCodeGeneratorTask(org.eclipse.vorto.codegen.api.ChainedCodeGeneratorTask) ServiceClassTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.ServiceClassTemplate) IGenerationResult(org.eclipse.vorto.codegen.api.IGenerationResult) IndexHtmlFileTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.IndexHtmlFileTemplate) FunctionblockModel(org.eclipse.vorto.core.api.model.functionblock.FunctionblockModel) PomFileTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.PomFileTemplate) ReadmeTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.ReadmeTemplate) AppScriptFileTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.AppScriptFileTemplate) ApplicationMainTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.ApplicationMainTemplate) CssTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.CssTemplate) WebSocketConfigTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.WebSocketConfigTemplate) DeviceInfoTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.DeviceInfoTemplate) ApplicationYmlTemplate(org.eclipse.vorto.codegen.webdevice.tasks.templates.ApplicationYmlTemplate) FunctionblockProperty(org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty)

Example 15 with FunctionblockProperty

use of org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty 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;
}
Also used : Enum(org.eclipse.vorto.core.api.model.datatype.Enum) Entity(org.eclipse.vorto.core.api.model.datatype.Entity) FeatureTemplate(org.eclipse.vorto.codegen.webui.templates.model.FeatureTemplate) ThingsInvocationTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.internal.ThingsInvocationTemplate) ThingsQueryTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.ThingsQueryTemplate) ThingClientTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.ThingClientTemplate) DefaultThingClient(org.eclipse.vorto.codegen.webui.templates.service.bosch.internal.DefaultThingClient) ThingMessageControllerTemplate(org.eclipse.vorto.codegen.webui.templates.web.ThingMessageControllerTemplate) LoginControllerTemplate(org.eclipse.vorto.codegen.webui.templates.resources.js.LoginControllerTemplate) HistoryDataControllerTemplate(org.eclipse.vorto.codegen.webui.templates.web.HistoryDataControllerTemplate) IndexHtmlTemplate(org.eclipse.vorto.codegen.webui.templates.resources.IndexHtmlTemplate) CrudRepositoryTemplate(org.eclipse.vorto.codegen.webui.templates.dao.CrudRepositoryTemplate) FunctionblockProperty(org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty) FunctionBlock(org.eclipse.vorto.core.api.model.functionblock.FunctionBlock) AppTemplate(org.eclipse.vorto.codegen.webui.templates.resources.js.AppTemplate) ChainedCodeGeneratorTask(org.eclipse.vorto.codegen.api.ChainedCodeGeneratorTask) ApiControllerTemplate(org.eclipse.vorto.codegen.webui.templates.resources.js.ApiControllerTemplate) DetailsTemplate(org.eclipse.vorto.codegen.webui.templates.resources.partials.DetailsTemplate) SampleDataServiceTemplate(org.eclipse.vorto.codegen.webui.templates.service.sample.SampleDataServiceTemplate) ThingImplTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.internal.model.ThingImplTemplate) WebSecurityConfigTemplate(org.eclipse.vorto.codegen.webui.templates.config.WebSecurityConfigTemplate) ThingClientBuilderTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.ThingClientBuilderTemplate) StyleTemplace(org.eclipse.vorto.codegen.webui.templates.resources.css.StyleTemplace) PomTemplate(org.eclipse.vorto.codegen.webui.templates.PomTemplate) LocatorTemplate(org.eclipse.vorto.codegen.webui.templates.resources.partials.LocatorTemplate) ThingsQueryTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.ThingsQueryTemplate) QueryTemplate(org.eclipse.vorto.codegen.webui.templates.service.QueryTemplate) AsyncInvocationTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.internal.AsyncInvocationTemplate) AngularGageTemplate(org.eclipse.vorto.codegen.webui.templates.resources.AngularGageTemplate) ThingControllerTemplate(org.eclipse.vorto.codegen.webui.templates.web.ThingControllerTemplate) FeatureImplTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.internal.model.FeatureImplTemplate) InformationModel(org.eclipse.vorto.core.api.model.informationmodel.InformationModel) ThingTemplate(org.eclipse.vorto.codegen.webui.templates.model.ThingTemplate) SampleDataServiceTemplate(org.eclipse.vorto.codegen.webui.templates.service.sample.SampleDataServiceTemplate) BoschThingsDataServiceTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.BoschThingsDataServiceTemplate) DataServiceTemplate(org.eclipse.vorto.codegen.webui.templates.service.DataServiceTemplate) ApiTemplate(org.eclipse.vorto.codegen.webui.templates.resources.partials.ApiTemplate) BoschThingsDataServiceTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.BoschThingsDataServiceTemplate) ThingBuilderTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.ThingBuilderTemplate) IdentityControllerTemplate(org.eclipse.vorto.codegen.webui.templates.web.IdentityControllerTemplate) ThingSearchResultImplTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.internal.model.ThingSearchResultImplTemplate) BrowserTemplate(org.eclipse.vorto.codegen.webui.templates.resources.partials.BrowserTemplate) LocationControllerTemplate(org.eclipse.vorto.codegen.webui.templates.resources.js.LocationControllerTemplate) DetailsControllerTemplate(org.eclipse.vorto.codegen.webui.templates.resources.js.DetailsControllerTemplate) GenerationResultZip(org.eclipse.vorto.codegen.api.GenerationResultZip) BrowserControllerTemplate(org.eclipse.vorto.codegen.webui.templates.resources.js.BrowserControllerTemplate) ApplicationConfigTemplate(org.eclipse.vorto.codegen.webui.templates.resources.ApplicationConfigTemplate) ThingApplicationTemplate(org.eclipse.vorto.codegen.webui.templates.ThingApplicationTemplate) LoginTemplate(org.eclipse.vorto.codegen.webui.templates.resources.partials.LoginTemplate) ThingSearchResultTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.model.ThingSearchResultTemplate) SwaggerConfigurationTemplate(org.eclipse.vorto.codegen.webui.templates.config.SwaggerConfigurationTemplate) ThingTypeAwareTemplate(org.eclipse.vorto.codegen.webui.templates.service.bosch.model.ThingTypeAwareTemplate) WebSocketConfigTemplate(org.eclipse.vorto.codegen.webui.templates.config.WebSocketConfigTemplate) LocalConfigurationTemplate(org.eclipse.vorto.codegen.webui.templates.config.LocalConfigurationTemplate)

Aggregations

FunctionblockProperty (org.eclipse.vorto.core.api.model.informationmodel.FunctionblockProperty)15 GenerationResultZip (org.eclipse.vorto.codegen.api.GenerationResultZip)9 ChainedCodeGeneratorTask (org.eclipse.vorto.codegen.api.ChainedCodeGeneratorTask)8 InformationModel (org.eclipse.vorto.core.api.model.informationmodel.InformationModel)8 FunctionBlock (org.eclipse.vorto.core.api.model.functionblock.FunctionBlock)5 Entity (org.eclipse.vorto.core.api.model.datatype.Entity)4 Enum (org.eclipse.vorto.core.api.model.datatype.Enum)4 IGenerationResult (org.eclipse.vorto.codegen.api.IGenerationResult)2 FunctionblockModel (org.eclipse.vorto.core.api.model.functionblock.FunctionblockModel)2 HashSet (java.util.HashSet)1 EObject (org.eclipse.emf.ecore.EObject)1 GeneratorTaskFromFileTemplate (org.eclipse.vorto.codegen.api.GeneratorTaskFromFileTemplate)1 Characteristic (org.eclipse.vorto.codegen.ble.model.blegatt.Characteristic)1 Service (org.eclipse.vorto.codegen.ble.model.blegatt.Service)1 ThingsClientGeneratorTask (org.eclipse.vorto.codegen.bosch.things.javaclient.tasks.ThingsClientGeneratorTask)1 ThingsIntegrationUtilGeneratorTask (org.eclipse.vorto.codegen.bosch.things.javaclient.tasks.ThingsIntegrationUtilGeneratorTask)1 FunctionblockTemplate (org.eclipse.vorto.codegen.bosch.things.javaclient.templates.FunctionblockTemplate)1 LogbackTemplate (org.eclipse.vorto.codegen.bosch.things.javaclient.templates.LogbackTemplate)1 PomTemplate (org.eclipse.vorto.codegen.bosch.things.javaclient.templates.PomTemplate)1 CoAPClientInformationModelGeneratorTask (org.eclipse.vorto.codegen.coap.client.tasks.CoAPClientInformationModelGeneratorTask)1