diff --git a/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/ManifestFileModule.java b/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/ManifestFileModule.java index fa002344ec..0d36aeb285 100644 --- a/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/ManifestFileModule.java +++ b/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/ManifestFileModule.java @@ -38,8 +38,12 @@ public ManifestFileModule(ITemplate template) { } public void generate(ProjectMetaData metaData, InvocationContext invocationContext, IGeneratedWriter outputter) { - Generated generatedPom = new Generated(FILE_NAME, FOLDER_NAME, - template.getContent(metaData,invocationContext)); - outputter.write(generatedPom); + Generated generatedPom; + try { + generatedPom = new Generated(FILE_NAME, FOLDER_NAME, template.getContent(metaData,invocationContext)); + outputter.write(generatedPom); + } catch (Exception e) { + e.printStackTrace(); + } } } diff --git a/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/PluginBuildFileModule.java b/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/PluginBuildFileModule.java index 1f2c75bbd3..35af1c4660 100644 --- a/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/PluginBuildFileModule.java +++ b/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/PluginBuildFileModule.java @@ -37,8 +37,12 @@ public PluginBuildFileModule(ITemplate template) { } public void generate(Context metaData, InvocationContext invocationContext, IGeneratedWriter outputter) { - Generated generatedBuildFile = new Generated(FILE_NAME, null, - template.getContent(metaData,invocationContext)); - outputter.write(generatedBuildFile); + Generated generatedBuildFile; + try { + generatedBuildFile = new Generated(FILE_NAME, null, template.getContent(metaData,invocationContext)); + outputter.write(generatedBuildFile); + } catch (Exception e) { + e.printStackTrace(); + } } } diff --git a/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/PomFileModule.java b/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/PomFileModule.java index 8826aeea2c..165fb48678 100644 --- a/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/PomFileModule.java +++ b/bundles/org.eclipse.vorto.codegen.ui/src/org/eclipse/vorto/codegen/ui/tasks/PomFileModule.java @@ -34,10 +34,13 @@ public PomFileModule(ITemplate template) { } public void generate(Context model, InvocationContext invocationContext, IGeneratedWriter outputter) { - Generated generatedPom = new Generated(FILE_NAME, null, - template.getContent(model,invocationContext)); - - outputter.write(generatedPom); + Generated generatedPom; + try { + generatedPom = new Generated(FILE_NAME, null, template.getContent(model,invocationContext)); + outputter.write(generatedPom); + } catch (Exception e) { + e.printStackTrace(); + } } } diff --git a/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/AbstractTemplateGeneratorTask.java b/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/AbstractTemplateGeneratorTask.java index c246e56c6e..33b23cc311 100644 --- a/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/AbstractTemplateGeneratorTask.java +++ b/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/AbstractTemplateGeneratorTask.java @@ -23,7 +23,12 @@ public abstract class AbstractTemplateGeneratorTask im public void generate(final InformationModelFragment fragmentModel, final InvocationContext context, final IGeneratedWriter writer) { - Generated generated = new Generated(getFileName(fragmentModel), getPath(fragmentModel), getTemplate().getContent(fragmentModel,context)); + Generated generated; + try { + generated = new Generated(getFileName(fragmentModel), getPath(fragmentModel), getTemplate().getContent(fragmentModel,context)); + } catch (Exception e) { + generated = new Generated("error.log", getPath(fragmentModel), e.getMessage()); + } writer.write(generated); } diff --git a/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/DatatypeGeneratorTask.java b/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/DatatypeGeneratorTask.java index b11d6333f5..c8ab10427f 100644 --- a/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/DatatypeGeneratorTask.java +++ b/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/DatatypeGeneratorTask.java @@ -56,9 +56,17 @@ public void generate(InformationModel ctx, InvocationContext context, IGenerated for (Type type : allTypesUsedInModel) { if (type instanceof Entity) { - writer.write(new Generated(entityTemplate.getFileName((Entity)type),entityTemplate.getPath((Entity)type),entityTemplate.getContent((Entity)type,context))); + try { + writer.write(new Generated(entityTemplate.getFileName((Entity)type),entityTemplate.getPath((Entity)type),entityTemplate.getContent((Entity)type,context))); + } catch (Exception e) { + e.printStackTrace(); + } } else if (type instanceof Enum) { - writer.write(new Generated(enumTemplate.getFileName((Enum)type),enumTemplate.getPath((Enum)type),enumTemplate.getContent((Enum)type,context))); + try { + writer.write(new Generated(enumTemplate.getFileName((Enum)type),enumTemplate.getPath((Enum)type),enumTemplate.getContent((Enum)type,context))); + } catch (Exception e) { + e.printStackTrace(); + } } } } diff --git a/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/ITemplate.java b/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/ITemplate.java index 4c536da1d4..c5df10ba30 100644 --- a/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/ITemplate.java +++ b/bundles/org.eclipse.vorto.codegen/src/org/eclipse/vorto/codegen/api/ITemplate.java @@ -32,6 +32,6 @@ public interface ITemplate { * @param context * @return generated content for the specified context */ - String getContent(Element element, InvocationContext context); + String getContent(Element element, InvocationContext context) throws Exception; } diff --git a/example-generators/org.eclipse.vorto.codegen.examples.lwm2m/src/org/eclipse/vorto/codegen/examples/lwm2m/templates/FunctionBlockLeshanTemplate.xtend b/example-generators/org.eclipse.vorto.codegen.examples.lwm2m/src/org/eclipse/vorto/codegen/examples/lwm2m/templates/FunctionBlockLeshanTemplate.xtend index 95bf86b6c1..7593696463 100644 --- a/example-generators/org.eclipse.vorto.codegen.examples.lwm2m/src/org/eclipse/vorto/codegen/examples/lwm2m/templates/FunctionBlockLeshanTemplate.xtend +++ b/example-generators/org.eclipse.vorto.codegen.examples.lwm2m/src/org/eclipse/vorto/codegen/examples/lwm2m/templates/FunctionBlockLeshanTemplate.xtend @@ -26,7 +26,7 @@ import org.eclipse.vorto.core.api.model.functionblock.FunctionblockModel */ class FunctionBlockLeshanTemplate extends LWM2MConstants implements ITemplate { - override getContent(FunctionblockModel model,InvocationContext context) { + override getContent(FunctionblockModel model,InvocationContext context) throws Exception { ''' package examples.leshan.client; @@ -37,6 +37,8 @@ import org.eclipse.leshan.core.response.ReadResponse; public class «model.name» extends BaseInstanceEnabler { + «IF model.functionblock.status != null» + «FOR statusProperty : model.functionblock.status.properties» /** * «statusProperty.description» @@ -101,6 +103,8 @@ public class «model.name» extends BaseInstanceEnabler { } } + + «ENDIF» } diff --git a/example-generators/org.eclipse.vorto.codegen.examples.lwm2m/src/org/eclipse/vorto/codegen/examples/lwm2m/utils/ModuleUtil.java b/example-generators/org.eclipse.vorto.codegen.examples.lwm2m/src/org/eclipse/vorto/codegen/examples/lwm2m/utils/ModuleUtil.java index dee2a5b79e..bd08f0a44b 100644 --- a/example-generators/org.eclipse.vorto.codegen.examples.lwm2m/src/org/eclipse/vorto/codegen/examples/lwm2m/utils/ModuleUtil.java +++ b/example-generators/org.eclipse.vorto.codegen.examples.lwm2m/src/org/eclipse/vorto/codegen/examples/lwm2m/utils/ModuleUtil.java @@ -21,7 +21,7 @@ */ public final class ModuleUtil { private static final String XML_SRC_LOCATION = "/objects/"; - private static final String LESHAN_SRC_LOCATION = "/leshan"; + private static final String LESHAN_SRC_LOCATION = "/leshan/"; private ModuleUtil() { }