protected void link(EReference eReference1, EReference eReference2) { eReference1.setEOpposite(eReference2); eReference2.setEOpposite(eReference1); }
@Override public void migrate(Schema schema, DatabaseSession databaseSession) { EClass oAuthAuthorizationCodeClass = schema.getEClass("store", "OAuthAuthorizationCode"); EClass userClass = schema.getEClass("store", "User"); EReference codeToUser = schema.createEReference(oAuthAuthorizationCodeClass, "user", userClass); EReference codes = (EReference) userClass.getEStructuralFeature("oAuthIssuedAuthorizationCodes"); codeToUser.setEOpposite(codes); codes.setEOpposite(codeToUser); }
reference.setUnique(true); reference.setEOpposite(eRef); eRef.setEOpposite(reference); } else { System.out.println("Inverse mismatch");
userHasRightsOn.setEOpposite(projectHasAuthorizedUsers); projectHasAuthorizedUsers.setEOpposite(userHasRightsOn); revisionProject.setEOpposite(projectRevisions); projectRevisions.setEOpposite(revisionProject); checkoutProject.setEOpposite(projectCheckouts); projectCheckouts.setEOpposite(checkoutProject); checkoutRevision.setEOpposite(revisionCheckouts); revisionCheckouts.setEOpposite(checkoutRevision); revisionConcreteRevisions.setEOpposite(concreteRevisionRevisions); concreteRevisionRevisions.setEOpposite(revisionConcreteRevisions); concreteRevisionProject.setEOpposite(projectConcreteRevisions); projectConcreteRevisions.setEOpposite(concreteRevisionProject); projectGeoTag.setEOpposite(geoTagProjects); geoTagProjects.setEOpposite(projectGeoTag); projectParentProject.setEOpposite(projectSubProjects); projectSubProjects.setEOpposite(projectParentProject); serializerSettingsReference.setEOpposite(settingsSerializersReference); objectIDMSettingsReference.setEOpposite(settingsObjectIDMReference); settingsSerializersReference.setEOpposite(serializerSettingsReference); settingsObjectIDMReference.setEOpposite(objectIDMSettingsReference);
public static EReference initEReference(final EReference r, final EClassifier type, final EReference otherEnd, final String name, final String defaultValue, final int lowerBound, final int upperBound, final Class containerClass, final boolean isTransient, final boolean isVolatile, final boolean isChangeable, final boolean isContainment, final boolean isResolveProxies, final boolean isUnsettable, final boolean isUnique, final boolean isDerived, final boolean isOrdered) { initEStructuralFeature(r, type, name, defaultValue, lowerBound, upperBound, containerClass, isTransient, isVolatile, isChangeable, isUnsettable, isUnique, isDerived, isOrdered); r.setContainment(isContainment); if (otherEnd != null) { r.setEOpposite(otherEnd); } r.setResolveProxies(isResolveProxies); return r; }
/** * If a "hidden" opposite is found (because a forward reference has a "Property.oppositeRoleName" * annotation specifying a name for the opposite role), this method adds a temporary * {@link EReference} to the <code>ends</code> list which has no container set and as its * opposite uses the forward reference. The name of this temporary reference is set to * <code>name</code> which equals the value of the "Property.oppositeRoleName" annotation * on the forward reference.<p> * * The temporary reference is not a valid reference for at least two reasons: its container * is not set and its opposite does not name it as its opposite. * @since 3.1 */ @Override protected void findNonNavigableAssociationEnds(EClassifier classifier, String name, List<EStructuralFeature> ends) { List<EReference> hiddenOpposites = new ArrayList<EReference>(); if (oppositeEndFinder != null) { oppositeEndFinder.findOppositeEnds(classifier, name, hiddenOpposites); } for (EReference forwardRef : hiddenOpposites) { EReference temporaryOppositeRef = EcoreFactory.eINSTANCE.createEReference(); temporaryOppositeRef.setEOpposite(forwardRef); temporaryOppositeRef.setName(name); temporaryOppositeRef.setEType(forwardRef.getEContainingClass()); ends.add(temporaryOppositeRef); } }
eOpposite.setEOpposite(eReference); eReference.setEOpposite(eOpposite); eOpposite.setEType(eReference.getEContainingClass()); eOpposite.setLowerBound(0); eOpposite.setEOpposite(eReference); eReference.setEOpposite(eOpposite); eOpposite.setTransient(true); oppositeEClass.getEStructuralFeatures().add(eOpposite);
eOpposite.setEOpposite(eReference); eReference.setEOpposite(eOpposite); eOpposite.setEType(eReference.getEContainingClass()); eOpposite.setLowerBound(0); eOpposite.setEOpposite(eReference); eReference.setEOpposite(eOpposite); eOpposite.setTransient(true); oppositeEClass.getEStructuralFeatures().add(eOpposite);
if (oldReferenceOpposite != null) oldReferenceOpposite.setEOpposite(null); if (oldOppositeOpposite != null) oldOppositeOpposite.setEOpposite(null); eOpposite.setEOpposite(eReference); eReference.setEOpposite(eOpposite);
private void createEPackageMultiplicityOneCrossRefWithMultiplicityOneOpposite() { EPackage ePackage = this.createNewEPackage("MyEPackage", "http://www.example.com/model", "model"); EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName("MyEClass"); EClass eOtherClass = EcoreFactory.eINSTANCE.createEClass(); eOtherClass.setName("YourEClass"); EReference eRefChild = EcoreFactory.eINSTANCE.createEReference(); eRefChild.setName("child"); eRefChild.setEType(eOtherClass); eRefChild.setLowerBound(0); eRefChild.setUpperBound(1); eRefChild.setContainment(false); EReference eRefParent = EcoreFactory.eINSTANCE.createEReference(); eRefParent.setName("parent"); eRefParent.setLowerBound(0); eRefParent.setUpperBound(1); eRefParent.setEType(eClass); eRefParent.setEOpposite(eRefChild); eRefChild.setEOpposite(eRefParent); eClass.getEStructuralFeatures().add(eRefChild); eOtherClass.getEStructuralFeatures().add(eRefParent); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
private void createEPackageMultiplicityOneContainmentWithOpposite() { EPackage ePackage = this.createNewEPackage("MyEPackage", "http://www.example.com/model", "model"); EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName("MyEClass"); EClass eOtherClass = EcoreFactory.eINSTANCE.createEClass(); eOtherClass.setName("YourEClass"); EReference eRefChild = EcoreFactory.eINSTANCE.createEReference(); eRefChild.setName("child"); eRefChild.setEType(eOtherClass); eRefChild.setLowerBound(0); eRefChild.setUpperBound(1); eRefChild.setContainment(true); EReference eRefParent = EcoreFactory.eINSTANCE.createEReference(); eRefParent.setName("parent"); eRefParent.setLowerBound(0); eRefParent.setUpperBound(1); eRefParent.setEType(eClass); eRefParent.setEOpposite(eRefChild); eRefChild.setEOpposite(eRefParent); eClass.getEStructuralFeatures().add(eRefChild); eOtherClass.getEStructuralFeatures().add(eRefParent); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
private void createEPackageMultiplicityManyCrossRefWithMultiplicityOneOpposite() { EPackage ePackage = this.createNewEPackage("MyEPackage", "http://www.example.com/model", "model"); EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName("MyEClass"); EClass eOtherClass = EcoreFactory.eINSTANCE.createEClass(); eOtherClass.setName("YourEClass"); EReference eRefChildren = EcoreFactory.eINSTANCE.createEReference(); eRefChildren.setName("children"); eRefChildren.setEType(eOtherClass); eRefChildren.setLowerBound(0); eRefChildren.setUpperBound(-1); eRefChildren.setContainment(false); eClass.getEStructuralFeatures().add(eRefChildren); EReference eRefParent = EcoreFactory.eINSTANCE.createEReference(); eRefParent.setName("parent"); eRefParent.setLowerBound(0); eRefParent.setUpperBound(1); eRefParent.setEType(eClass); eRefParent.setEOpposite(eRefChildren); eRefChildren.setEOpposite(eRefParent); eOtherClass.getEStructuralFeatures().add(eRefParent); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
private void createEPackageMultiplicityManyContainmentWithMultiplicityOneOpposite() { EPackage ePackage = this.createNewEPackage("MyEPackage", "http://www.example.com/model", "model"); ePackage.setName("MyPackage"); EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName("MyEClass"); EClass eOtherClass = EcoreFactory.eINSTANCE.createEClass(); eOtherClass.setName("YourEClass"); EReference eRefChildren = EcoreFactory.eINSTANCE.createEReference(); eRefChildren.setName("children"); eRefChildren.setEType(eOtherClass); eRefChildren.setLowerBound(0); eRefChildren.setUpperBound(-1); eRefChildren.setContainment(true); eClass.getEStructuralFeatures().add(eRefChildren); EReference eRefParent = EcoreFactory.eINSTANCE.createEReference(); eRefParent.setName("parent"); eRefParent.setLowerBound(0); eRefParent.setUpperBound(1); eRefParent.setEType(eClass); eRefParent.setEOpposite(eRefChildren); eRefChildren.setEOpposite(eRefParent); eOtherClass.getEStructuralFeatures().add(eRefParent); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
private void createEPackageMultiplicityOneCrossRefWithMultiplicityManyOpposite() { EPackage ePackage = this.createNewEPackage("MyEPackage", "http://www.example.com/model", "model"); EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName("MyEClass"); EClass eOtherClass = EcoreFactory.eINSTANCE.createEClass(); eOtherClass.setName("YourEClass"); EReference eRefChild = EcoreFactory.eINSTANCE.createEReference(); eRefChild.setName("child"); eRefChild.setEType(eOtherClass); eRefChild.setLowerBound(0); eRefChild.setUpperBound(1); eRefChild.setContainment(false); EReference eRefParent = EcoreFactory.eINSTANCE.createEReference(); eRefParent.setName("parents"); eRefParent.setLowerBound(0); eRefParent.setUpperBound(-1); eRefParent.setEType(eClass); eRefParent.setEOpposite(eRefChild); eRefChild.setEOpposite(eRefParent); eClass.getEStructuralFeatures().add(eRefChild); eOtherClass.getEStructuralFeatures().add(eRefParent); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
erContainer.setUpperBound(1); erContainer.setEType(ecIContainer); erContainer.setEOpposite(erElements); erElements.setEOpposite(erContainer); ecIElement.getEStructuralFeatures().add(erContainer); ePackage.getEClassifiers().add(ecIContainer);
private void createEPackageSymmetricMultiplicityManyCrosssRef() { EPackage ePackage = this.createNewEPackage("MyEPackage", "http://www.example.com/model", "model"); { EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName("MyEClass"); { EReference eRef = EcoreFactory.eINSTANCE.createEReference(); eRef.setName("ref"); eRef.setEType(eClass); eRef.setLowerBound(0); eRef.setUpperBound(-1); eRef.setEOpposite(eRef); eRef.setContainment(false); eRef.setOrdered(true); eRef.setUnique(true); eClass.getEStructuralFeatures().add(eRef); } ePackage.getEClassifiers().add(eClass); } this.registerEPackages(ePackage); }
erPackageFragmentRoot.setEOpposite(erPackageFragments); erPackageFragments.setEOpposite(erPackageFragmentRoot);
erPackageFragmentRoot.setEOpposite(erPackageFragments); erPackageFragments.setEOpposite(erPackageFragmentRoot);
erMarried.setName("married"); erMarried.setEType(ecPerson); erMarried.setEOpposite(erMarried); erMarried.setLowerBound(0); erMarried.setUpperBound(1);