private void createModel() { EFactory factory = metamodelPackage.getEFactoryInstance(); netObject = factory.create(getNetClass()); place1Object = factory.create(getPlaceClass()); setName(place1Object, "place1"); setTokens(place1Object, 1); place2Object = factory.create(getPlaceClass()); setName(place2Object, "place2"); transitionObject = factory.create(getTransitionClass()); setIncoming(transitionObject, place1Object); setOutgoing(transitionObject, place2Object); EList<EObject> placesValue = new BasicEList<EObject>(); placesValue.add(place1Object); placesValue.add(place2Object); EReference placesReference = getPlacesReference(netObject.eClass()); netObject.eSet(placesReference, placesValue); EList<EObject> transitionsValue = new BasicEList<EObject>(); transitionsValue.add(transitionObject); EReference transitionsReference = getTransitionsReference(netObject.eClass()); netObject.eSet(transitionsReference, transitionsValue); }
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public IComment addComment() { org.eclipse.emf.ecore.EPackage ePackage = org.eclipse.emf.ecore.EPackage.Registry.INSTANCE.getEPackage( "http://www.openhealthtools.org/mdht/uml/cda/apitest"); org.eclipse.emf.ecore.EFactory eFactory = org.eclipse.emf.ecore.EPackage.Registry.INSTANCE.getEFactory( "http://www.openhealthtools.org/mdht/uml/cda/apitest"); org.eclipse.emf.ecore.EClass eClass = (org.eclipse.emf.ecore.EClass) ePackage.getEClassifier("Comment"); org.eclipse.emf.ecore.EObject eObject = eFactory.create(eClass); try { java.lang.reflect.Method initMethod = eObject.getClass().getMethod("init", new java.lang.Class[0]); initMethod.invoke(eObject, new Object[0]); } catch (Exception e) { // no init() method } org.eclipse.emf.ecore.EPackage domainPackage = this.eClass().getEPackage(); org.eclipse.emf.ecore.EFactory domainFactory = domainPackage.getEFactoryInstance(); org.eclipse.emf.ecore.EClass domainEClass = (org.eclipse.emf.ecore.EClass) domainPackage.getEClassifier("IComment"); IComment value = (IComment) domainFactory.create(domainEClass); value.setCDAType((org.openhealthtools.mdht.uml.cda.Act) eObject); this.getCDAType().addAct((org.openhealthtools.mdht.uml.cda.Act) eObject); return value; }
@Override public <@NonNull T extends NamedElement> T refreshElement( @NonNull Class<T> pivotClass, EClass pivotEClass, @NonNull EModelElement eModelElement) { EObject pivotElement = null; if (oldIdMap != null) { String id = ((XMLResource) eModelElement.eResource()).getID(eModelElement); if (id != null) { pivotElement = oldIdMap.get(id); if ((pivotElement != null) && (pivotElement.eClass() != pivotEClass)) { pivotElement = null; } } } if (pivotElement == null) { EFactory eFactoryInstance = pivotEClass.getEPackage().getEFactoryInstance(); pivotElement = eFactoryInstance.create(pivotEClass); } if (!pivotClass.isAssignableFrom(pivotElement.getClass())) { throw new ClassCastException(); } @SuppressWarnings("unchecked") T castElement = (T) pivotElement; Element oldElement = newCreateMap.put(eModelElement, castElement); assert oldElement == null; return castElement; }
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public CD withValue() { org.eclipse.emf.ecore.EPackage ePackage = org.openhealthtools.mdht.uml.hl7.datatypes.DatatypesPackage.eINSTANCE; org.eclipse.emf.ecore.EFactory eFactory = org.openhealthtools.mdht.uml.hl7.datatypes.DatatypesFactory.eINSTANCE; org.eclipse.emf.ecore.EClass eClass = (org.eclipse.emf.ecore.EClass) ePackage.getEClassifier("CD"); org.eclipse.emf.ecore.EObject eObject = eFactory.create(eClass); CD value = (CD) eObject; this.getCDAType().getValues().add(value); return value; }
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public IVL_TS withProblemDate() { org.eclipse.emf.ecore.EPackage ePackage = org.openhealthtools.mdht.uml.hl7.datatypes.DatatypesPackage.eINSTANCE; org.eclipse.emf.ecore.EFactory eFactory = org.openhealthtools.mdht.uml.hl7.datatypes.DatatypesFactory.eINSTANCE; org.eclipse.emf.ecore.EClass eClass = (org.eclipse.emf.ecore.EClass) ePackage.getEClassifier("IVL_TS"); org.eclipse.emf.ecore.EObject eObject = eFactory.create(eClass); IVL_TS value = (IVL_TS) eObject; this.getCDAType().setEffectiveTime(value); return value; }
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated */ public ED withProblemName() { org.eclipse.emf.ecore.EPackage ePackage = org.openhealthtools.mdht.uml.hl7.datatypes.DatatypesPackage.eINSTANCE; org.eclipse.emf.ecore.EFactory eFactory = org.openhealthtools.mdht.uml.hl7.datatypes.DatatypesFactory.eINSTANCE; org.eclipse.emf.ecore.EClass eClass = (org.eclipse.emf.ecore.EClass) ePackage.getEClassifier("ED"); org.eclipse.emf.ecore.EObject eObject = eFactory.create(eClass); ED value = (ED) eObject; this.getCDAType().setText(value); return value; }
/** * Clones an eobject, with the option of performing a deep clone in which referenced eobjects are * also cloned. * * @param prototype The object to be cloned from. * @param factory The factory used to create the clone. * @param deepÊFlag indicating wether to perform a deep clone. * @return THe cloned object, with all properties the same to the original. */ public static EObject clone(EObject prototype, EFactory factory, boolean deep) { EObject clone = factory.create(prototype.eClass()); for (Iterator i = clone.eClass().getEStructuralFeatures().iterator(); i.hasNext(); ) { EStructuralFeature feature = (EStructuralFeature) i.next(); Object value = prototype.eGet(feature); if (deep && value instanceof EObject) { EObject evalue = (EObject) value; // recursively call // TODO:handle cycles in reference graph value = clone(evalue, evalue.eClass().getEPackage().getEFactoryInstance(), deep); } clone.eSet(feature, value); } return clone; }
@Override public EObject create(EClass eClass) { if (EMFModelManager.replacedClasses.contains(eClass)) return eClass.getEPackage().getEFactoryInstance().create(eClass); return delegate.create(eClass); }
@Test public void test_dynamic_dispatch_411154() throws ParserException, IOException { if (useCodeGen) return; TestOCL ocl = createOCL(); if (!EMFPlugin.IS_ECLIPSE_RUNNING) { OCLinEcoreStandaloneSetup.doSetup(); // OCLDelegateDomain.initialize(null); } MetamodelManager metamodelManager = ocl.getMetamodelManager(); String metamodelText = "package Bug411154 : pfx = 'Bug411154.ecore'\n" + "{\n" + " class Domain {\n" + " property types : T1[*] { ordered composes };\n" + " property t1_2a : T1;\n" + " property t1_3a : T1;\n" + " property t1_3b : T1;\n" + " property t1_4 : T1;\n" + " property t2a_2a : T2a;\n" + " property t2a_3a : T2a;\n" + " property t2b_2b : T2b;\n" + " property t3a : T3a;\n" + " }\n" + " abstract class T1 {\n" + " operation op1() : String { body: 'T1::op1'; }\n" + " operation op4() : String { body: 'T1::op4'; }\n" + " operation op5() : String { body: 'T1::op5'; }\n" + " operation op6() : String { body: 'T1::op6'; }\n" + " }\n" + " class T2a extends T1 {\n" + " operation op1() : String { body: 'T2a::op1'; }\n" + " operation op2() : String { body: 'T2a::op2'; }\n" + " operation op4() : String { body: 'T2a::op4'; }\n" + " operation op6() : String { body: 'T2a::op6'; }\n" + " operation op7() : String { body: 'T2a::op7'; }\n" + " operation op9() : String { body: 'T2a::op9'; }\n" + " }\n" + " class T2b extends T1 {\n" + " operation op6() : String { body: 'T2b::op6'; }\n" + " operation op7() : String { body: 'T2b::op7'; }\n" + " operation op9() : String { body: 'T2b::op9'; }\n" + " }\n" + " class T3a extends T2a,T2b {\n" + " operation op1() : String { body: 'T3a::op1'; }\n" + " operation op2() : String { body: 'T3a::op2'; }\n" + " operation op3() : String { body: 'T3a::op3'; }\n" + " operation op6() : String { body: 'T3a::op6'; }\n" + " operation op7() : String { body: 'T3a::op7'; }\n" + " }\n" + " class T3b extends T2a,T2b {\n" + " }\n" + " class T4 extends T3a,T3b {\n" + " operation op6() : String { body: 'T4::op6'; }\n" + " operation op7() : String { body: 'T4::op7'; }\n" + " }\n" + "}\n"; Resource metamodel = cs2as(ocl, metamodelText); Model pivotModel = (Model) metamodel.getContents().get(0); org.eclipse.ocl.pivot.Package pivotPackage = pivotModel.getOwnedPackages().get(0); org.eclipse.ocl.pivot.Class pivotTypeDomain = NameUtil.getNameable(pivotPackage.getOwnedClasses(), "Domain"); // org.eclipse.ocl.pivot.Class pivotTypeT1 = // ClassUtil.getNamedElement(pivotPackage.getOwnedType(), "T1"); org.eclipse.ocl.pivot.Class pivotTypeT2a = NameUtil.getNameable(pivotPackage.getOwnedClasses(), "T2a"); org.eclipse.ocl.pivot.Class pivotTypeT2b = NameUtil.getNameable(pivotPackage.getOwnedClasses(), "T2b"); org.eclipse.ocl.pivot.Class pivotTypeT3a = NameUtil.getNameable(pivotPackage.getOwnedClasses(), "T3a"); org.eclipse.ocl.pivot.Class pivotTypeT3b = NameUtil.getNameable(pivotPackage.getOwnedClasses(), "T3b"); org.eclipse.ocl.pivot.Class pivotTypeT4 = NameUtil.getNameable(pivotPackage.getOwnedClasses(), "T4"); EPackage ePackage = metamodelManager.getEcoreOfPivot(EPackage.class, pivotPackage); EClass eClassDomain = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeDomain); // EClass eClassT1 = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeT1); EClass eClassT2a = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeT2a); EClass eClassT2b = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeT2b); EClass eClassT3a = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeT3a); EClass eClassT3b = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeT3b); EClass eClassT4 = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeT4); EReference eReferenceDomain_types = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "types")); EReference eReferenceDomain_t1_2a = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "t1_2a")); EReference eReferenceDomain_t1_3a = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "t1_3a")); EReference eReferenceDomain_t1_3b = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "t1_3b")); EReference eReferenceDomain_t1_4 = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "t1_4")); EReference eReferenceDomain_t2a_2a = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "t2a_2a")); EReference eReferenceDomain_t2a_3a = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "t2a_3a")); EReference eReferenceDomain_t2b_2b = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "t2b_2b")); EReference eReferenceDomain_t3a = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeDomain.getOwnedProperties(), "t3a")); EFactory eFactory = ePackage.getEFactoryInstance(); Resource resource = new ResourceImpl(); EObject testObjectDomain = eFactory.create(eClassDomain); resource.getContents().add(testObjectDomain); EObject testObjectT2a = eFactory.create(eClassT2a); EObject testObjectT2b = eFactory.create(eClassT2b); EObject testObjectT3a = eFactory.create(eClassT3a); EObject testObjectT3b = eFactory.create(eClassT3b); EObject testObjectT4 = eFactory.create(eClassT4); @SuppressWarnings("unchecked") List<EObject> list = (List<EObject>) testObjectDomain.eGet(eReferenceDomain_types); list.add(testObjectT2a); list.add(testObjectT2b); list.add(testObjectT3a); list.add(testObjectT3b); list.add(testObjectT4); testObjectDomain.eSet(eReferenceDomain_t1_2a, testObjectT2a); testObjectDomain.eSet(eReferenceDomain_t1_3a, testObjectT3a); testObjectDomain.eSet(eReferenceDomain_t1_3b, testObjectT3b); testObjectDomain.eSet(eReferenceDomain_t1_4, testObjectT4); testObjectDomain.eSet(eReferenceDomain_t2a_2a, testObjectT2a); testObjectDomain.eSet(eReferenceDomain_t2a_3a, testObjectT3a); testObjectDomain.eSet(eReferenceDomain_t2b_2b, testObjectT2b); testObjectDomain.eSet(eReferenceDomain_t3a, testObjectT3a); // ocl.assertQueryEquals(testObjectT2a, "T2a::op1", "self.op1()"); ocl.assertQueryEquals(testObjectT2a, "T2a::op2", "self.op2()"); ocl.assertSemanticErrorQuery( pivotTypeT2a, "self.op3()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T2a::op3"); ocl.assertQueryEquals(testObjectT2a, "T2a::op4", "self.op4()"); ocl.assertQueryEquals(testObjectT2a, "T1::op5", "self.op5()"); ocl.assertQueryEquals(testObjectT2a, "T2a::op6", "self.op6()"); ocl.assertQueryEquals(testObjectT2a, "T2a::op7", "self.op7()"); ocl.assertSemanticErrorQuery( pivotTypeT2a, "self.op8()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T2a::op8"); ocl.assertQueryEquals(testObjectT2a, "T2a::op9", "self.op9()"); // ocl.assertQueryEquals(testObjectT3a, "T3a::op1", "self.op1()"); ocl.assertQueryEquals(testObjectT3a, "T3a::op2", "self.op2()"); ocl.assertQueryEquals(testObjectT3a, "T3a::op3", "self.op3()"); ocl.assertQueryEquals(testObjectT3a, "T2a::op4", "self.op4()"); ocl.assertQueryEquals(testObjectT3a, "T1::op5", "self.op5()"); ocl.assertQueryEquals(testObjectT3a, "T3a::op6", "self.op6()"); ocl.assertQueryEquals(testObjectT3a, "T3a::op7", "self.op7()"); ocl.assertSemanticErrorQuery( pivotTypeT3a, "self.op8()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T3a::op8"); ocl.assertSemanticErrorQuery( pivotTypeT3a, "self.op9()", "Ambiguous resolution:\n" + "\tOperation : Bug411154::T2a::op9() : String[?]\n" + "\tOperation : Bug411154::T2b::op9() : String[?]"); // ocl.assertQueryEquals(testObjectDomain, "T2a::op1", "t1_2a.op1()"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_2a.op2()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op2"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_2a.op3()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op3"); ocl.assertQueryEquals(testObjectDomain, "T2a::op4", "t1_2a.op4()"); ocl.assertQueryEquals(testObjectDomain, "T1::op5", "t1_2a.op5()"); // ocl.assertQueryEquals(testObjectDomain, "T3a::op1", "t1_3a.op1()"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_3a.op2()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op2"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_3a.op3()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op3"); ocl.assertQueryEquals(testObjectDomain, "T2a::op4", "t1_3a.op4()"); ocl.assertQueryEquals(testObjectDomain, "T1::op5", "t1_3a.op5()"); // ocl.assertQueryEquals(testObjectDomain, "T2a::op1", "t1_3b.op1()"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_3b.op2()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op2"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_3b.op3()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op3"); ocl.assertQueryEquals(testObjectDomain, "T2a::op4", "t1_3b.op4()"); ocl.assertQueryEquals(testObjectDomain, "T1::op5", "t1_3b.op5()"); ocl.assertQueryInvalid( testObjectDomain, "t1_3b.op6()", NLS.bind( PivotMessages.AmbiguousOperation, "Bug411154::T1::op6() : String[?]", "Bug411154::T3b"), InvalidValueException.class); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_3b.op7()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op7"); // ocl.assertQueryEquals(testObjectDomain, "T3a::op1", "t1_4.op1()"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_4.op2()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op2"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_4.op3()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op3"); ocl.assertQueryEquals(testObjectDomain, "T2a::op4", "t1_4.op4()"); ocl.assertQueryEquals(testObjectDomain, "T1::op5", "t1_4.op5()"); ocl.assertQueryEquals(testObjectDomain, "T4::op6", "t1_4.op6()"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t1_4.op7()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T1::op7"); // ocl.assertQueryEquals(testObjectDomain, "T2a::op1", "t2a_2a.op1()"); ocl.assertQueryEquals(testObjectDomain, "T2a::op2", "t2a_2a.op2()"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t2a_2a.op3()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T2a::op3"); ocl.assertQueryEquals(testObjectDomain, "T2a::op4", "t2a_2a.op4()"); ocl.assertQueryEquals(testObjectDomain, "T1::op5", "t2a_2a.op5()"); ocl.assertQueryEquals(testObjectDomain, "T2a::op6", "t2a_2a.op6()"); ocl.assertQueryEquals(testObjectDomain, "T2a::op7", "t2a_2a.op7()"); // ocl.assertQueryEquals(testObjectDomain, "T2b::op6", "t2b_2b.op6()"); // ocl.assertQueryEquals(testObjectDomain, "T3a::op1", "t2a_3a.op1()"); ocl.assertQueryEquals(testObjectDomain, "T3a::op2", "t2a_3a.op2()"); ocl.assertSemanticErrorQuery( pivotTypeDomain, "t2a_3a.op3()", PivotMessagesInternal.UnresolvedOperation_ERROR_, "Bug411154", "T2a::op3"); ocl.assertQueryEquals(testObjectDomain, "T2a::op4", "t2a_3a.op4()"); ocl.assertQueryEquals(testObjectDomain, "T1::op5", "t2a_3a.op5()"); // ocl.assertQueryEquals(testObjectDomain, "T3a::op1", "t3a.op1()"); ocl.assertQueryEquals(testObjectDomain, "T3a::op2", "t3a.op2()"); ocl.assertQueryEquals(testObjectDomain, "T3a::op3", "t3a.op3()"); ocl.assertQueryEquals(testObjectDomain, "T2a::op4", "t3a.op4()"); ocl.assertQueryEquals(testObjectDomain, "T1::op5", "t3a.op5()"); ocl.dispose(); }
@Test public void test_cg_name_occlusion_401692() throws ParserException, IOException { TestOCL ocl = createOCL(); if (!EMFPlugin.IS_ECLIPSE_RUNNING) { OCLinEcoreStandaloneSetup.doSetup(); // OCLDelegateDomain.initialize(null); } MetamodelManager metamodelManager = ocl.getMetamodelManager(); String metamodelText = "package scope = 'abc'\n" + "{\n" + " class A\n" + " {\n" + " attribute d : String;\n" + " attribute e : String;\n" + " }\n" + " class B\n" + " {\n" + " operation findA(e : String) : A[?]\n" + " {\n" + " body:\n" + " let found : OrderedSet(A) = as?->select(a : A | a.d = e) in if found->size() > 0 then found->first() else null endif;\n" + " }\n" + " property as : A[*] { ordered composes };\n" + " }\n" + "}\n"; Resource metamodel = cs2as(ocl, metamodelText); Model pivotModel = (Model) metamodel.getContents().get(0); org.eclipse.ocl.pivot.Package pivotPackage = pivotModel.getOwnedPackages().get(0); org.eclipse.ocl.pivot.Class pivotTypeA = NameUtil.getNameable(pivotPackage.getOwnedClasses(), "A"); org.eclipse.ocl.pivot.Class pivotTypeB = NameUtil.getNameable(pivotPackage.getOwnedClasses(), "B"); EPackage ePackage = metamodelManager.getEcoreOfPivot(EPackage.class, pivotPackage); EClass eClassA = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeA); EClass eClassB = metamodelManager.getEcoreOfPivot(EClass.class, pivotTypeB); EAttribute eAttributeAd = metamodelManager.getEcoreOfPivot( EAttribute.class, NameUtil.getNameable(pivotTypeA.getOwnedProperties(), "d")); EAttribute eAttributeAe = metamodelManager.getEcoreOfPivot( EAttribute.class, NameUtil.getNameable(pivotTypeA.getOwnedProperties(), "e")); EReference eReferenceBas = metamodelManager.getEcoreOfPivot( EReference.class, NameUtil.getNameable(pivotTypeB.getOwnedProperties(), "as")); EFactory eFactory = ePackage.getEFactoryInstance(); Resource resource = new ResourceImpl(); EObject testObjectA1 = eFactory.create(eClassA); testObjectA1.eSet(eAttributeAd, "d1"); testObjectA1.eSet(eAttributeAe, "e1"); EObject testObjectA2 = eFactory.create(eClassA); testObjectA2.eSet(eAttributeAd, "d2"); testObjectA2.eSet(eAttributeAe, "e2"); EObject testObjectB = eFactory.create(eClassB); resource.getContents().add(testObjectB); @SuppressWarnings("unchecked") List<EObject> as = (List<EObject>) testObjectB.eGet(eReferenceBas); as.add(testObjectA1); as.add(testObjectA2); // ocl.assertQueryEquals(testObjectB, testObjectA1, "self.findA('d1')"); ocl.assertQueryEquals(testObjectB, null, "self.findA('e2')"); ocl.dispose(); }
private static EObject createEmployee(String name) { EFactory employeeFactory = employeePackage.getEFactoryInstance(); EObject employee = employeeFactory.create(employeeClass); employee.eSet(nameAttr, name); return employee; }
@Override protected void setUp() { super.setUp(); pkg = umlf.createPackage(); pkg.setName("pkg"); valueType = pkg.createOwnedPrimitiveType("Value"); valueType .createOwnedOperation( "<", new BasicEList<String>(Collections.singleton("v")), new BasicEList<Type>(Collections.singleton(valueType)), getUMLBoolean()) .setIsQuery(true); valueType .createOwnedOperation( "<=", new BasicEList<String>(Collections.singleton("v")), new BasicEList<Type>(Collections.singleton(valueType)), getUMLBoolean()) .setIsQuery(true); valueType .createOwnedOperation( ">", new BasicEList<String>(Collections.singleton("v")), new BasicEList<Type>(Collections.singleton(valueType)), getUMLBoolean()) .setIsQuery(true); valueType .createOwnedOperation( ">=", new BasicEList<String>(Collections.singleton("v")), new BasicEList<Type>(Collections.singleton(valueType)), getUMLBoolean()) .setIsQuery(true); thingType = pkg.createOwnedClass("Thing", false); values = thingType.createOwnedAttribute("values", valueType); values.setUpper(LiteralUnlimitedNatural.UNLIMITED); values.setIsOrdered(true); values.setIsUnique(true); bdValue = thingType.createOwnedAttribute("bdValue", getEcoreBigDecimal()); biValue = thingType.createOwnedAttribute("biValue", getEcoreBigInteger()); numeroType = pkg.createOwnedClass("Numero", false); numeroType .createOwnedOperation( "+", new BasicEList<String>(Collections.singleton("n")), new BasicEList<Type>(Collections.singleton(numeroType)), numeroType) .setIsQuery(true); numeroType .createOwnedOperation( "-", new BasicEList<String>(Collections.singleton("n")), new BasicEList<Type>(Collections.singleton(numeroType)), numeroType) .setIsQuery(true); numeroType .createOwnedOperation( "*", new BasicEList<String>(Collections.singleton("n")), new BasicEList<Type>(Collections.singleton(numeroType)), numeroType) .setIsQuery(true); numeroType .createOwnedOperation( "/", new BasicEList<String>(Collections.singleton("n")), new BasicEList<Type>(Collections.singleton(numeroType)), numeroType) .setIsQuery(true); numeroType .createOwnedOperation( "-", ECollections.<String>emptyEList(), ECollections.<Type>emptyEList(), numeroType) .setIsQuery(true); numeroType .createOwnedOperation( "<", new BasicEList<String>(Collections.singleton("n")), new BasicEList<Type>(Collections.singleton(numeroType)), getUMLBoolean()) .setIsQuery(true); numeroType .createOwnedOperation( "<=", new BasicEList<String>(Collections.singleton("n")), new BasicEList<Type>(Collections.singleton(numeroType)), getUMLBoolean()) .setIsQuery(true); numeroType .createOwnedOperation( ">", new BasicEList<String>(Collections.singleton("n")), new BasicEList<Type>(Collections.singleton(numeroType)), getUMLBoolean()) .setIsQuery(true); numeroType .createOwnedOperation( ">=", new BasicEList<String>(Collections.singleton("n")), new BasicEList<Type>(Collections.singleton(numeroType)), getUMLBoolean()) .setIsQuery(true); numeroType .createOwnedOperation( "asLong", ECollections.<String>emptyEList(), ECollections.<Type>emptyEList(), getEcoreLong()) .setIsQuery(true); numeros = thingType.createOwnedAttribute("numeros", numeroType); numeros.setUpper(LiteralUnlimitedNatural.UNLIMITED); numeros.setIsOrdered(true); numeros.setIsUnique(true); comparable = pkg.createOwnedClass("Comparable", true); comparable .createOwnedOperation( "compareTo", new BasicEList<String>(Collections.singleton("c")), new BasicEList<Type>(Collections.singleton(comparable)), getUMLInteger()) .setIsQuery(true); // the Ecore counterpart epkg = UMLUtil.convertToEcore(pkg, null).iterator().next(); ethingType = (EClass) epkg.getEClassifier(thingType.getName()); enumeros = (EReference) ethingType.getEStructuralFeature(numeros.getName()); evalues = (EAttribute) ethingType.getEStructuralFeature(values.getName()); ebdValue = (EAttribute) ethingType.getEStructuralFeature(bdValue.getName()); ebiValue = (EAttribute) ethingType.getEStructuralFeature(biValue.getName()); enumeroType = (EClass) epkg.getEClassifier(numeroType.getName()); enumeroType.setInstanceClass(Numero.class); evalueType = (EDataType) epkg.getEClassifier(valueType.getName()); evalueType.setInstanceClass(Value.class); efactory = epkg.getEFactoryInstance(); thing = efactory.create(ethingType); EPackage.Registry.INSTANCE.put(epkg.getNsURI(), epkg); @SuppressWarnings("unchecked") EList<Numero> list = (EList<Numero>) thing.eGet(enumeros); list.add(new Numero(6)); list.add(new Numero(2)); }