Commit 16e87186 authored by Müller, Marco's avatar Müller, Marco
Browse files

Fixes code generation for the implemented of the mechanisms. These are just examples.

parent 957dda4d
Loading
Loading
Loading
Loading
+22 −12
Original line number Diff line number Diff line
@@ -166,4 +166,14 @@ abstract class ClassMechanism extends Mechanism {
		'''
	}

	def String createImportsForTargetTransformations() {
		return '''
			«IF !eClass.EStructuralFeatures.isEmpty»
				«FOR feature : eClass.EStructuralFeatures»
					import org.codeling.lang.«languageName».transformation.«eClass.name.toFirstLower»_feature.«feature»Transformation;
				«ENDFOR»
			«ENDIF»
		'''
	}

}
+12 −9
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@ class ConstantMemberAttributeMechanism extends AttributeMechanism {
	}

	override createRuntime(IPackageFragment packageFragment, ENamedElement element) {
		var String typeName = element.name.toFirstUpper;
		val String typeName = element.name.toFirstUpper;
		val String targetTypeName = (element as EAttribute).EType.name;
		
		val content = '''
			package «packageFragment.elementName»;
@@ -43,7 +44,9 @@ class ConstantMemberAttributeMechanism extends AttributeMechanism {
			import constant_member_attribute.runtime.ConstantMemberAttributeRuntime;
			
			public class «typeName»Runtime extends ConstantMemberAttributeRuntime {
				
				public «typeName»Runtime(TypeMechanismRuntime owningRuntime) {
					super(owningRuntime, «typeName».class, «targetTypeName»Runtime.class);
				}
			}
		''';

@@ -60,14 +63,14 @@ class ConstantMemberAttributeMechanism extends AttributeMechanism {
			
			import java.util.List;
			
			import org.codeling.mechanisms.transformations.ConstantMemberAttributeTransformation;
			import org.codeling.mechanisms.transformations.attributes.ConstantMemberAttributeTransformation;
			import org.eclipse.emf.ecore.EObject;
			import org.eclipse.jdt.core.IJavaElement;
			import org.eclipse.jdt.core.IType;
			
			import org.codeling.lang.base.java.transformation.AbstractModelCodeTransformation;
			import org.codeling.lang.«languageName».mm.«eAttribute.packageName».«eAttribute.packageName.toFirstUpper»Package;
			import org.codeling.lang.«languageName».mm.«eAttribute.packageName».«eAttribute.EContainingClass.name»;
			import «eAttribute.packageName».«eAttribute.packageName.toFirstUpper»Package;
			import «eAttribute.packageName».«eAttribute.EContainingClass.name»;
			
			public class «typeName»Transformation
					extends ConstantMemberAttributeTransformation<«eAttribute.EContainingClass.name»> {
@@ -83,9 +86,9 @@ class ConstantMemberAttributeMechanism extends AttributeMechanism {
				}
			
				@Override
				protected ClassMechanismTransformation<? extends EObject, ? extends IJavaElement> createSpecificTransformation(
					EObject targetModelElement) {
					new «eAttribute.EType.name»Transformation(this);
				protected void doCreateChildTransformationsToCode(
						List<AbstractModelCodeTransformation<? extends EObject, ? extends IJavaElement>> result) {
					// TODO Auto-generated method stub
				}
			
				@Override
+4 −4
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ class ContainmentOperationMechanism extends ClassMechanism {
		val content = '''
			package «packageFragment.elementName»;
			
			import org.codeling.lang.«languageName».mm.«owningElementName.toLowerCase»_feature.«typeName»;
			import «languageName».mm.«owningElementName.toLowerCase»_feature.«typeName»;
			import org.codeling.mechanism.runtime.ContainmentOperationRuntime;
			import org.codeling.mechanism.runtime.common.IntegratedModelException;
			import org.codeling.mechanism.runtime.common.TypeMechanismRuntime;
@@ -90,14 +90,14 @@ class ContainmentOperationMechanism extends ClassMechanism {
			
			import java.util.List;
			
			import org.codeling.mechanisms.transformations.ContainmentOperationTransformation;
			import org.codeling.mechanisms.transformations.classes.ContainmentOperationTransformation;
			import org.eclipse.emf.ecore.EObject;
			import org.eclipse.jdt.core.IJavaElement;
			import org.eclipse.jdt.core.IType;
			
			import org.codeling.lang.base.java.transformation.AbstractModelCodeTransformation;
			import org.codeling.lang.«languageName».mm.«eReference.packageName».«eReference.packageName»Package;
			import org.codeling.lang.«languageName».mm.«eReference.packageName».«eReference.EContainingClass.name»;
			import «eReference.packageName».«eReference.packageName»Package;
			import «eReference.packageName».«eReference.EContainingClass.name»;
			
			public class «typeName»Transformation
					extends ContainmentOperationTransformation<«eReference.EContainingClass.name», «eReference.EType.name»> {
+3 −3
Original line number Diff line number Diff line
@@ -81,14 +81,14 @@ class MarkerInterfaceMechanism extends ClassMechanism {
		
		import java.util.List;
		
		import org.codeling.mechanisms.transformations.MarkerInterfaceTransformation;
		import org.codeling.mechanisms.transformations.classes.MarkerInterfaceTransformation;
		import org.eclipse.emf.ecore.EObject;
		import org.eclipse.jdt.core.IJavaElement;
		
		import org.codeling.lang.base.java.transformation.AbstractModelCodeTransformation;
		import org.codeling.utils.CodelingException;
		import org.codeling.lang.«languageName».mm.«eClass.packageName».«eClass.packageName»Package;
		import org.codeling.lang.«languageName».mm.«eClass.packageName».«eClass.name»;
		import «eClass.packageName».«eClass.packageName»Package;
		import «eClass.packageName».«eClass.name»;
		
		
		«IF eClass.requiresFeaturePackageImport»
+4 −3
Original line number Diff line number Diff line
@@ -68,14 +68,15 @@ class NinjaSingletonMechanism extends ClassMechanism {
		
		import java.util.List;
		
		import org.codeling.mechanisms.transformations.NinjaSingletonTransformation;
		import org.codeling.mechanisms.transformations.classes.NinjaSingletonTransformation;
		import org.eclipse.emf.ecore.EObject;
		import org.eclipse.jdt.core.IJavaElement;
		
		import org.codeling.lang.base.java.transformation.AbstractModelCodeTransformation;
		import org.codeling.utils.CodelingException;
		import org.codeling.lang.«languageName».mm.«eClass.packageName».«eClass.packageName»Package;
		import org.codeling.lang.«languageName».mm.«eClass.packageName».«eClass.name»;
		«createImportsForTargetTransformations»
		import «eClass.packageName».«eClass.packageName»Package;
		import «eClass.packageName».«eClass.name»;
		
		
		«IF eClass.requiresFeaturePackageImport»
Loading