Loading plugins/org.etsi.mts.tdl.standalone/META-INF/MANIFEST.MF +2 −1 Original line number Diff line number Diff line Loading @@ -18,5 +18,6 @@ Require-Bundle: org.eclipse.core.runtime, org.etsi.mts.tdl.openapi2tdl.next, org.etsi.mts.tdl.constraints, org.eclipse.epsilon.evl.engine, org.etsi.mts.tdl.tools.to.docx.poi org.etsi.mts.tdl.tools.to.docx.poi, org.etsi.mts.tdl.json2tdl Bundle-ClassPath: . plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java +76 −32 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import java.io.FilenameFilter; import java.net.URL; import java.security.CodeSource; import java.security.ProtectionDomain; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; Loading @@ -24,6 +25,7 @@ import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.asn2tdl.ASN2TDLTranslator; import org.etsi.mts.tdl.constraints.evl.Validator; import org.etsi.mts.tdl.helper.TDLHelper; import org.etsi.mts.tdl.json2tdl.JSON2TDLTranslator; import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; import org.etsi.mts.tdl.tools.to.docx.poi.Generator; import org.etsi.mts.tdl.transform.AbstractTranslator; Loading @@ -33,55 +35,93 @@ public class Standalone { static String targetExtension = "tdltx"; static String openapiExtension = "yaml"; static String asnExtension = "asn"; static String jsonExtension = "json"; private List<MODE> modes = new ArrayList<>(); private String path = ""; enum MODE { all, list, debug, validateOCL, validate, translate, exportDoc, importOpenAPI, importASN1, importJSON } public static void main(String[] args) throws Exception { Standalone app = new Standalone(); //folder String path = "examples/basics"; //TODO: expose as arguments app.modes.add(MODE.importJSON); // app.path = "examples/json/model.json"; path = "examples/basics"; if (app.selected(MODE.list)) { String path = pathOrDefault(app.path, "examples/basics"); app.processElements(path, app::listElements); } //TODO: may fail //TODO: may fail due to literal value use without data type if (app.selected(MODE.validate)) { String path = pathOrDefault(app.path, "examples/basics"); app.processElements(path, app::validate); } //TODO: may fail // app.processElements(path, app::translate); if (app.selected(MODE.translate)) { String path = pathOrDefault(app.path, "examples/basics"); app.processElements(path, app::translate); } TDLHelper.resetResourceSet(); path = "examples/validation/Example.tdltx"; //TODO: can only be used in isolation as it interferes with OCL delegates afterwards.. // app.processElements(path, app::validateOCL); //TODO: may fail due to literal value use without data type // app.processElements(path, app::validate); if (app.selected(MODE.importJSON)) { String path = pathOrDefault(app.path, "examples/json"); app.processElements(path, jsonExtension, app::importJSON); } if (app.selected(MODE.exportDoc)) { String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); app.processElements(path, app::exportDoc); } TDLHelper.resetResourceSet(); path = "examples/openapi"; //TODO: can only be used in isolation as it interferes with OCL delegates afterwards.. if (app.selected(MODE.validateOCL)) { String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); app.processElements(path, app::validateOCL); } if (app.selected(MODE.importOpenAPI)) { String path = pathOrDefault(app.path, "examples/openapi"); app.processElements(path, openapiExtension, app::importOpenAPI); //NOTE: keep in mind weird errors if legacy OpenAPI importer is imported as well in manifest (especially if it is first) } TDLHelper.resetResourceSet(); path = "examples/asn1"; if (app.selected(MODE.importASN1)) { String path = pathOrDefault(app.path, "examples/asn1"); app.processElements(path, asnExtension, app::importASN1); } if (app.selected(MODE.debug)) { //individual file without dependencies TDLHelper.resetResourceSet(); path = "examples/basics/Sample.tdltx"; app.processElements(path, app::listElements); app.processElements("examples/basics/Sample.tdltx", app::listElements); //individual file with missing dependencies TDLHelper.resetResourceSet(); path = "examples/basics/ImportSample.tdltx"; app.processElements(path, app::listElements); app.processElements("examples/basics/ImportSample.tdltx", app::listElements); //validation will fail due to unresolved items } //TODO: minimal example for TO translation //TODO: minimal example for TTCN-3 generation //TODO: clean up keywords automatically } private static String pathOrDefault(String path, String defaultPath) { return path.isEmpty() ? defaultPath : path; } private boolean selected(MODE m) { return modes.contains(MODE.all) || modes.contains(m); } private void processElements(String path, Consumer<String> operation) throws Exception { TDLHelper.resetResourceSet(); processElements(path, sourceExtension, operation); } Loading Loading @@ -193,6 +233,10 @@ public class Standalone { importData(path, new ASN2TDLTranslator()); } private void importJSON(String path) { importData(path, new JSON2TDLTranslator()); } private void exportDoc(String path) { Resource resource = TDLHelper.load(path); Generator generator = new Generator(); Loading Loading
plugins/org.etsi.mts.tdl.standalone/META-INF/MANIFEST.MF +2 −1 Original line number Diff line number Diff line Loading @@ -18,5 +18,6 @@ Require-Bundle: org.eclipse.core.runtime, org.etsi.mts.tdl.openapi2tdl.next, org.etsi.mts.tdl.constraints, org.eclipse.epsilon.evl.engine, org.etsi.mts.tdl.tools.to.docx.poi org.etsi.mts.tdl.tools.to.docx.poi, org.etsi.mts.tdl.json2tdl Bundle-ClassPath: .
plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java +76 −32 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import java.io.FilenameFilter; import java.net.URL; import java.security.CodeSource; import java.security.ProtectionDomain; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; Loading @@ -24,6 +25,7 @@ import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.asn2tdl.ASN2TDLTranslator; import org.etsi.mts.tdl.constraints.evl.Validator; import org.etsi.mts.tdl.helper.TDLHelper; import org.etsi.mts.tdl.json2tdl.JSON2TDLTranslator; import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; import org.etsi.mts.tdl.tools.to.docx.poi.Generator; import org.etsi.mts.tdl.transform.AbstractTranslator; Loading @@ -33,55 +35,93 @@ public class Standalone { static String targetExtension = "tdltx"; static String openapiExtension = "yaml"; static String asnExtension = "asn"; static String jsonExtension = "json"; private List<MODE> modes = new ArrayList<>(); private String path = ""; enum MODE { all, list, debug, validateOCL, validate, translate, exportDoc, importOpenAPI, importASN1, importJSON } public static void main(String[] args) throws Exception { Standalone app = new Standalone(); //folder String path = "examples/basics"; //TODO: expose as arguments app.modes.add(MODE.importJSON); // app.path = "examples/json/model.json"; path = "examples/basics"; if (app.selected(MODE.list)) { String path = pathOrDefault(app.path, "examples/basics"); app.processElements(path, app::listElements); } //TODO: may fail //TODO: may fail due to literal value use without data type if (app.selected(MODE.validate)) { String path = pathOrDefault(app.path, "examples/basics"); app.processElements(path, app::validate); } //TODO: may fail // app.processElements(path, app::translate); if (app.selected(MODE.translate)) { String path = pathOrDefault(app.path, "examples/basics"); app.processElements(path, app::translate); } TDLHelper.resetResourceSet(); path = "examples/validation/Example.tdltx"; //TODO: can only be used in isolation as it interferes with OCL delegates afterwards.. // app.processElements(path, app::validateOCL); //TODO: may fail due to literal value use without data type // app.processElements(path, app::validate); if (app.selected(MODE.importJSON)) { String path = pathOrDefault(app.path, "examples/json"); app.processElements(path, jsonExtension, app::importJSON); } if (app.selected(MODE.exportDoc)) { String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); app.processElements(path, app::exportDoc); } TDLHelper.resetResourceSet(); path = "examples/openapi"; //TODO: can only be used in isolation as it interferes with OCL delegates afterwards.. if (app.selected(MODE.validateOCL)) { String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); app.processElements(path, app::validateOCL); } if (app.selected(MODE.importOpenAPI)) { String path = pathOrDefault(app.path, "examples/openapi"); app.processElements(path, openapiExtension, app::importOpenAPI); //NOTE: keep in mind weird errors if legacy OpenAPI importer is imported as well in manifest (especially if it is first) } TDLHelper.resetResourceSet(); path = "examples/asn1"; if (app.selected(MODE.importASN1)) { String path = pathOrDefault(app.path, "examples/asn1"); app.processElements(path, asnExtension, app::importASN1); } if (app.selected(MODE.debug)) { //individual file without dependencies TDLHelper.resetResourceSet(); path = "examples/basics/Sample.tdltx"; app.processElements(path, app::listElements); app.processElements("examples/basics/Sample.tdltx", app::listElements); //individual file with missing dependencies TDLHelper.resetResourceSet(); path = "examples/basics/ImportSample.tdltx"; app.processElements(path, app::listElements); app.processElements("examples/basics/ImportSample.tdltx", app::listElements); //validation will fail due to unresolved items } //TODO: minimal example for TO translation //TODO: minimal example for TTCN-3 generation //TODO: clean up keywords automatically } private static String pathOrDefault(String path, String defaultPath) { return path.isEmpty() ? defaultPath : path; } private boolean selected(MODE m) { return modes.contains(MODE.all) || modes.contains(m); } private void processElements(String path, Consumer<String> operation) throws Exception { TDLHelper.resetResourceSet(); processElements(path, sourceExtension, operation); } Loading Loading @@ -193,6 +233,10 @@ public class Standalone { importData(path, new ASN2TDLTranslator()); } private void importJSON(String path) { importData(path, new JSON2TDLTranslator()); } private void exportDoc(String path) { Resource resource = TDLHelper.load(path); Generator generator = new Generator(); Loading