Commit fe621c10 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ added getEnumDataType shortcut method, reduced duplication and simplified other methods

parent 2239f8c8
Loading
Loading
Loading
Loading
+8 −28
Original line number Diff line number Diff line
@@ -7,12 +7,14 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.resource.Resource;
import org.etsi.mts.tdl.Element;
import org.etsi.mts.tdl.ElementImport;
import org.etsi.mts.tdl.EnumDataType;
import org.etsi.mts.tdl.NamedElement;
import org.etsi.mts.tdl.Package;
import org.etsi.mts.tdl.PackageableElement;
import org.etsi.mts.tdl.SimpleDataType;
import org.etsi.mts.tdl.StructuredDataType;
import org.etsi.mts.tdl.tdlFactory;
import org.etsi.mts.tdl.tdlPackage;

public abstract class AbstractTranslator {
	private Package generatedPackage;
@@ -41,37 +43,15 @@ public abstract class AbstractTranslator {
	}

	protected SimpleDataType getSimpleDataTypeFor(String name) {
		String cleanName = cleanName(name);
		Optional<PackageableElement> optional = generatedPackage.getPackagedElement().stream()
			.filter(e -> e instanceof SimpleDataType && e.getName().equals(cleanName))
			.findFirst();
		
		SimpleDataType generatedType;
		if (optional.isPresent()) {
			generatedType = (SimpleDataType) optional.get();
		} else {
			generatedType = tdlFactory.eINSTANCE.createSimpleDataType();
			generatedType.setName(cleanName);
			generatedPackage.getPackagedElement().add(generatedType);
		return getTypeFor(cleanName(name), tdlPackage.Literals.SIMPLE_DATA_TYPE);
	}
		return generatedType;

	protected EnumDataType getEnumDataTypeFor(String name) {
		return getTypeFor(cleanName(name), tdlPackage.Literals.ENUM_DATA_TYPE);
	}
	
	protected StructuredDataType getStructuredDataTypeFor(String name) {
		String cleanName = cleanName(name);
		Optional<PackageableElement> optional = generatedPackage.getPackagedElement().stream()
			.filter(e -> e instanceof StructuredDataType && e.getName().equals(cleanName))
			.findFirst();
		
		StructuredDataType generatedType;
		if (optional.isPresent()) {
			generatedType = (StructuredDataType) optional.get();
		} else {
			generatedType = tdlFactory.eINSTANCE.createStructuredDataType();
			generatedType.setName(cleanName);
			generatedPackage.getPackagedElement().add(generatedType);
		}
		return generatedType;
		return getTypeFor(cleanName(name), tdlPackage.Literals.STRUCTURED_DATA_TYPE);
	}

	public String cleanName(String name) {