package org.eclipse.emf.texo.test.model.schemaconstructs.nestedgroup; import java.util.List; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.xml.type.XMLTypePackage; import org.eclipse.emf.texo.model.AbstractModelFeatureMapEntry; import org.eclipse.emf.texo.model.ModelFactory; import org.eclipse.emf.texo.model.ModelFeatureMapEntry; import org.eclipse.emf.texo.model.ModelObject; import org.eclipse.emf.texo.model.ModelPackage; import org.eclipse.emf.texo.test.model.base.identifiable.IdentifiableModelFactory; /** * The <b>{@link ModelFactory}</b> for the types of this model: * org.eclipse.emf.texo.test.model.schemaconstructs.nestedgroup. It contains code to create instances * {@link ModelObject} wrappers and instances for EClasses and convert objects back and forth from their String (XML) * representation. <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public class NestedgroupModelFactory implements ModelFactory { /** * Creates an instance for an {@link EClass} <!-- begin-user-doc --> <!-- end-user-doc --> * * @param eClass * creates a Object instance for this EClass * @return an object representing the eClass * @generated */ public Object create(EClass eClass) { switch (eClass.getClassifierID()) { case NestedgroupModelPackage.A_CLASSIFIER_ID: return createA(); case NestedgroupModelPackage.CTYPE_CLASSIFIER_ID: return createCType(); case NestedgroupModelPackage.ELEMENT_CLASSIFIER_ID: return createElement(); default: throw new IllegalArgumentException("The EClass '" + eClass.getName() + "' is not a valid EClass for this EPackage"); } } /** * Wraps an object in a {@link ModelObject}. <!-- begin-user-doc --> <!-- end-user-doc --> * * @param eClass * the EClass of the object * @param adaptee * the object being wrapped/adapted * @return the wrapper {@link ModelObject} * @generated */ @SuppressWarnings({ "unchecked", "rawtypes" }) public <T> ModelObject<T> createModelObject(EClass eClass, T adaptee) { ModelObject<Object> modelObject = null; switch (eClass.getClassifierID()) { case NestedgroupModelPackage.A_CLASSIFIER_ID: modelObject = new AModelObject(); break; case NestedgroupModelPackage.CTYPE_CLASSIFIER_ID: modelObject = new CTypeModelObject(); break; case NestedgroupModelPackage.ELEMENT_CLASSIFIER_ID: modelObject = new ElementModelObject(); break; default: throw new IllegalArgumentException("The EClass '" + eClass + "' is not defined in this EPackage"); } modelObject.setTarget(adaptee); return (ModelObject<T>) modelObject; } /** * Creates a feature map entry instance for a certain EStructuralFeature. * * @param eFeature * the feature map feature * @return the pojo feature map entry * @generated */ public Object createFeatureMapEntry(EStructuralFeature eFeature) { if (eFeature == NestedgroupModelPackage.INSTANCE.getA_Group()) { return new AGroupFeatureGroup(); } if (eFeature == NestedgroupModelPackage.INSTANCE.getElement_Mixed()) { return new ElementMixedFeatureGroup(); } if (eFeature == NestedgroupModelPackage.INSTANCE.getElement_True_()) { return new ElementTrue_FeatureGroup(); } throw new IllegalArgumentException("The EStructuralFeature '" + eFeature + "' is not a valid feature map in this EPackage"); } /** * Wraps a feature map entry pojo in a {@link AbstractModelFeatureMapEntry}. If the feature map entry is null then a * new one is created and <!-- begin-user-doc --> <!-- end-user-doc --> * * @param eFeature * the feature map feature of the object * @param adaptee * the pojo feature map entry being wrapped/adapted * @return the wrapper {@link ModelFeatureMapEntry} * @generated */ public ModelFeatureMapEntry<?> createModelFeatureMapEntry(EStructuralFeature eFeature, Object adaptee) { if (eFeature == NestedgroupModelPackage.INSTANCE.getA_Group()) { final AGroupFeatureGroupModelFeatureMapEntry<AGroupFeatureGroup> entry = new AGroupFeatureGroupModelFeatureMapEntry<AGroupFeatureGroup>(); entry.setTarget((AGroupFeatureGroup) adaptee); return entry; } if (eFeature == NestedgroupModelPackage.INSTANCE.getElement_Mixed()) { final ElementMixedFeatureGroupModelFeatureMapEntry<ElementMixedFeatureGroup> entry = new ElementMixedFeatureGroupModelFeatureMapEntry<ElementMixedFeatureGroup>(); entry.setTarget((ElementMixedFeatureGroup) adaptee); return entry; } if (eFeature == NestedgroupModelPackage.INSTANCE.getElement_True_()) { final ElementTrue_FeatureGroupModelFeatureMapEntry<ElementTrue_FeatureGroup> entry = new ElementTrue_FeatureGroupModelFeatureMapEntry<ElementTrue_FeatureGroup>(); entry.setTarget((ElementTrue_FeatureGroup) adaptee); return entry; } throw new IllegalArgumentException("The EStructuralFeature '" + eFeature + "' is not a valid feature map in this EPackage"); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @return an instance of the model object representing the EClass A * @generated */ public A createA() { return new A(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @return an instance of the model object representing the EClass CType * @generated */ public CType createCType() { return new CType(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @return an instance of the model object representing the EClass Element * @generated */ public Element createElement() { return new Element(); } /** * Converts an instance of an {@link EDataType} to a String. <!-- begin-user-doc --> <!-- end-user-doc --> * * @param eDataType * the {@link EDataType} defining the type * @param value * the object to convert, if the value is null then null is returned. * @generated */ public Object createFromString(EDataType eDataType, String value) { switch (eDataType.getClassifierID()) { default: throw new IllegalArgumentException("The EDatatype '" + eDataType + "' is not defined in this EPackage"); } } /** * Converts an instance of an {@link EDataType} to a String. <!-- begin-user-doc --> <!-- end-user-doc --> * * @param eDataType * the {@link EDataType} defining the type * @param value * the object to convert, if value == null then null is returned * @generated */ public String convertToString(EDataType eDataType, Object value) { switch (eDataType.getClassifierID()) { default: throw new IllegalArgumentException("The EDatatype '" + eDataType + "' is not defined in this EPackage."); } } /** * The adapter/wrapper for the EClass '<em><b>A</b></em>'. * * <!-- begin-user-doc --> <!-- end-user-doc --> * * @param <E> * the domain model java class * * @generated */ public static class AModelObject<E extends A> extends IdentifiableModelFactory.IdentifiableModelObject<E> { /** * @generated */ @Override public EClass eClass() { return NestedgroupModelPackage.INSTANCE.getAEClass(); } /** * @generated */ @Override public ModelPackage getModelPackage() { return NestedgroupModelPackage.INSTANCE; } /** * @generated */ @Override public Class<?> getTargetClass() { return A.class; } /** * @generated */ @Override public Object eGet(EStructuralFeature eStructuralFeature) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.A_DB_ID_FEATURE_ID: return getTarget().getDb_Id(); case NestedgroupModelPackage.A_DB_VERSION_FEATURE_ID: return getTarget().getDb_version(); case NestedgroupModelPackage.A_NAME_FEATURE_ID: return getTarget().getName(); case NestedgroupModelPackage.A_GROUP_FEATURE_ID: return getTarget().getGroup(); case NestedgroupModelPackage.A_B_FEATURE_ID: return getTarget().getB(); case NestedgroupModelPackage.A_C_FEATURE_ID: return getTarget().getC(); default: return super.eGet(eStructuralFeature); } } /** * @generated */ @SuppressWarnings("unchecked") @Override public void eSet(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.A_NAME_FEATURE_ID: getTarget().setName((String) value); return; case NestedgroupModelPackage.A_GROUP_FEATURE_ID: getTarget().setGroup((List<AGroupFeatureGroup>) value); return; case NestedgroupModelPackage.A_B_FEATURE_ID: getTarget().setB((List<String>) value); return; case NestedgroupModelPackage.A_C_FEATURE_ID: getTarget().setC((List<CType>) value); return; default: super.eSet(eStructuralFeature, value); } } /** * @generated */ @Override public boolean eAddTo(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.A_GROUP_FEATURE_ID: return getTarget().getGroup().add((AGroupFeatureGroup) value); case NestedgroupModelPackage.A_B_FEATURE_ID: return getTarget().getB().add((String) value); case NestedgroupModelPackage.A_C_FEATURE_ID: return getTarget().getC().add((CType) value); default: return super.eAddTo(eStructuralFeature, value); } } /** * @generated */ @Override public boolean eRemoveFrom(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.A_GROUP_FEATURE_ID: return getTarget().getGroup().remove(value); case NestedgroupModelPackage.A_B_FEATURE_ID: return getTarget().getB().remove(value); case NestedgroupModelPackage.A_C_FEATURE_ID: return getTarget().getC().remove(value); default: return super.eRemoveFrom(eStructuralFeature, value); } } } /** * The adapter/wrapper for the EClass '<em><b>CType</b></em>'. * * <!-- begin-user-doc --> <!-- end-user-doc --> * * @param <E> * the domain model java class * * @generated */ public static class CTypeModelObject<E extends CType> extends IdentifiableModelFactory.IdentifiableModelObject<E> { /** * @generated */ @Override public EClass eClass() { return NestedgroupModelPackage.INSTANCE.getCTypeEClass(); } /** * @generated */ @Override public ModelPackage getModelPackage() { return NestedgroupModelPackage.INSTANCE; } /** * @generated */ @Override public Class<?> getTargetClass() { return CType.class; } /** * @generated */ @Override public Object eGet(EStructuralFeature eStructuralFeature) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.CTYPE_DB_ID_FEATURE_ID: return getTarget().getDb_Id(); case NestedgroupModelPackage.CTYPE_DB_VERSION_FEATURE_ID: return getTarget().getDb_version(); case NestedgroupModelPackage.CTYPE_CNAME_FEATURE_ID: return getTarget().getCname(); case NestedgroupModelPackage.CTYPE_CVALUE_FEATURE_ID: return getTarget().getCvalue(); default: return super.eGet(eStructuralFeature); } } /** * @generated */ @Override public void eSet(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.CTYPE_CNAME_FEATURE_ID: getTarget().setCname((String) value); return; case NestedgroupModelPackage.CTYPE_CVALUE_FEATURE_ID: getTarget().setCvalue((Double) value); return; default: super.eSet(eStructuralFeature, value); } } /** * @generated */ @Override public boolean eAddTo(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { default: return super.eAddTo(eStructuralFeature, value); } } /** * @generated */ @Override public boolean eRemoveFrom(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { default: return super.eRemoveFrom(eStructuralFeature, value); } } } /** * The adapter/wrapper for the EClass '<em><b>Element</b></em>'. * * <!-- begin-user-doc --> <!-- end-user-doc --> * * @param <E> * the domain model java class * * @generated */ public static class ElementModelObject<E extends Element> extends IdentifiableModelFactory.IdentifiableModelObject<E> { /** * @generated */ @Override public EClass eClass() { return NestedgroupModelPackage.INSTANCE.getElementEClass(); } /** * @generated */ @Override public ModelPackage getModelPackage() { return NestedgroupModelPackage.INSTANCE; } /** * @generated */ @Override public Class<?> getTargetClass() { return Element.class; } /** * @generated */ @Override public Object eGet(EStructuralFeature eStructuralFeature) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.ELEMENT_DB_ID_FEATURE_ID: return getTarget().getDb_Id(); case NestedgroupModelPackage.ELEMENT_DB_VERSION_FEATURE_ID: return getTarget().getDb_version(); case NestedgroupModelPackage.ELEMENT_MIXED_FEATURE_ID: return getTarget().getMixed(); case NestedgroupModelPackage.ELEMENT_NAME_FEATURE_ID: return getTarget().getName(); case NestedgroupModelPackage.ELEMENT_TRUE__FEATURE_ID: return getTarget().getTrue_(); case NestedgroupModelPackage.ELEMENT_C_FEATURE_ID: return getTarget().getC(); case NestedgroupModelPackage.ELEMENT_RECURSIVE_FEATURE_ID: return getTarget().getRecursive(); default: return super.eGet(eStructuralFeature); } } /** * @generated */ @SuppressWarnings("unchecked") @Override public void eSet(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.ELEMENT_MIXED_FEATURE_ID: getTarget().setMixed((List<ElementMixedFeatureGroup>) value); return; case NestedgroupModelPackage.ELEMENT_NAME_FEATURE_ID: getTarget().setName((String) value); return; case NestedgroupModelPackage.ELEMENT_TRUE__FEATURE_ID: getTarget().setTrue_((List<ElementTrue_FeatureGroup>) value); return; case NestedgroupModelPackage.ELEMENT_C_FEATURE_ID: getTarget().setC((List<CType>) value); return; case NestedgroupModelPackage.ELEMENT_RECURSIVE_FEATURE_ID: getTarget().setRecursive((Element) value); return; default: super.eSet(eStructuralFeature, value); } } /** * @generated */ @Override public boolean eAddTo(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.ELEMENT_MIXED_FEATURE_ID: return getTarget().getMixed().add((ElementMixedFeatureGroup) value); case NestedgroupModelPackage.ELEMENT_TRUE__FEATURE_ID: return getTarget().getTrue_().add((ElementTrue_FeatureGroup) value); case NestedgroupModelPackage.ELEMENT_C_FEATURE_ID: return getTarget().getC().add((CType) value); default: return super.eAddTo(eStructuralFeature, value); } } /** * @generated */ @Override public boolean eRemoveFrom(EStructuralFeature eStructuralFeature, Object value) { final int featureID = eClass().getFeatureID(eStructuralFeature); switch (featureID) { case NestedgroupModelPackage.ELEMENT_MIXED_FEATURE_ID: return getTarget().getMixed().remove(value); case NestedgroupModelPackage.ELEMENT_TRUE__FEATURE_ID: return getTarget().getTrue_().remove(value); case NestedgroupModelPackage.ELEMENT_C_FEATURE_ID: return getTarget().getC().remove(value); default: return super.eRemoveFrom(eStructuralFeature, value); } } } /** * The wrapper/adapter for the Feature Group '<em><b>A.group</b></em>'. * * @param <E> * the Feature Group class * @generated */ public static class AGroupFeatureGroupModelFeatureMapEntry<E extends AGroupFeatureGroup> extends AbstractModelFeatureMapEntry<AGroupFeatureGroup> { /** * @generated */ public EStructuralFeature getEStructuralFeature() { switch (getTarget().getFeature()) { case B: return NestedgroupModelPackage.INSTANCE.getA_B(); case C: return NestedgroupModelPackage.INSTANCE.getA_C(); default: throw new IllegalArgumentException("No eStructuralFeature for feature kind " + getTarget().getFeature()); } } /** * @generated */ public void setEStructuralFeature(final EStructuralFeature eStructuralFeature) { final EClass eClass = NestedgroupModelPackage.INSTANCE.getAEClass(); switch (eClass.getFeatureID(eStructuralFeature)) { case NestedgroupModelPackage.A_B_FEATURE_ID: getTarget().setFeature(AGroupFeatureGroup.Feature.B); return; case NestedgroupModelPackage.A_C_FEATURE_ID: getTarget().setFeature(AGroupFeatureGroup.Feature.C); return; default: throw new IllegalArgumentException("EStructuralFeature " + eStructuralFeature + " not supported here"); } } /** * @generated */ public Object getValue() { return getTarget().getValue(); } /** * @generated */ public void setValue(final Object value) { getTarget().setValue(getTarget().getFeature(), value); } } /** * The wrapper/adapter for the Feature Group '<em><b>Element.mixed</b></em>'. * * @param <E> * the Feature Group class * @generated */ public static class ElementMixedFeatureGroupModelFeatureMapEntry<E extends ElementMixedFeatureGroup> extends AbstractModelFeatureMapEntry<ElementMixedFeatureGroup> { /** * @generated */ public EStructuralFeature getEStructuralFeature() { switch (getTarget().getFeature()) { case TEXT: return XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Text(); case CDATA: return XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_CDATA(); case COMMENT: return XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Comment(); case NAME: return NestedgroupModelPackage.INSTANCE.getElement_Name(); case TRUE_: return NestedgroupModelPackage.INSTANCE.getElement_True_(); case C: return NestedgroupModelPackage.INSTANCE.getElement_C(); case RECURSIVE: return NestedgroupModelPackage.INSTANCE.getElement_Recursive(); default: throw new IllegalArgumentException("No eStructuralFeature for feature kind " + getTarget().getFeature()); } } /** * @generated */ public void setEStructuralFeature(final EStructuralFeature eStructuralFeature) { if (eStructuralFeature == XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Text()) { getTarget().setFeature(ElementMixedFeatureGroup.Feature.TEXT); return; } else if (eStructuralFeature == XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_CDATA()) { getTarget().setFeature(ElementMixedFeatureGroup.Feature.CDATA); return; } else if (eStructuralFeature == XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Comment()) { getTarget().setFeature(ElementMixedFeatureGroup.Feature.COMMENT); return; } final EClass eClass = NestedgroupModelPackage.INSTANCE.getElementEClass(); switch (eClass.getFeatureID(eStructuralFeature)) { case NestedgroupModelPackage.ELEMENT_NAME_FEATURE_ID: getTarget().setFeature(ElementMixedFeatureGroup.Feature.NAME); return; case NestedgroupModelPackage.ELEMENT_TRUE__FEATURE_ID: getTarget().setFeature(ElementMixedFeatureGroup.Feature.TRUE_); return; case NestedgroupModelPackage.ELEMENT_C_FEATURE_ID: getTarget().setFeature(ElementMixedFeatureGroup.Feature.C); return; case NestedgroupModelPackage.ELEMENT_RECURSIVE_FEATURE_ID: getTarget().setFeature(ElementMixedFeatureGroup.Feature.RECURSIVE); return; default: throw new IllegalArgumentException("EStructuralFeature " + eStructuralFeature + " not supported here"); } } /** * @generated */ public Object getValue() { return getTarget().getValue(); } /** * @generated */ public void setValue(final Object value) { getTarget().setValue(getTarget().getFeature(), value); } } /** * The wrapper/adapter for the Feature Group '<em><b>Element.true_</b></em>'. * * @param <E> * the Feature Group class * @generated */ public static class ElementTrue_FeatureGroupModelFeatureMapEntry<E extends ElementTrue_FeatureGroup> extends AbstractModelFeatureMapEntry<ElementTrue_FeatureGroup> { /** * @generated */ public EStructuralFeature getEStructuralFeature() { switch (getTarget().getFeature()) { case C: return NestedgroupModelPackage.INSTANCE.getElement_C(); default: throw new IllegalArgumentException("No eStructuralFeature for feature kind " + getTarget().getFeature()); } } /** * @generated */ public void setEStructuralFeature(final EStructuralFeature eStructuralFeature) { final EClass eClass = NestedgroupModelPackage.INSTANCE.getElementEClass(); switch (eClass.getFeatureID(eStructuralFeature)) { case NestedgroupModelPackage.ELEMENT_C_FEATURE_ID: getTarget().setFeature(ElementTrue_FeatureGroup.Feature.C); return; default: throw new IllegalArgumentException("EStructuralFeature " + eStructuralFeature + " not supported here"); } } /** * @generated */ public Object getValue() { return getTarget().getValue(); } /** * @generated */ public void setValue(final Object value) { getTarget().setValue(getTarget().getFeature(), value); } } }