public EClass createEClass(EPackage ePackage, String name, EClass... superClasses) { EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName(name); changes.add(new NewClassChange(eClass)); for (EClass superClass : superClasses) { eClass.getESuperTypes().add(superClass); } ePackage.getEClassifiers().add(eClass); return eClass; }
if (containerClass == null) { containerClass = EcoreFactory.eINSTANCE.createEClass(); containerClass.setName("ListOf" + finalType.getName());
EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName("DEMO"); eClass.setInterface(true); EObject obj = EcoreUtil.create(eClass);
@Override public EClassifier getType(EFactory eFactory, String typeName) { if (deprecatedTypeMappings.containsKey(typeName)) { // need a temp instance of the now removed EClass so that // createObject, above, can do it's work. final EClass tempEClass = EcoreFactory.eINSTANCE.createEClass(); tempEClass.setName(typeName); return tempEClass; } return super.getType(eFactory, typeName); }
/** * Creating mapping classes * * @param root * @param commonClasses * @return */ private Set<EClass> createMappingClases(SegmentGroup root, Map<String, EClass> commonClasses) { Set<EClass> result = new HashSet<EClass>(); EClass rootClass = ECoreConversionUtils.segmentGroupToEClass(root); // We need to change the name of the Root class so it is not // the same as name of the package rootClass.setName(rootClass.getName().toUpperCase()); result.add(rootClass); ExtendedMetaData.INSTANCE.setName(rootClass, rootClass.getName()); result.add(ECoreConversionUtils.createDocumentRoot(rootClass)); processSegments(root.getSegments(), commonClasses, result, rootClass); return result; }
/** * Creating mapping classes * * @param root * @param commonClasses * @return */ private Set<EClass> createMappingClases(SegmentGroup root, Map<String, EClass> commonClasses) { Set<EClass> result = new HashSet<EClass>(); EClass rootClass = ECoreConversionUtils.segmentGroupToEClass(root); // We need to change the name of the Root class so it is not // the same as name of the package rootClass.setName(rootClass.getName().toUpperCase()); result.add(rootClass); ExtendedMetaData.INSTANCE.setName(rootClass, rootClass.getName()); result.add(ECoreConversionUtils.createDocumentRoot(rootClass)); processSegments(root.getSegments(), commonClasses, result, rootClass); return result; }
/** * @since 2.0 */ public static EClass createEClass(EPackage ePackage, String name, boolean isAbstract, boolean isInterface) { EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName(name); eClass.setAbstract(isAbstract); eClass.setInterface(isInterface); ePackage.getEClassifiers().add(eClass); return eClass; }
public EClassifier demandType(String namespace, String name) { EPackage ePackage = demandPackage(namespace); EClassifier eClassifier = getType(ePackage, name); if (eClassifier != null) { return eClassifier; } else { EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName(name); eClass.getESuperTypes().add(XMLTypePackage.eINSTANCE.getAnyType()); setContentKind(eClass, MIXED_CONTENT); ePackage.getEClassifiers().add(eClass); return eClass; } }
public EClassifier demandType(String namespace, String name) { EPackage ePackage = demandPackage(namespace); EClassifier eClassifier = getType(ePackage, name); if (eClassifier != null) { return eClassifier; } else { EClass eClass = EcoreFactory.eINSTANCE.createEClass(); eClass.setName(name); eClass.getESuperTypes().add(XMLTypePackage.eINSTANCE.getAnyType()); setContentKind(eClass, MIXED_CONTENT); ePackage.getEClassifiers().add(eClass); return eClass; } }
/** * Converting {@link SegmentGroup} to {@link EClass} * * @param grp * @return */ public static EClass segmentGroupToEClass(SegmentGroup grp) { EClass clazz = EcoreFactory.eINSTANCE.createEClass(); clazz.setName(toJavaName(grp.getXmltag(), true)); addMappingInformation(clazz, grp); return clazz; }
/** * Converting {@link SegmentGroup} to {@link EClass} * * @param grp * @return */ public static EClass segmentGroupToEClass(SegmentGroup grp) { EClass clazz = EcoreFactory.eINSTANCE.createEClass(); clazz.setName(toJavaName(grp.getXmltag(), true)); addMappingInformation(clazz, grp); return clazz; }
/** * Creates the shadow class to contain features that an Ecore classifier * cannot contain for itself. * * @param classifier an Ecore classifier * * @return the class containing its features */ public static EClass createShadowClass(EClassifier classifier) { // the features may have invalid characters in their names EClass result = org.eclipse.emf.ecore.EcoreFactory.eINSTANCE.createEClass(); result.setName(classifier.getName() + "_Class"); //$NON-NLS-1$ EAnnotation ann = org.eclipse.emf.ecore.EcoreFactory.eINSTANCE.createEAnnotation(); ann.setSource(Environment.OCL_NAMESPACE_URI); ann.getReferences().add(classifier); result.getEAnnotations().add(ann); return result; }
/*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);
/** * 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; }
@BeforeAll static void initMocks() { EcoreFactory coreFactory = EcoreFactory.eINSTANCE; EPackage ePackage = coreFactory.createEPackage(); ePackage.setName("MyPackage"); ePackage.setNsPrefix("my"); ePackage.setNsURI("http://example.org/my"); eClass = coreFactory.createEClass(); eClass.setName("MyClass"); ePackage.getEClassifiers().add(eClass); assertThat(eClass.getEPackage()).isEqualTo(ePackage); PersistenceFactory.updateIfDynamic(ePackage); }
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); }
/** * Creating a new {@link EClass} based on the information from {@link Field} * used in case we have a complex {@link Field} and we need to create a * class for it. * * @param field * @return */ private static EClass fieldToEClass(Field field) { String classifierName = toJavaName(field.getXmltag(), true); if (field.getNodeTypeRef() != null) { classifierName += "_" + field.getNodeTypeRef(); } EClass newClass = EcoreFactory.eINSTANCE.createEClass(); newClass.setName(classifierName); addMappingInformation(newClass, field); annotate(newClass, ANNOTATION_TYPE_KEY, SmooksMetadata.FIELD_TYPE); annotateValueNode(newClass, field); return newClass; }
/** * Creating a new {@link EClass} based on the information from {@link Field} * used in case we have a complex {@link Field} and we need to create a * class for it. * * @param field * @return */ private static EClass fieldToEClass(Field field) { String classifierName = toJavaName(field.getXmltag(), true); if (field.getNodeTypeRef() != null) { classifierName += "_" + field.getNodeTypeRef(); } EClass newClass = EcoreFactory.eINSTANCE.createEClass(); newClass.setName(classifierName); addMappingInformation(newClass, field); annotate(newClass, ANNOTATION_TYPE_KEY, SmooksMetadata.FIELD_TYPE); annotateValueNode(newClass, field); return newClass; }