Loading plugins/org.etsi.mts.tdl.asn2tdl/src/org/etsi/mts/tdl/asn2tdl/ASN2TDLTranslator.java +22 −3 Original line number Diff line number Diff line Loading @@ -8,9 +8,13 @@ import java.nio.file.Paths; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.AnnotationType; import org.etsi.mts.tdl.CollectionDataType; import org.etsi.mts.tdl.Constraint; import org.etsi.mts.tdl.ConstraintType; import org.etsi.mts.tdl.DataType; import org.etsi.mts.tdl.EnumDataType; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.SimpleDataInstance; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.tdlFactory; import org.etsi.mts.tdl.tdlPackage; Loading @@ -27,6 +31,7 @@ import com.beanit.asn1bean.compiler.model.AsnEnum; import com.beanit.asn1bean.compiler.model.AsnInteger; import com.beanit.asn1bean.compiler.model.AsnModel; import com.beanit.asn1bean.compiler.model.AsnModule; import com.beanit.asn1bean.compiler.model.AsnNamedNumber; import com.beanit.asn1bean.compiler.model.AsnNull; import com.beanit.asn1bean.compiler.model.AsnObjectIdentifier; import com.beanit.asn1bean.compiler.model.AsnOctetString; Loading Loading @@ -97,7 +102,7 @@ public class ASN2TDLTranslator extends AbstractTranslator { generatedType = getStructuredDataTypeFor(type.name); if (!flat) { //TODO: change to union constraint constrainWith(generatedType, "union"); annotateWith(generatedType, "CHOICE"); for (AsnElementType c : ((AsnChoice) type).componentTypes) { translateMember((StructuredDataType)generatedType, c); Loading Loading @@ -160,10 +165,15 @@ public class ASN2TDLTranslator extends AbstractTranslator { //TODO: handle somehow? generatedType = getSimpleDataTypeFor(type.name); } else if (type instanceof AsnEnum) { //TODO: change to enum //TODO: add enum values from ((AsnEnum)type).namedNumberList.namedNumbers generatedType = getSimpleDataTypeFor(type.name); generatedType = getEnumDataTypeFor(type.name); annotateWith(generatedType, "ENUM"); for (AsnNamedNumber literal : ((AsnEnum)type).namedNumberList.namedNumbers) { SimpleDataInstance enumLiteral = tdlFactory.eINSTANCE.createSimpleDataInstance(); enumLiteral.setName(literal.name); enumLiteral.setDataType(generatedType); ((EnumDataType)generatedType).getValue().add(enumLiteral); } } else if (type instanceof AsnCharacterString) { String typeName = type.name; if (typeName.isEmpty()) { Loading Loading @@ -221,6 +231,15 @@ public class ASN2TDLTranslator extends AbstractTranslator { } } private void constrainWith(final DataType generatedType, String constraintName) { ConstraintType constraintType = getTypeFor(cleanName(constraintName), tdlPackage.Literals.CONSTRAINT_TYPE); if (!generatedType.getConstraint().stream().anyMatch(a->a.getType()==constraintType)) { Constraint constraint = tdlFactory.eINSTANCE.createConstraint(); constraint.setType(constraintType); generatedType.getConstraint().add(constraint); } } private DataType translateTagged(AsnType type, boolean flat) { final DataType generatedType; AsnTaggedType taggedType = ((AsnTaggedType) type); Loading Loading
plugins/org.etsi.mts.tdl.asn2tdl/src/org/etsi/mts/tdl/asn2tdl/ASN2TDLTranslator.java +22 −3 Original line number Diff line number Diff line Loading @@ -8,9 +8,13 @@ import java.nio.file.Paths; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.AnnotationType; import org.etsi.mts.tdl.CollectionDataType; import org.etsi.mts.tdl.Constraint; import org.etsi.mts.tdl.ConstraintType; import org.etsi.mts.tdl.DataType; import org.etsi.mts.tdl.EnumDataType; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.SimpleDataInstance; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.tdlFactory; import org.etsi.mts.tdl.tdlPackage; Loading @@ -27,6 +31,7 @@ import com.beanit.asn1bean.compiler.model.AsnEnum; import com.beanit.asn1bean.compiler.model.AsnInteger; import com.beanit.asn1bean.compiler.model.AsnModel; import com.beanit.asn1bean.compiler.model.AsnModule; import com.beanit.asn1bean.compiler.model.AsnNamedNumber; import com.beanit.asn1bean.compiler.model.AsnNull; import com.beanit.asn1bean.compiler.model.AsnObjectIdentifier; import com.beanit.asn1bean.compiler.model.AsnOctetString; Loading Loading @@ -97,7 +102,7 @@ public class ASN2TDLTranslator extends AbstractTranslator { generatedType = getStructuredDataTypeFor(type.name); if (!flat) { //TODO: change to union constraint constrainWith(generatedType, "union"); annotateWith(generatedType, "CHOICE"); for (AsnElementType c : ((AsnChoice) type).componentTypes) { translateMember((StructuredDataType)generatedType, c); Loading Loading @@ -160,10 +165,15 @@ public class ASN2TDLTranslator extends AbstractTranslator { //TODO: handle somehow? generatedType = getSimpleDataTypeFor(type.name); } else if (type instanceof AsnEnum) { //TODO: change to enum //TODO: add enum values from ((AsnEnum)type).namedNumberList.namedNumbers generatedType = getSimpleDataTypeFor(type.name); generatedType = getEnumDataTypeFor(type.name); annotateWith(generatedType, "ENUM"); for (AsnNamedNumber literal : ((AsnEnum)type).namedNumberList.namedNumbers) { SimpleDataInstance enumLiteral = tdlFactory.eINSTANCE.createSimpleDataInstance(); enumLiteral.setName(literal.name); enumLiteral.setDataType(generatedType); ((EnumDataType)generatedType).getValue().add(enumLiteral); } } else if (type instanceof AsnCharacterString) { String typeName = type.name; if (typeName.isEmpty()) { Loading Loading @@ -221,6 +231,15 @@ public class ASN2TDLTranslator extends AbstractTranslator { } } private void constrainWith(final DataType generatedType, String constraintName) { ConstraintType constraintType = getTypeFor(cleanName(constraintName), tdlPackage.Literals.CONSTRAINT_TYPE); if (!generatedType.getConstraint().stream().anyMatch(a->a.getType()==constraintType)) { Constraint constraint = tdlFactory.eINSTANCE.createConstraint(); constraint.setType(constraintType); generatedType.getConstraint().add(constraint); } } private DataType translateTagged(AsnType type, boolean flat) { final DataType generatedType; AsnTaggedType taggedType = ((AsnTaggedType) type); Loading