Loading plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java +62 −6 Original line number Diff line number Diff line Loading @@ -12,7 +12,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; import java.util.stream.Collectors; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.util.EcoreUtil; Loading @@ -22,8 +24,10 @@ import org.eclipse.ocl.pivot.utilities.OCL; import org.eclipse.ocl.pivot.utilities.ParserException; import org.eclipse.ocl.pivot.utilities.Query; import org.eclipse.xtext.EcoreUtil2; import org.etsi.mts.tdl.Extension; import org.etsi.mts.tdl.GateType; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.asn2tdl.ASN2TDLTranslator; import org.etsi.mts.tdl.constraints.evl.Validator; Loading @@ -31,6 +35,7 @@ import org.etsi.mts.tdl.helper.TDLHelper; import org.etsi.mts.tdl.json2tdl.JSON2TDLTranslator; import org.etsi.mts.tdl.json2tdl.TDL2JSONTranslator; import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; import org.etsi.mts.tdl.openapi2tdl.next.doc.Doc; import org.etsi.mts.tdl.tools.to.docx.poi.Generator; import org.etsi.mts.tdl.transform.AbstractTranslator; Loading @@ -46,9 +51,11 @@ public class Standalone { enum MODE { all, list, debug, validateOCL, validate, translate, exportDoc, exportJSON, importOpenAPI, importASN1, importJSON list, debug, evaluateOCL, validateOCL, validate, translate, exportDoc, exportJSON, importOpenAPI, importASN1, importJSON, openAPIDoc } public static void main(String[] args) throws Exception { Loading @@ -59,11 +66,21 @@ public class Standalone { // app.modes.add(MODE.exportJSON); app.path = "examples/openapi/reqres.yaml"; app.modes.add(MODE.importOpenAPI); // app.modes.add(MODE.importOpenAPI); // app.modes.add(MODE.list); // app.path = "examples/json/model.json"; app.path = "examples/validation/Naming.tdltx"; app.recursive = false; app.modes.add(MODE.validate); // targetExtension = "tdl"; // app.modes.add(MODE.translate); // app.path = "examples/validation/Naming.tdltx.tdl"; app.modes.add(MODE.validateOCL); if (app.selected(MODE.list)) { String path = pathOrDefault(app.path, "examples/basics"); // app.processElements(path, app::listElements); app.processElements(path, app::listElements); } Loading Loading @@ -97,18 +114,29 @@ public class Standalone { app.processElements(path, app::exportDoc); } //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); } //TODO: can only be used in isolation as it interferes with OCL delegates afterwards.. if (app.selected(MODE.evaluateOCL)) { String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); app.processElements(path, app::evaluateOCLInline); } 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) } if (app.selected(MODE.openAPIDoc)) { String path = pathOrDefault(app.path, "examples/openapi"); app.processElements(path, openapiExtension, app::documentOpenAPI); //NOTE: keep in mind weird errors if legacy OpenAPI importer is imported as well in manifest (especially if it is first) } if (app.selected(MODE.importASN1)) { String path = pathOrDefault(app.path, "examples/asn1"); app.processElements(path, asnExtension, app::importASN1); Loading Loading @@ -202,6 +230,15 @@ public class Standalone { p.getPackagedElement().forEach(e -> { System.out.println(" " + e.getName()); System.out.println(" " + e.eClass().getName() + " : " + e.getQualifiedName()); if (e instanceof StructuredDataType) { EList<Extension> extension = ((StructuredDataType) e).getExtension(); if (!extension.isEmpty()) { System.out.println(" Extends: " + extension.stream() .map(x-> x.getExtending().getName()) .collect(Collectors.joining(", ")) ); } } }); } Loading @@ -219,6 +256,12 @@ public class Standalone { } private void validateOCL(String path) { Resource resource = TDLHelper.load(path); Validator validator = new Validator(); validator.validateOCL2(resource); } private void evaluateOCLInline(String path) { Resource resource = TDLHelper.load(path); OCL ocl = OCL.newInstance(TDLHelper.getResourceSet()); EClass contextEClass = tdlPackage.Literals.GATE_TYPE; Loading Loading @@ -267,6 +310,19 @@ public class Standalone { importData(path, new OpenAPI2TDLTranslatorNext()); } private void documentOpenAPI(String path) { Doc doc = new Doc(); try { //TODO: make configurable doc.processModel(path, true); Files.writeString(Path.of(path+"-RQ-ICS-TSS.md"), doc.getContent()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void importASN1(String path) { importData(path, new ASN2TDLTranslator()); } Loading Loading
plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java +62 −6 Original line number Diff line number Diff line Loading @@ -12,7 +12,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; import java.util.stream.Collectors; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.util.EcoreUtil; Loading @@ -22,8 +24,10 @@ import org.eclipse.ocl.pivot.utilities.OCL; import org.eclipse.ocl.pivot.utilities.ParserException; import org.eclipse.ocl.pivot.utilities.Query; import org.eclipse.xtext.EcoreUtil2; import org.etsi.mts.tdl.Extension; import org.etsi.mts.tdl.GateType; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.asn2tdl.ASN2TDLTranslator; import org.etsi.mts.tdl.constraints.evl.Validator; Loading @@ -31,6 +35,7 @@ import org.etsi.mts.tdl.helper.TDLHelper; import org.etsi.mts.tdl.json2tdl.JSON2TDLTranslator; import org.etsi.mts.tdl.json2tdl.TDL2JSONTranslator; import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; import org.etsi.mts.tdl.openapi2tdl.next.doc.Doc; import org.etsi.mts.tdl.tools.to.docx.poi.Generator; import org.etsi.mts.tdl.transform.AbstractTranslator; Loading @@ -46,9 +51,11 @@ public class Standalone { enum MODE { all, list, debug, validateOCL, validate, translate, exportDoc, exportJSON, importOpenAPI, importASN1, importJSON list, debug, evaluateOCL, validateOCL, validate, translate, exportDoc, exportJSON, importOpenAPI, importASN1, importJSON, openAPIDoc } public static void main(String[] args) throws Exception { Loading @@ -59,11 +66,21 @@ public class Standalone { // app.modes.add(MODE.exportJSON); app.path = "examples/openapi/reqres.yaml"; app.modes.add(MODE.importOpenAPI); // app.modes.add(MODE.importOpenAPI); // app.modes.add(MODE.list); // app.path = "examples/json/model.json"; app.path = "examples/validation/Naming.tdltx"; app.recursive = false; app.modes.add(MODE.validate); // targetExtension = "tdl"; // app.modes.add(MODE.translate); // app.path = "examples/validation/Naming.tdltx.tdl"; app.modes.add(MODE.validateOCL); if (app.selected(MODE.list)) { String path = pathOrDefault(app.path, "examples/basics"); // app.processElements(path, app::listElements); app.processElements(path, app::listElements); } Loading Loading @@ -97,18 +114,29 @@ public class Standalone { app.processElements(path, app::exportDoc); } //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); } //TODO: can only be used in isolation as it interferes with OCL delegates afterwards.. if (app.selected(MODE.evaluateOCL)) { String path = pathOrDefault(app.path, "examples/validation/Example.tdltx"); app.processElements(path, app::evaluateOCLInline); } 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) } if (app.selected(MODE.openAPIDoc)) { String path = pathOrDefault(app.path, "examples/openapi"); app.processElements(path, openapiExtension, app::documentOpenAPI); //NOTE: keep in mind weird errors if legacy OpenAPI importer is imported as well in manifest (especially if it is first) } if (app.selected(MODE.importASN1)) { String path = pathOrDefault(app.path, "examples/asn1"); app.processElements(path, asnExtension, app::importASN1); Loading Loading @@ -202,6 +230,15 @@ public class Standalone { p.getPackagedElement().forEach(e -> { System.out.println(" " + e.getName()); System.out.println(" " + e.eClass().getName() + " : " + e.getQualifiedName()); if (e instanceof StructuredDataType) { EList<Extension> extension = ((StructuredDataType) e).getExtension(); if (!extension.isEmpty()) { System.out.println(" Extends: " + extension.stream() .map(x-> x.getExtending().getName()) .collect(Collectors.joining(", ")) ); } } }); } Loading @@ -219,6 +256,12 @@ public class Standalone { } private void validateOCL(String path) { Resource resource = TDLHelper.load(path); Validator validator = new Validator(); validator.validateOCL2(resource); } private void evaluateOCLInline(String path) { Resource resource = TDLHelper.load(path); OCL ocl = OCL.newInstance(TDLHelper.getResourceSet()); EClass contextEClass = tdlPackage.Literals.GATE_TYPE; Loading Loading @@ -267,6 +310,19 @@ public class Standalone { importData(path, new OpenAPI2TDLTranslatorNext()); } private void documentOpenAPI(String path) { Doc doc = new Doc(); try { //TODO: make configurable doc.processModel(path, true); Files.writeString(Path.of(path+"-RQ-ICS-TSS.md"), doc.getContent()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void importASN1(String path) { importData(path, new ASN2TDLTranslator()); } Loading