Commits (7)
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="lib/asn1bean-compiler-1.12.1-SNAPSHOT.jar" sourcepath="/beanit.asn1bean/src"/>
......
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=11
......@@ -15,4 +15,3 @@ Export-Package: org.etsi.mts.tdl.asn2tdl
Bundle-ClassPath: lib/antlr-2.7.7.jar,
lib/asn1bean-compiler-1.12.1-SNAPSHOT.jar,
.
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
......@@ -36,6 +36,8 @@ public abstract class AbstractTranslator {
super();
}
public abstract void translate(String targetFilename) throws Exception;
public void initTargetResource(String name) {
generatedPackage = tdlFactory.eINSTANCE.createPackage();
generatedPackage.setName("generated_from_"+name);
......
......@@ -152,7 +152,7 @@ public class Validator {
.filter(v -> ((EObject)v.getInstance()).eResource() == r)
.collect(Collectors.toList());
dumpViolations(violations);
// dumpViolations(violations);
//TODO: Needed? New API does not provide it
// module.reset();
......@@ -181,11 +181,11 @@ public class Validator {
return violations;
}
private void dumpViolations(List<UnsatisfiedConstraint> violations) {
public void dumpViolations(List<UnsatisfiedConstraint> violations, boolean includeLocation) {
for (UnsatisfiedConstraint constraint : violations) {
System.out.println(" " + constraint.getMessage());
System.out.println(" Validator: " + constraint.getMessage());
//TODO: this can only work with XtextResources
if (((EObject) constraint.getInstance()).eResource() instanceof XtextResource) {
if (includeLocation && ((EObject) constraint.getInstance()).eResource() instanceof XtextResource) {
ICompositeNode node = NodeModelUtils.findActualNodeFor((EObject) constraint.getInstance());
String text = "Line "+node.getStartLine()+"-"+node.getEndLine()+ ": "+node.getText().trim();
System.out.println(" " + text);
......
......@@ -16,5 +16,6 @@ Require-Bundle: org.eclipse.xtext,
org.etsi.mts.tdl.TDLan2,
org.etsi.mts.tdl.TPLan2,
org.etsi.mts.tdl.tx,
org.etsi.mts.tdl.txi
org.etsi.mts.tdl.txi,
org.eclipse.emf.ecore
Export-Package: org.etsi.mts.tdl.helper
......@@ -3,12 +3,17 @@ package org.etsi.mts.tdl.helper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.EValidator;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.ocl.common.OCLConstants;
import org.eclipse.ocl.pivot.internal.delegate.OCLInvocationDelegateFactory;
import org.eclipse.ocl.pivot.internal.delegate.OCLSettingDelegateFactory;
......@@ -18,11 +23,8 @@ import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.resource.XtextResourceSet;
import org.etsi.mts.tdl.TDLan2StandaloneSetup;
import org.etsi.mts.tdl.TDLtxStandaloneSetup;
import org.etsi.mts.tdl.TPLan2StandaloneSetup;
import org.etsi.mts.tdl.impl.tdlPackageImpl;
import org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl;
import org.apache.log4j.Logger;
import org.apache.log4j.Level;
import com.google.inject.Injector;
......@@ -49,7 +51,7 @@ public class TDLHelper {
StructuredObjectivesPackageImpl.init();
EssentialOCLStandaloneSetup.doSetup();
initializeValidator();
resourceSet = getResourceSet();
resourceSet = getNewResourceSet();
}
/**
......@@ -58,11 +60,45 @@ public class TDLHelper {
* @return A resource loaded from the file.
*/
public static Resource load(String filename) {
//resourceSet = getResourceSet();
Resource resource = resourceSet.getResource(org.eclipse.emf.common.util.URI.createURI(filename), true);
return resource;
}
/**
* Link / resolve all loaded resources.
*/
public static void link() {
EcoreUtil.resolveAll(resourceSet);
}
/**
* Check all resources in the shared resourceSet.
*/
public static void check() {
//TODO: check automatically? make optional in case of performance or redundancy concerns?
// TDLHelper.link();
resourceSet.getResources().forEach(TDLHelper::check);
}
/**
* Check resource in the shared resourceSet. Load if needed.
* @param filename location of the resource to be checked.
*/
public static void check(String filename) {
Resource r = TDLHelper.load(filename);
check(r);
}
/**
* Check resource.
* @param r the resource to be checked.
*/
private static void check(Resource r) {
r.getErrors().forEach(e -> System.out.println("Error: "+r.getURI().lastSegment()+": "+e.getLine()+": "+e.getMessage()));
r.getWarnings().forEach(e -> System.out.println("Warning: "+r.getURI().lastSegment()+": "+e.getLine()+": "+e.getMessage()));
}
/**
* Creates a new resource at the specified location.
* @param filename Location of the resource to be loaded.
......@@ -92,10 +128,10 @@ public class TDLHelper {
* Setup and return an XtextResourceSet with TDLan2 file support.
* @return A new XtextResourceSet.
*/
public static XtextResourceSet getResourceSet() {
public static XtextResourceSet getNewResourceSet() {
new org.eclipse.emf.mwe.utils.StandaloneSetup().setPlatformUri("./");
injector = new TDLan2StandaloneSetup().createInjectorAndDoEMFRegistration();
injector = new TPLan2StandaloneSetup().createInjectorAndDoEMFRegistration();
// injector = new TPLan2StandaloneSetup().createInjectorAndDoEMFRegistration();
//TODO: can this be configurable? or does it preclude tdlan2 from being loaded?
injector = new TDLtxStandaloneSetup().createInjectorAndDoEMFRegistration();
XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
......@@ -107,7 +143,7 @@ public class TDLHelper {
* Reset the shared resourceSet.
*/
public static void resetResourceSet() {
resourceSet = getResourceSet();
resourceSet = getNewResourceSet();
}
/**
......@@ -124,4 +160,11 @@ public class TDLHelper {
new OCLValidationDelegateFactory(oclDelegateURI));
}
/**
* Get the shared resourceSet.
*/
public static XtextResourceSet getResourceSet() {
return resourceSet;
}
}
......@@ -2,9 +2,9 @@
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry exported="true" kind="lib" path="openapi-generator-cli-6.2.1.jar" sourcepath="openapi-generator-cli-6.2.1-sources.jar">
<classpathentry exported="true" kind="lib" path="openapi-generator-cli-6.3.0.jar" sourcepath="openapi-generator-cli-6.3.0-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.2.1-javadoc.jar!/"/>
<attribute name="javadoc_location" value="jar:platform:/resource/org.etsi.mts.tdl.openapi.generator.wrapper/openapi-generator-cli-6.3.0-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
......
......@@ -2,8 +2,8 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: OpenAPI Generator Wrapper
Bundle-SymbolicName: org.etsi.mts.tdl.openapi.generator.wrapper
Bundle-Version: 6.2.1
Bundle-ClassPath: openapi-generator-cli-6.2.1.jar
Bundle-Version: 6.3.0
Bundle-ClassPath: openapi-generator-cli-6.3.0.jar
Bundle-Vendor: ETSI
Export-Package: ch.lambdaj,
ch.lambdaj.collection,
......@@ -484,27 +484,21 @@ Export-Package: ch.lambdaj,
org.checkerframework.checker.calledmethods.qual,
org.checkerframework.checker.compilermsgs.qual,
org.checkerframework.checker.fenum.qual,
org.checkerframework.checker.formatter,
org.checkerframework.checker.formatter.qual,
org.checkerframework.checker.guieffect.qual,
org.checkerframework.checker.i18n.qual,
org.checkerframework.checker.i18nformatter,
org.checkerframework.checker.i18nformatter.qual,
org.checkerframework.checker.index.qual,
org.checkerframework.checker.initialization.qual,
org.checkerframework.checker.interning.qual,
org.checkerframework.checker.lock.qual,
org.checkerframework.checker.nullness,
org.checkerframework.checker.nullness.qual,
org.checkerframework.checker.optional.qual,
org.checkerframework.checker.propkey.qual,
org.checkerframework.checker.regex,
org.checkerframework.checker.regex.qual,
org.checkerframework.checker.signature.qual,
org.checkerframework.checker.signedness,
org.checkerframework.checker.signedness.qual,
org.checkerframework.checker.tainting.qual,
org.checkerframework.checker.units,
org.checkerframework.checker.units.qual,
org.checkerframework.checker.units.qual,
org.checkerframework.common.aliasing.qual,
org.checkerframework.common.initializedfields.qual,
......@@ -515,7 +509,6 @@ Export-Package: ch.lambdaj,
org.checkerframework.common.value.qual,
org.checkerframework.dataflow.qual,
org.checkerframework.framework.qual,
org.checkerframework.framework.util,
org.codehaus.commons.compiler,
org.codehaus.commons.compiler.io,
org.codehaus.commons.compiler.java8.java.util,
......@@ -527,7 +520,6 @@ Export-Package: ch.lambdaj,
org.codehaus.commons.compiler.util.iterator,
org.codehaus.commons.compiler.util.reflect,
org.codehaus.commons.compiler.util.resource,
org.codehaus.commons.io,
org.codehaus.commons.nullanalysis,
org.codehaus.janino,
org.codehaus.janino.samples,
......
bin.includes = META-INF/,\
openapi-generator-cli-6.2.1.jar
openapi-generator-cli-6.3.0.jar
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.etsi.mts.tdl.standalone</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=11
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: TDL Standalone Tools
Bundle-SymbolicName: org.etsi.mts.tdl.standalone
Bundle-Version: 1.0.0.qualifier
Automatic-Module-Name: org.etsi.mts.tdl.standalone
Bundle-Vendor: ETSI
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.emf.ecore,
org.eclipse.xtext,
org.eclipse.ocl.xtext.essentialocl,
org.etsi.mts.tdl.model,
org.etsi.mts.tdl.common,
org.etsi.mts.tdl.helper,
org.etsi.mts.tdl.to2tdl,
org.etsi.mts.tdl.asn2tdl,
org.etsi.mts.tdl.openapi2tdl.next,
org.etsi.mts.tdl.constraints,
org.eclipse.epsilon.evl.engine
Bundle-ClassPath: .
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
--<ASN1.HugeInteger World-Schema.Rocket.range>--
World-Schema DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
Rocket ::= SEQUENCE
{
range INTEGER, -- huge (see a special directive above)
name UTF8String (SIZE(1..16)),
message UTF8String DEFAULT "Hello World" ,
fuel ENUMERATED {solid, liquid, gas},
speed CHOICE
{
mph INTEGER,
kmph INTEGER
} OPTIONAL,
payload SEQUENCE OF UTF8String
}
END
Package generated_from_Rocket_asn {
Type String
Type TODO_RESOLVE_REFERENCED
Use "\"Rocket.asn\"" as SOURCE_MAPPING
Structure Rocket (
Integer range,
UTF8String ^name,
UTF8String message,
Rocket___fuel fuel,
optional Rocket___speed speed,
Rocket___payload payload
)
Type Integer
Type UTF8String
Structure AsnEnum ( )
Structure Rocket___speed { union } (
Integer mph,
Integer kmph
)
Constraint union
Collection Rocket___payload of UTF8String
Enumerated Rocket___fuel {
Rocket___fuel solid,
Rocket___fuel liquid,
Rocket___fuel gas
}
Map Rocket to "\"Rocket\"" in SOURCE_MAPPING as Rocket_MAPPING
Package generated_from_World_Schema }
\ No newline at end of file