Loading Language Integration/Commons/lang.base.java/src/main/java/org/codeling/mechanisms/transformations/references/AnnotatedMemberReferenceTransformation.xtend +10 −11 Original line number Diff line number Diff line package org.codeling.mechanisms.transformations.references import de.mkonersmann.advert.java.embed.ASTUtils import de.mkonersmann.advert.java.embed.transformation.AbstractModelCodeTransformation import java.util.Collection import java.util.LinkedHashSet import java.util.LinkedList Loading @@ -9,6 +8,7 @@ import java.util.List import java.util.Set import org.codeling.mechanisms.MechanismsMapping import org.codeling.mechanisms.classes.MarkerInterfaceMechanism import org.codeling.mechanisms.transformations.ClassMechanismTransformation import org.codeling.mechanisms.transformations.ReferenceMechanismTransformation import org.codeling.utils.CodelingException import org.eclipse.emf.ecore.EObject Loading @@ -18,9 +18,6 @@ import org.eclipse.jdt.core.ICompilationUnit import org.eclipse.jdt.core.IField import org.eclipse.jdt.core.IType import org.eclipse.jdt.core.dom.AST import org.codeling.mechanisms.transformations.ClassMechanismTransformation import org.modelversioning.emfprofileapplication.StereotypeApplication import org.modelversioning.emfprofileapplication.StereotypeApplicability abstract class AnnotatedMemberReferenceTransformation<OWNERECLASS extends EObject, TARGETECLASS extends EObject> extends ReferenceMechanismTransformation<OWNERECLASS, TARGETECLASS, IType> { Loading @@ -34,7 +31,6 @@ abstract class AnnotatedMemberReferenceTransformation<OWNERECLASS extends EObjec } override createCodeFragments() throws CodelingException { // Create Code Fragments is only executed for the Marker Interface Mechanism as target var String fieldCode = ""; if (eReference.isMany) { val LinkedList<EObject> targets = new LinkedList(); Loading Loading @@ -91,30 +87,33 @@ abstract class AnnotatedMemberReferenceTransformation<OWNERECLASS extends EObjec // We want to keep any custom annotations on the "states" field in the 'x..* MarkerInterface' scenario. Therefore we change the annotation parameters. val LinkedList<EObject> targets = new LinkedList(); targets.addAll(modelElement.eGet(eReference) as Collection<EObject>); if (targets === null) val LinkedList<EObject> priorTargets = new LinkedList(); priorTargets.addAll(priorModelElement.eGet(eReference) as Collection<EObject>); if (targets === null || priorTargets === null) return; if (targetIsMarkerInterface) { updateMarkerInterfaceReferenceMulti(targets); } else { updateTypeAnnotationReferenceMulti(targets); updateTypeAnnotationReferenceMulti(priorTargets, targets); } } else { val EObject target = modelElement.eGet(eReference) as EObject; if (target === null) val priorTarget = priorModelElement.eGet(eReference) as EObject; if (target === null || priorTarget === null) return; if (targetIsMarkerInterface) { updateMarkerInterfaceReferenceSingle(target); } else { updateTypeAnnotationReferenceSingle(target); updateTypeAnnotationReferenceSingle(priorTarget, target); } } } def void updateTypeAnnotationReferenceSingle(EObject target) {} def void updateTypeAnnotationReferenceSingle(EObject priorTarget, EObject target) {} def void updateMarkerInterfaceReferenceSingle(EObject target) {} def void updateTypeAnnotationReferenceMulti(LinkedList<EObject> targets) {} def void updateTypeAnnotationReferenceMulti(LinkedList<EObject> priorTargets, LinkedList<EObject> targets) {} def void updateMarkerInterfaceReferenceMulti(LinkedList<EObject> targets) { var ICompilationUnit cu = codeElement.compilationUnit; Loading Loading
Language Integration/Commons/lang.base.java/src/main/java/org/codeling/mechanisms/transformations/references/AnnotatedMemberReferenceTransformation.xtend +10 −11 Original line number Diff line number Diff line package org.codeling.mechanisms.transformations.references import de.mkonersmann.advert.java.embed.ASTUtils import de.mkonersmann.advert.java.embed.transformation.AbstractModelCodeTransformation import java.util.Collection import java.util.LinkedHashSet import java.util.LinkedList Loading @@ -9,6 +8,7 @@ import java.util.List import java.util.Set import org.codeling.mechanisms.MechanismsMapping import org.codeling.mechanisms.classes.MarkerInterfaceMechanism import org.codeling.mechanisms.transformations.ClassMechanismTransformation import org.codeling.mechanisms.transformations.ReferenceMechanismTransformation import org.codeling.utils.CodelingException import org.eclipse.emf.ecore.EObject Loading @@ -18,9 +18,6 @@ import org.eclipse.jdt.core.ICompilationUnit import org.eclipse.jdt.core.IField import org.eclipse.jdt.core.IType import org.eclipse.jdt.core.dom.AST import org.codeling.mechanisms.transformations.ClassMechanismTransformation import org.modelversioning.emfprofileapplication.StereotypeApplication import org.modelversioning.emfprofileapplication.StereotypeApplicability abstract class AnnotatedMemberReferenceTransformation<OWNERECLASS extends EObject, TARGETECLASS extends EObject> extends ReferenceMechanismTransformation<OWNERECLASS, TARGETECLASS, IType> { Loading @@ -34,7 +31,6 @@ abstract class AnnotatedMemberReferenceTransformation<OWNERECLASS extends EObjec } override createCodeFragments() throws CodelingException { // Create Code Fragments is only executed for the Marker Interface Mechanism as target var String fieldCode = ""; if (eReference.isMany) { val LinkedList<EObject> targets = new LinkedList(); Loading Loading @@ -91,30 +87,33 @@ abstract class AnnotatedMemberReferenceTransformation<OWNERECLASS extends EObjec // We want to keep any custom annotations on the "states" field in the 'x..* MarkerInterface' scenario. Therefore we change the annotation parameters. val LinkedList<EObject> targets = new LinkedList(); targets.addAll(modelElement.eGet(eReference) as Collection<EObject>); if (targets === null) val LinkedList<EObject> priorTargets = new LinkedList(); priorTargets.addAll(priorModelElement.eGet(eReference) as Collection<EObject>); if (targets === null || priorTargets === null) return; if (targetIsMarkerInterface) { updateMarkerInterfaceReferenceMulti(targets); } else { updateTypeAnnotationReferenceMulti(targets); updateTypeAnnotationReferenceMulti(priorTargets, targets); } } else { val EObject target = modelElement.eGet(eReference) as EObject; if (target === null) val priorTarget = priorModelElement.eGet(eReference) as EObject; if (target === null || priorTarget === null) return; if (targetIsMarkerInterface) { updateMarkerInterfaceReferenceSingle(target); } else { updateTypeAnnotationReferenceSingle(target); updateTypeAnnotationReferenceSingle(priorTarget, target); } } } def void updateTypeAnnotationReferenceSingle(EObject target) {} def void updateTypeAnnotationReferenceSingle(EObject priorTarget, EObject target) {} def void updateMarkerInterfaceReferenceSingle(EObject target) {} def void updateTypeAnnotationReferenceMulti(LinkedList<EObject> targets) {} def void updateTypeAnnotationReferenceMulti(LinkedList<EObject> priorTargets, LinkedList<EObject> targets) {} def void updateMarkerInterfaceReferenceMulti(LinkedList<EObject> targets) { var ICompilationUnit cu = codeElement.compilationUnit; Loading