blob: b1747789b9e4511f335e9d9acd000b04bf933642 [file] [log] [blame]
/*******************************************************************************
* «codeGenHelper.getCopyright(' * ')»
*
* This code is 100% auto-generated
* using: org.eclipse.ocl.examples.codegen.java.JavaStream
*
* Do not edit it.
********************************************************************************/
package cg._classescs2as_qvtp_qvtias;
import example2.classes.ClassesFactory;
import example2.classes.ClassesPackage;
import example2.classes.NamedElement;
import example2.classes.Package;
import example2.classes.Root;
import example2.classes.util.Visitable;
import example2.classescs.ClassCS;
import example2.classescs.ClassescsPackage;
import example2.classescs.PackageCS;
import example2.classescs.PathElementCS;
import example2.classescs.PathNameCS;
import example2.classescs.RootCS;
import java.util.Iterator;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.ocl.pivot.evaluation.Executor;
import org.eclipse.ocl.pivot.ids.ClassId;
import org.eclipse.ocl.pivot.ids.CollectionTypeId;
import org.eclipse.ocl.pivot.ids.IdManager;
import org.eclipse.ocl.pivot.ids.IdResolver;
import org.eclipse.ocl.pivot.ids.NsURIPackageId;
import org.eclipse.ocl.pivot.ids.RootPackageId;
import org.eclipse.ocl.pivot.ids.TypeId;
import org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation;
import org.eclipse.ocl.pivot.library.collection.CollectionAsOrderedSetOperation;
import org.eclipse.ocl.pivot.library.collection.CollectionSizeOperation;
import org.eclipse.ocl.pivot.library.collection.OrderedCollectionFirstOperation;
import org.eclipse.ocl.pivot.library.collection.OrderedCollectionLastOperation;
import org.eclipse.ocl.pivot.library.collection.OrderedSetSubOrderedSetOperation;
import org.eclipse.ocl.pivot.library.numeric.NumericMinusOperation;
import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.ValueUtil;
import org.eclipse.ocl.pivot.values.IntegerValue;
import org.eclipse.ocl.pivot.values.OrderedSetValue;
import org.eclipse.ocl.pivot.values.SequenceValue;
import org.eclipse.ocl.pivot.values.SetValue;
import org.eclipse.qvtd.cs2as.compiler.tests.models.example2.java.ClassesLookupVisitor;
import org.eclipse.qvtd.cs2as.compiler.tests.models.example2.java.LookupEnvironment;
import org.eclipse.qvtd.cs2as.runtime.CS2ASTransformationExecutor;
/**
* The classescs2as_qvtp_qvtias transformation:
* <p>
* Construct with an evaluator
* <br>
* Populate each input model with {@link addRootObjects(String,List)}
* <br>
* {@link run()}
* <br>
* Extract each output model with {@link getRootObjects(String)}
*/
@SuppressWarnings("nls")
public class classescs2as_qvtp_qvtias extends CS2ASTransformationExecutor
{
public static final /*@NonNull*/ /*@NonInvalid*/ RootPackageId PACKid_$metamodel$ = IdManager.getRootPackageId("$metamodel$");
public static final /*@NonNull*/ /*@NonInvalid*/ NsURIPackageId PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0 = IdManager.getNsURIPackageId("http://cs2as/tests/example2/classes/1.0", null, ClassesPackage.eINSTANCE);
public static final /*@NonNull*/ /*@NonInvalid*/ NsURIPackageId PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0 = IdManager.getNsURIPackageId("http://cs2as/tests/example2/classescs/1.0", null, ClassescsPackage.eINSTANCE);
public static final /*@NonNull*/ /*@NonInvalid*/ NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_emf_s_2002_s_Ecore = IdManager.getNsURIPackageId("http://www.eclipse.org/emf/2002/Ecore", null, EcorePackage.eINSTANCE);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_Class = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0.getClassId("Class", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_ClassCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("ClassCS", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_Class_0 = PACKid_$metamodel$.getClassId("Class", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_EObject = PACKid_http_c_s_s_www_eclipse_org_s_emf_s_2002_s_Ecore.getClassId("EObject", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_Package = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0.getClassId("Package", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_PackageCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("PackageCS", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_PathElementCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("PathElementCS", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_PathNameCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("PathNameCS", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_Root = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0.getClassId("Root", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_RootCS = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classescs_s_1_0.getClassId("RootCS", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_Visitable = PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0.getClassId("Visitable", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ IntegerValue INT_1 = ValueUtil.integerValueOf("1");
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_Class = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Class);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_ClassCS = TypeId.ORDERED_SET.getSpecializedId(CLSSid_ClassCS);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_Package = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Package);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_PackageCS = TypeId.ORDERED_SET.getSpecializedId(CLSSid_PackageCS);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_PathElementCS = TypeId.ORDERED_SET.getSpecializedId(CLSSid_PathElementCS);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SEQ_CLSSid_Class = TypeId.SEQUENCE.getSpecializedId(CLSSid_Class);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SEQ_CLSSid_Package = TypeId.SEQUENCE.getSpecializedId(CLSSid_Package);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SET_CLSSid_ClassCS = TypeId.SET.getSpecializedId(CLSSid_ClassCS);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SET_CLSSid_PackageCS = TypeId.SET.getSpecializedId(CLSSid_PackageCS);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SET_CLSSid_RootCS = TypeId.SET.getSpecializedId(CLSSid_RootCS);
/*
* Array of the ClassIds of each class for which allInstances() may be invoked. Array index is the ClassIndex.
*/
private static final /*@NonNull*/ ClassId[] classIndex2classId = new ClassId[]{
CLSSid_ClassCS, // 0 => ClassCS
CLSSid_PackageCS, // 1 => PackageCS
CLSSid_RootCS // 2 => RootCS
};
/*
* Mapping from each ClassIndex to all the ClassIndexes to which an object of the outer index
* may contribute results to an allInstances() invocation.
* Non trivial inner arrays arise when one ClassId is a derivation of another and so an
* instance of the derived classId contributes to derived and inherited ClassIndexes.
*/
private final static /*@NonNull*/ int[][] classIndex2allClassIndexes = new int[][] {
{0}, // 0 : ClassCS -> {ClassCS}
{1}, // 1 : PackageCS -> {PackageCS}
{2} // 2 : RootCS -> {RootCS}
};
public classescs2as_qvtp_qvtias(final /*@NonNull*/ Executor executor) {
super(executor, new String[] {"leftCS", "rightAS"}, null, classIndex2classId, classIndex2allClassIndexes);
}
public boolean run() {
return __root__();
}
/**
* classes::Visitable::lookupPackage(pathSeq : OrderedSet(classescs::PathElementCS)) : classes::Package[?]
*
*
* if pathSeq->size() = 1
* then _lookupPackage(pathSeq->first())
* else
* lookupPackage(
* pathSeq->subOrderedSet(1, pathSeq->size() - 1))
* ._lookupPackage(pathSeq->last())
* endif
*/
public /*@Nullable*/ /*@NonInvalid*/ Package lookupPackage(final /*@NonNull*/ /*@NonInvalid*/ Visitable self_0, final /*@NonNull*/ /*@NonInvalid*/ List<PathElementCS> pathSeq) {
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
final /*@NonNull*/ /*@NonInvalid*/ OrderedSetValue BOXED_pathSeq_3 = idResolver.createOrderedSetOfAll(ORD_CLSSid_PathElementCS, pathSeq);
final /*@NonNull*/ /*@NonInvalid*/ IntegerValue size = CollectionSizeOperation.INSTANCE.evaluate(BOXED_pathSeq_3);
final /*@NonInvalid*/ boolean eq = size.equals(INT_1);
/*@Nullable*/ /*@Thrown*/ Package symbol_0;
if (eq) {
final /*@Nullable*/ /*@Thrown*/ PathElementCS first = (PathElementCS)OrderedCollectionFirstOperation.INSTANCE.evaluate(BOXED_pathSeq_3);
LookupEnvironment _lookupEnv = new LookupEnvironment(executor,first);
ClassesLookupVisitor _lookupVisitor = new ClassesLookupVisitor(_lookupEnv);
EList<NamedElement> _lookupResult = self_0.accept(_lookupVisitor).getNamedElements();
Package _lookupPackage = null;
if (_lookupResult.size() == 1) {
_lookupPackage = (Package)_lookupResult.get(0);
} else {
handleLookupError(pathSeq,first);
};
symbol_0 = _lookupPackage;
}
else {
final /*@NonNull*/ /*@NonInvalid*/ IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(size, INT_1);
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue subOrderedSet = OrderedSetSubOrderedSetOperation.INSTANCE.evaluate(BOXED_pathSeq_3, INT_1, diff);
final List<PathElementCS> UNBOXED_subOrderedSet = subOrderedSet.asEcoreObjects(idResolver, PathElementCS.class);
assert UNBOXED_subOrderedSet != null;
final /*@Nullable*/ /*@Thrown*/ Package lookupPackage = this.lookupPackage(self_0, UNBOXED_subOrderedSet);
final /*@Nullable*/ /*@Thrown*/ PathElementCS last = (PathElementCS)OrderedCollectionLastOperation.INSTANCE.evaluate(BOXED_pathSeq_3);
LookupEnvironment _lookupEnv_0 = new LookupEnvironment(executor,last);
ClassesLookupVisitor _lookupVisitor_0 = new ClassesLookupVisitor(_lookupEnv_0);
EList<NamedElement> _lookupResult_0 = lookupPackage.accept(_lookupVisitor_0).getNamedElements();
Package _lookupPackage_0 = null;
if (_lookupResult_0.size() == 1) {
_lookupPackage_0 = (Package)_lookupResult_0.get(0);
} else {
handleLookupError(pathSeq,last);
};
symbol_0 = _lookupPackage_0;
}
return symbol_0;
}
/**
*
* map cClassCS_2_Class in classescs2as_qvtp_qvtias {
* leftCS (classCS : classescs::ClassCS[1];
* |)
* { |}
* rightAS ( |)
* {realize class : classes::Class[1];
* |}
* where ( |)
* { |
* classCS.ast := class;
* }
*
*/
protected boolean cClassCS_2_Class(final /*@NonNull*/ /*@NonInvalid*/ ClassCS classCS) {
// predicates
// creations
final /*@Thrown*/ example2.classes.Class symbol_0 = ClassesFactory.eINSTANCE.createClass();
assert symbol_0 != null;
models[1/*rightAS*/].add(symbol_0);
// property assignments
classCS.setAst(symbol_0);
return true;
}
/**
*
* map cPackageCS_2_Package in classescs2as_qvtp_qvtias {
* leftCS (packageCS : classescs::PackageCS[1];
* |)
* { |}
* rightAS ( |)
* {realize package : classes::Package[1];
* |}
* where ( |)
* { |
* packageCS.ast := package;
* }
*
*/
protected boolean cPackageCS_2_Package(final /*@NonNull*/ /*@NonInvalid*/ PackageCS packageCS) {
// predicates
// creations
final /*@Thrown*/ Package symbol_0 = ClassesFactory.eINSTANCE.createPackage();
assert symbol_0 != null;
models[1/*rightAS*/].add(symbol_0);
// property assignments
packageCS.setAst(symbol_0);
return true;
}
/**
*
* map cRootCS_2_Root in classescs2as_qvtp_qvtias {
* leftCS (rootCS : classescs::RootCS[1];
* |)
* { |}
* rightAS ( |)
* {realize root : classes::Root[1];
* |}
* where ( |)
* { |
* rootCS.ast := root;
* }
*
*/
protected boolean cRootCS_2_Root(final /*@NonNull*/ /*@NonInvalid*/ RootCS rootCS) {
// predicates
// creations
final /*@Thrown*/ Root root = ClassesFactory.eINSTANCE.createRoot();
assert root != null;
models[1/*rightAS*/].add(root);
// property assignments
rootCS.setAst(root);
return true;
}
/**
*
* map uClass_name in classescs2as_qvtp_qvtias {
*
* leftCS (classCS : classescs::ClassCS[1];
* |)
* { |}
* rightAS ( |)
* { |}
* where ( |)
* {_0 : classes::Class[1];
* _1 : String[?];
* |
* _0 := classCS.ast.oclAsType(classes::Class);
* _1 := name;
* _0.name := _1;
* }
*
*/
protected boolean uClass_name(final /*@NonNull*/ /*@NonInvalid*/ ClassCS classCS_0) {
// predicates
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class, null);
// variable assignments
final /*@Nullable*/ /*@Thrown*/ EObject ast = classCS_0.getAst();
final /*@NonNull*/ /*@Thrown*/ example2.classes.Class oclAsType = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Class_0));
final /*@Nullable*/ /*@Thrown*/ String name = classCS_0.getName();
// property assignments
oclAsType.setName(name);
return true;
}
/**
*
* map uClass_superClass in classescs2as_qvtp_qvtias {
*
* leftCS (classCS : classescs::ClassCS[1];
* |)
* { |}
* rightAS ( |)
* { |}
* where ( |)
* {_0 : classes::Class[1];
* _1 : classes::Class[?];
* |
* _0 := classCS.ast.oclAsType(classes::Class)
* ;
* _1 := ast.oclAsType(classes::Class)
* .lookupClass(classCS);
* _0.superClass := _1;
* }
*
*/
protected boolean uClass_superClass(final /*@NonNull*/ /*@NonInvalid*/ ClassCS classCS_1) {
// predicates
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class, null);
final /*@Nullable*/ /*@Thrown*/ EObject ast = classCS_1.getAst();
// variable assignments
final /*@NonNull*/ /*@Thrown*/ example2.classes.Class oclAsType = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Class_0));
final /*@NonNull*/ /*@Thrown*/ example2.classes.Class self_1 = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Class_0));
final /*@Nullable*/ /*@Thrown*/ PathNameCS symbol_1 = classCS_1.getExtends();
final /*@Thrown*/ boolean eq = symbol_1 == null;
/*@Nullable*/ /*@Thrown*/ example2.classes.Class symbol_4;
if (eq) {
symbol_4 = null;
}
else {
if (symbol_1 == null) {
throwNull(classCS_1, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::PathNameCS::path\'");
}
final /*@NonNull*/ /*@Thrown*/ List<PathElementCS> pathSeq_0 = symbol_1.getPath();
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue BOXED_pathSeq_0_3 = idResolver.createOrderedSetOfAll(ORD_CLSSid_PathElementCS, pathSeq_0);
final /*@NonNull*/ /*@Thrown*/ IntegerValue size = CollectionSizeOperation.INSTANCE.evaluate(BOXED_pathSeq_0_3);
final /*@Thrown*/ boolean eq_0 = size.equals(INT_1);
/*@Nullable*/ /*@Thrown*/ example2.classes.Class symbol_3;
if (eq_0) {
final /*@Nullable*/ /*@Thrown*/ PathElementCS first = (PathElementCS)OrderedCollectionFirstOperation.INSTANCE.evaluate(BOXED_pathSeq_0_3);
LookupEnvironment _lookupEnv = new LookupEnvironment(executor,first);
ClassesLookupVisitor _lookupVisitor = new ClassesLookupVisitor(_lookupEnv);
EList<NamedElement> _lookupResult = self_1.accept(_lookupVisitor).getNamedElements();
example2.classes.Class _lookupClass = null;
if (_lookupResult.size() == 1) {
_lookupClass = (example2.classes.Class)_lookupResult.get(0);
} else {
handleLookupError(classCS_1,first);
};
symbol_3 = _lookupClass;
}
else {
final /*@NonNull*/ /*@Thrown*/ IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(size, INT_1);
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue subOrderedSet = OrderedSetSubOrderedSetOperation.INSTANCE.evaluate(BOXED_pathSeq_0_3, INT_1, diff);
final List<PathElementCS> UNBOXED_subOrderedSet = subOrderedSet.asEcoreObjects(idResolver, PathElementCS.class);
assert UNBOXED_subOrderedSet != null;
final /*@Nullable*/ /*@Thrown*/ Package lookupPackage = this.lookupPackage(self_1, UNBOXED_subOrderedSet);
final /*@Nullable*/ /*@Thrown*/ PathElementCS last = (PathElementCS)OrderedCollectionLastOperation.INSTANCE.evaluate(BOXED_pathSeq_0_3);
LookupEnvironment _lookupEnv_0 = new LookupEnvironment(executor,last);
ClassesLookupVisitor _lookupVisitor_0 = new ClassesLookupVisitor(_lookupEnv_0);
EList<NamedElement> _lookupResult_0 = lookupPackage.accept(_lookupVisitor_0).getNamedElements();
example2.classes.Class _lookupClass_0 = null;
if (_lookupResult_0.size() == 1) {
_lookupClass_0 = (example2.classes.Class)_lookupResult_0.get(0);
} else {
handleLookupError(classCS_1,last);
};
symbol_3 = _lookupClass_0;
}
symbol_4 = symbol_3;
}
// property assignments
oclAsType.setSuperClass(symbol_4);
return true;
}
/**
*
* map uPackage_name in classescs2as_qvtp_qvtias {
*
* leftCS (packageCS : classescs::PackageCS[1];
* |)
* { |}
* rightAS ( |)
* { |}
* where ( |)
* {_0 : classes::Package[1];
* _1 : String[?];
* |
* _0 := packageCS.ast.oclAsType(classes::Package);
* _1 := name;
* _0.name := _1;
* }
*
*/
protected boolean uPackage_name(final /*@NonNull*/ /*@NonInvalid*/ PackageCS packageCS_0) {
// predicates
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Package_0 = idResolver.getClass(CLSSid_Package, null);
// variable assignments
final /*@Nullable*/ /*@Thrown*/ EObject ast = packageCS_0.getAst();
final /*@NonNull*/ /*@Thrown*/ Package oclAsType = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Package_0));
final /*@Nullable*/ /*@Thrown*/ String name = packageCS_0.getName();
// property assignments
oclAsType.setName(name);
return true;
}
/**
*
* map uPackage_ownedClasses in classescs2as_qvtp_qvtias {
*
* leftCS (packageCS : classescs::PackageCS[1];
* |)
* { |}
* rightAS ( |)
* { |}
* where ( |)
* {_0 : classes::Package[1];
* _1 : OrderedSet(classes::Class);
* |
* _0 := packageCS.ast.oclAsType(classes::Package)
* ;
* _1 := ownedClasses.ast.oclAsType(classes::Class)
* ->asOrderedSet();
* _0.ownedClasses := _1;
* }
*
*/
protected boolean uPackage_ownedClasses(final /*@NonNull*/ /*@NonInvalid*/ PackageCS packageCS_1) {
// predicates
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Package_0 = idResolver.getClass(CLSSid_Package, null);
// variable assignments
final /*@Nullable*/ /*@Thrown*/ EObject ast = packageCS_1.getAst();
final /*@NonNull*/ /*@Thrown*/ Package oclAsType = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Package_0));
final /*@NonNull*/ /*@Thrown*/ List<ClassCS> ownedClasses = packageCS_1.getOwnedClasses();
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue BOXED_ownedClasses = idResolver.createOrderedSetOfAll(ORD_CLSSid_ClassCS, ownedClasses);
/*@NonNull*/ /*@Thrown*/ SequenceValue.Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Class);
/*@Nullable*/ Iterator<?> ITERATOR__1 = BOXED_ownedClasses.iterator();
/*@NonNull*/ /*@Thrown*/ SequenceValue collect;
while (true) {
if (!ITERATOR__1.hasNext()) {
collect = accumulator;
break;
}
/*@Nullable*/ /*@NonInvalid*/ ClassCS _1 = (ClassCS)ITERATOR__1.next();
/**
* ast.oclAsType(classes::Class)
*/
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class, null);
if (_1 == null) {
throwNull(packageCS_1, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::ElementCS::ast\'");
}
final /*@Nullable*/ /*@Thrown*/ EObject ast_0 = _1.getAst();
final /*@NonNull*/ /*@Thrown*/ example2.classes.Class oclAsType_0 = ClassUtil.nonNullState((example2.classes.Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_0, TYP_classes_c_c_Class_0));
//
accumulator.add(oclAsType_0);
}
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue asOrderedSet = CollectionAsOrderedSetOperation.INSTANCE.evaluate(collect);
// property assignments
final List<example2.classes.Class> UNBOXED_null = asOrderedSet.asEcoreObjects(idResolver, example2.classes.Class.class);
assert UNBOXED_null != null;
oclAsType.getOwnedClasses().addAll(UNBOXED_null);
return true;
}
/**
*
* map uPackage_ownedPackages in classescs2as_qvtp_qvtias {
*
* leftCS (packageCS : classescs::PackageCS[1];
* |)
* { |}
* rightAS ( |)
* { |}
* where ( |)
* {_0 : classes::Package[1];
* _1 : OrderedSet(classes::Package);
* |
* _0 := packageCS.ast.oclAsType(classes::Package)
* ;
* _1 := ownedPackages.ast.oclAsType(classes::Package)
* ->asOrderedSet();
* _0.ownedPackages := _1;
* }
*
*/
protected boolean uPackage_ownedPackages(final /*@NonNull*/ /*@NonInvalid*/ PackageCS packageCS_2) {
// predicates
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Package_0 = idResolver.getClass(CLSSid_Package, null);
// variable assignments
final /*@Nullable*/ /*@Thrown*/ EObject ast = packageCS_2.getAst();
final /*@NonNull*/ /*@Thrown*/ Package oclAsType = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Package_0));
final /*@NonNull*/ /*@Thrown*/ List<PackageCS> ownedPackages = packageCS_2.getOwnedPackages();
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue BOXED_ownedPackages = idResolver.createOrderedSetOfAll(ORD_CLSSid_PackageCS, ownedPackages);
/*@NonNull*/ /*@Thrown*/ SequenceValue.Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Package);
/*@Nullable*/ Iterator<?> ITERATOR__1 = BOXED_ownedPackages.iterator();
/*@NonNull*/ /*@Thrown*/ SequenceValue collect;
while (true) {
if (!ITERATOR__1.hasNext()) {
collect = accumulator;
break;
}
/*@Nullable*/ /*@NonInvalid*/ PackageCS _1 = (PackageCS)ITERATOR__1.next();
/**
* ast.oclAsType(classes::Package)
*/
if (_1 == null) {
throwNull(packageCS_2, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::ElementCS::ast\'");
}
final /*@Nullable*/ /*@Thrown*/ EObject ast_0 = _1.getAst();
final /*@NonNull*/ /*@Thrown*/ Package oclAsType_0 = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_0, TYP_classes_c_c_Package_0));
//
accumulator.add(oclAsType_0);
}
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue asOrderedSet = CollectionAsOrderedSetOperation.INSTANCE.evaluate(collect);
// property assignments
final List<Package> UNBOXED_null = asOrderedSet.asEcoreObjects(idResolver, Package.class);
assert UNBOXED_null != null;
oclAsType.getOwnedPackages().addAll(UNBOXED_null);
return true;
}
/**
*
* map uRoot_ownedPackages in classescs2as_qvtp_qvtias {
*
* leftCS (rootCS : classescs::RootCS[1];
* |)
* { |}
* rightAS ( |)
* { |}
* where ( |)
* {_0 : classes::Root[1];
* _1 : OrderedSet(classes::Package);
* |
* _0 := rootCS.ast.oclAsType(classes::Root)
* ;
* _1 := ownedPackages.ast.oclAsType(classes::Package)
* ->asOrderedSet();
* _0.ownedPackages := _1;
* }
*
*/
protected boolean uRoot_ownedPackages(final /*@NonNull*/ /*@NonInvalid*/ RootCS rootCS_0) {
// predicates
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Root_0 = idResolver.getClass(CLSSid_Root, null);
// variable assignments
final /*@Nullable*/ /*@Thrown*/ EObject ast = rootCS_0.getAst();
final /*@NonNull*/ /*@Thrown*/ Root oclAsType = ClassUtil.nonNullState((Root)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_classes_c_c_Root_0));
final /*@NonNull*/ /*@Thrown*/ List<PackageCS> ownedPackages = rootCS_0.getOwnedPackages();
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue BOXED_ownedPackages = idResolver.createOrderedSetOfAll(ORD_CLSSid_PackageCS, ownedPackages);
/*@NonNull*/ /*@Thrown*/ SequenceValue.Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Package);
/*@Nullable*/ Iterator<?> ITERATOR__1 = BOXED_ownedPackages.iterator();
/*@NonNull*/ /*@Thrown*/ SequenceValue collect;
while (true) {
if (!ITERATOR__1.hasNext()) {
collect = accumulator;
break;
}
/*@Nullable*/ /*@NonInvalid*/ PackageCS _1 = (PackageCS)ITERATOR__1.next();
/**
* ast.oclAsType(classes::Package)
*/
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Package_0 = idResolver.getClass(CLSSid_Package, null);
if (_1 == null) {
throwNull(rootCS_0, "Null source for \'\'http://cs2as/tests/example2/classescs/1.0\'::ElementCS::ast\'");
}
final /*@Nullable*/ /*@Thrown*/ EObject ast_0 = _1.getAst();
final /*@NonNull*/ /*@Thrown*/ Package oclAsType_0 = ClassUtil.nonNullState((Package)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_0, TYP_classes_c_c_Package_0));
//
accumulator.add(oclAsType_0);
}
final /*@NonNull*/ /*@Thrown*/ OrderedSetValue asOrderedSet = CollectionAsOrderedSetOperation.INSTANCE.evaluate(collect);
// property assignments
final List<Package> UNBOXED_null = asOrderedSet.asEcoreObjects(idResolver, Package.class);
assert UNBOXED_null != null;
oclAsType.getOwnedPackages().addAll(UNBOXED_null);
return true;
}
/**
*
* map __root__ in classescs2as_qvtp_qvtias {
*
* where ( |)
* { |}
* for rootCS : classescs::RootCS in classescs::RootCS.allInstances()
* {
* map cRootCS_2_Root {
* rootCS := rootCS;
* }}
* for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances()
* {
* map cPackageCS_2_Package {
* packageCS := packageCS;
* }}
* for rootCS : classescs::RootCS in classescs::RootCS.allInstances()
* {
* map uRoot_ownedPackages {
* rootCS := rootCS;
* }}
* for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances()
* {
* map uPackage_name {
* packageCS := packageCS;
* }}
* for classCS : classescs::ClassCS in classescs::ClassCS.allInstances()
* {
* map cClassCS_2_Class {
* classCS := classCS;
* }}
* for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances()
* {
* map uPackage_ownedClasses {
* packageCS := packageCS;
* }}
* for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances()
* {
* map uPackage_ownedPackages {
* packageCS := packageCS;
* }}
* for classCS : classescs::ClassCS in classescs::ClassCS.allInstances()
* {
* map uClass_name {
* classCS := classCS;
* }}
* for classCS : classescs::ClassCS in classescs::ClassCS.allInstances()
* {
* map uClass_superClass {
* classCS := classCS;
* }}
*/
protected boolean __root__() {
// predicates
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classescs_c_c_ClassCS_2 = idResolver.getClass(CLSSid_ClassCS, null);
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classescs_c_c_PackageCS_3 = idResolver.getClass(CLSSid_PackageCS, null);
final /*@NonNull*/ /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classescs_c_c_RootCS_1 = idResolver.getClass(CLSSid_RootCS, null);
final /*@NonNull*/ /*@NonInvalid*/ SetValue allInstances_6 = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, SET_CLSSid_ClassCS, TYP_classescs_c_c_ClassCS_2);
final /*@NonNull*/ /*@NonInvalid*/ SetValue allInstances_2 = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, SET_CLSSid_PackageCS, TYP_classescs_c_c_PackageCS_3);
final /*@NonNull*/ /*@NonInvalid*/ SetValue allInstances_1 = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, SET_CLSSid_RootCS, TYP_classescs_c_c_RootCS_1);
final List<ClassCS> UNBOXED_allInstances_6 = allInstances_6.asEcoreObjects(idResolver, ClassCS.class);
assert UNBOXED_allInstances_6 != null;
final List<PackageCS> UNBOXED_allInstances_2 = allInstances_2.asEcoreObjects(idResolver, PackageCS.class);
assert UNBOXED_allInstances_2 != null;
final List<RootCS> UNBOXED_allInstances_1 = allInstances_1.asEcoreObjects(idResolver, RootCS.class);
assert UNBOXED_allInstances_1 != null;
// mapping statements
for (RootCS rootCS_3 : UNBOXED_allInstances_1) {
if (rootCS_3 != null) {
final /*@NonNull*/ /*@NonInvalid*/ RootCS symbol_1 = (RootCS)rootCS_3;
cRootCS_2_Root(symbol_1);
}
}
for (PackageCS packageCS_7 : UNBOXED_allInstances_2) {
if (packageCS_7 != null) {
final /*@NonNull*/ /*@NonInvalid*/ PackageCS symbol_5 = (PackageCS)packageCS_7;
cPackageCS_2_Package(symbol_5);
}
}
for (RootCS rootCS_4 : UNBOXED_allInstances_1) {
if (rootCS_4 != null) {
final /*@NonNull*/ /*@NonInvalid*/ RootCS symbol_9 = (RootCS)rootCS_4;
uRoot_ownedPackages(symbol_9);
}
}
for (PackageCS packageCS_8 : UNBOXED_allInstances_2) {
if (packageCS_8 != null) {
final /*@NonNull*/ /*@NonInvalid*/ PackageCS symbol_13 = (PackageCS)packageCS_8;
uPackage_name(symbol_13);
}
}
for (ClassCS classCS_5 : UNBOXED_allInstances_6) {
if (classCS_5 != null) {
final /*@NonNull*/ /*@NonInvalid*/ ClassCS symbol_17 = (ClassCS)classCS_5;
cClassCS_2_Class(symbol_17);
}
}
for (PackageCS packageCS_9 : UNBOXED_allInstances_2) {
if (packageCS_9 != null) {
final /*@NonNull*/ /*@NonInvalid*/ PackageCS symbol_21 = (PackageCS)packageCS_9;
uPackage_ownedClasses(symbol_21);
}
}
for (PackageCS packageCS_10 : UNBOXED_allInstances_2) {
if (packageCS_10 != null) {
final /*@NonNull*/ /*@NonInvalid*/ PackageCS symbol_25 = (PackageCS)packageCS_10;
uPackage_ownedPackages(symbol_25);
}
}
for (ClassCS classCS_6 : UNBOXED_allInstances_6) {
if (classCS_6 != null) {
final /*@NonNull*/ /*@NonInvalid*/ ClassCS symbol_29 = (ClassCS)classCS_6;
uClass_name(symbol_29);
}
}
for (ClassCS classCS_7 : UNBOXED_allInstances_6) {
if (classCS_7 != null) {
final /*@NonNull*/ /*@NonInvalid*/ ClassCS symbol_33 = (ClassCS)classCS_7;
uClass_superClass(symbol_33);
}
}
return true;
}
}