public static EReference initEReference(final EReference r, final EClassifier type, final String name, final int lowerBound, final int upperBound, final Class containerClass) { initEStructuralFeature(r, type, name, lowerBound, upperBound, containerClass); r.setContainment(false); r.setResolveProxies(true); return r; }
public static EReference initOneToOneEReference(final EReference r, final EClassifier type, final String name, final int lowerBound, final int upperBound, final Class containerClass) { initEStructuralFeature(r, type, name, lowerBound, upperBound, containerClass); r.setContainment(false); r.setResolveProxies(true); return r; }
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; }
/*Create your second EClass*/ EClass mySecondEClass = ecoreFactory.createEClass(); mySecondEClass.setName("mySecondClass"); myPackage.getEClassifiers().add(mySecondEClass); /*now, the firstClass should hold instances of secondClass*/ /*1. create EReference (Ereferences unlike EAttributes define relationships between EClasses)*/ EReference secondClassesRef = ecoreFactory.createEReference(); secondClassesRef.setName("secondClasses"); /*set containment true -> every EObject must have a Container*/ secondClassesRef.setContainment(true); /*set Type to your EClass*/ secondClassesRef.setEType(mySecondEClass); /*set upperbound -> now the reference is an EList*/ secondClassesRef.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY); /*finally add ERef to EClass*/ myFirstEClass.getEStructuralFeatures().add(secondClassesRef); /*and for example supertypes*/ myFirstEClass.getESuperTypes().add(mySecondEClass);
result.setContainment(true); result.setName(toJavaName(field.getXmltag(), false)); result.setLowerBound(field.isRequired() ? 1 : 0);
/** * Creates a droot root class * * @param rootClass * @return */ public static EClass createDocumentRoot(EClass rootClass) { EClass clazz = EcoreFactory.eINSTANCE.createEClass(); clazz.setName("DocumentRoot"); metadata.setDocumentRoot(clazz); if (rootClass != null) { EReference reference = EcoreFactory.eINSTANCE.createEReference(); clazz.getEStructuralFeatures().add(reference); reference.setEType(rootClass); reference.setName(metadata.getName(rootClass)); metadata.setFeatureKind(reference, ExtendedMetaData.ELEMENT_FEATURE); setTargetNamespace(reference); reference.setContainment(true); } return clazz; }
/** * Creates a droot root class * * @param rootClass * @return */ public static EClass createDocumentRoot(EClass rootClass) { EClass clazz = EcoreFactory.eINSTANCE.createEClass(); clazz.setName("DocumentRoot"); metadata.setDocumentRoot(clazz); if (rootClass != null) { EReference reference = EcoreFactory.eINSTANCE.createEReference(); clazz.getEStructuralFeatures().add(reference); reference.setEType(rootClass); reference.setName(metadata.getName(rootClass)); metadata.setFeatureKind(reference, ExtendedMetaData.ELEMENT_FEATURE); setTargetNamespace(reference); reference.setContainment(true); } return clazz; }
private EStructuralFeature createFeatureWith(String featureName, EClassifier featureClassifier, boolean isMultivalue, boolean isContainment) { EStructuralFeature newFeature; if (featureClassifier instanceof EClass) { EReference reference = EcoreFactory.eINSTANCE.createEReference(); reference.setContainment(isContainment); newFeature = reference; } else { newFeature = EcoreFactory.eINSTANCE.createEAttribute(); } newFeature.setName(featureName); newFeature.setEType(featureClassifier); newFeature.setLowerBound(0); newFeature.setUpperBound(isMultivalue ? -1 : 1); newFeature.setUnique(!isMultivalue || (isContainment && featureClassifier instanceof EClass)); if (newFeature.getEType() instanceof EEnum) { newFeature.setDefaultValue(null); } return newFeature; }
/** * Convert {@link SegmentGroup} into {@link EReference} to the given * {@link EClass} * * @param grp * @param refClass * @return */ public static EReference segmentGroupToEReference(SegmentGroup grp, EClass refClass) { EReference reference = EcoreFactory.eINSTANCE.createEReference(); reference.setContainment(true); reference.setName(toJavaName(grp.getXmltag(), false)); reference.setEType(refClass); reference.setLowerBound(grp.getMinOccurs()); reference.setUpperBound(grp.getMaxOccurs()); addMappingInformation(reference, grp); annotate(reference, "minOccurs", String.valueOf(grp.getMinOccurs())); annotate(reference, "maxOccurs", String.valueOf(grp.getMaxOccurs())); annotate(reference, SmooksMetadata.ANNOTATION_TYPE_KEY, SmooksMetadata.SEGMENT_GROUP_TYPE); annotate(reference, SmooksMetadata.SEGCODE, grp.getSegcode()); return reference; }
/** * Convert {@link SegmentGroup} into {@link EReference} to the given * {@link EClass} * * @param grp * @param refClass * @return */ public static EReference segmentGroupToEReference(SegmentGroup grp, EClass refClass) { EReference reference = EcoreFactory.eINSTANCE.createEReference(); reference.setContainment(true); reference.setName(toJavaName(grp.getXmltag(), false)); reference.setEType(refClass); reference.setLowerBound(grp.getMinOccurs()); reference.setUpperBound(grp.getMaxOccurs()); addMappingInformation(reference, grp); annotate(reference, "minOccurs", String.valueOf(grp.getMinOccurs())); annotate(reference, "maxOccurs", String.valueOf(grp.getMaxOccurs())); annotate(reference, SmooksMetadata.ANNOTATION_TYPE_KEY, SmooksMetadata.SEGMENT_GROUP_TYPE); annotate(reference, SmooksMetadata.SEGCODE, grp.getSegcode()); return reference; }
private void createEPackageMultiplicityOneCrossRefNoOpposite() { 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 eReference = EcoreFactory.eINSTANCE.createEReference(); eReference.setName("child"); eReference.setEType(eOtherClass); eReference.setLowerBound(0); eReference.setUpperBound(1); eReference.setContainment(false); eClass.getEStructuralFeatures().add(eReference); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
private void createEPackageMultiplicityOneContainmentNoOpposite() { 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 eReference = EcoreFactory.eINSTANCE.createEReference(); eReference.setName("child"); eReference.setEType(eOtherClass); eReference.setLowerBound(0); eReference.setUpperBound(1); eReference.setContainment(true); eClass.getEStructuralFeatures().add(eReference); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
private void createEPackageMultiplicityManyCrossRefNoOpposite() { 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 eReference = EcoreFactory.eINSTANCE.createEReference(); eReference.setName("children"); eReference.setEType(eOtherClass); eReference.setLowerBound(0); eReference.setUpperBound(-1); eReference.setContainment(false); eClass.getEStructuralFeatures().add(eReference); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
private void createEPackageMultiplicityManyContainmentNoOpposite() { 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"); EAttribute eAttribute = EcoreFactory.eINSTANCE.createEAttribute(); eAttribute.setName("MyAttribute"); eAttribute.setEType(EcorePackage.Literals.ESTRING); eAttribute.setLowerBound(0); eAttribute.setUpperBound(1); eClass.getEStructuralFeatures().add(eAttribute); EReference eReference = EcoreFactory.eINSTANCE.createEReference(); eReference.setName("children"); eReference.setEType(eOtherClass); eReference.setLowerBound(0); eReference.setUpperBound(-1); eReference.setContainment(true); eClass.getEStructuralFeatures().add(eReference); ePackage.getEClassifiers().add(eClass); ePackage.getEClassifiers().add(eOtherClass); this.registerEPackages(ePackage); }
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); }
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 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); }
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); }