/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.metamodels.xml.impl; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.xsd.XSDComponent; import org.teiid.designer.metamodels.xml.BuildStatus; import org.teiid.designer.metamodels.xml.XmlBuildable; import org.teiid.designer.metamodels.xml.XmlDocumentNode; import org.teiid.designer.metamodels.xml.XmlDocumentPackage; import org.teiid.designer.metamodels.xml.XmlNamespace; import org.teiid.designer.metamodels.xsd.XsdUtil; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Node</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.teiid.designer.metamodels.xml.impl.XmlDocumentNodeImpl#getBuildState <em>Build State</em>}</li> * <li>{@link org.teiid.designer.metamodels.xml.impl.XmlDocumentNodeImpl#getName <em>Name</em>}</li> * <li>{@link org.teiid.designer.metamodels.xml.impl.XmlDocumentNodeImpl#isExcludeFromDocument <em>Exclude From Document</em>}</li> * <li>{@link org.teiid.designer.metamodels.xml.impl.XmlDocumentNodeImpl#getMinOccurs <em>Min Occurs</em>}</li> * <li>{@link org.teiid.designer.metamodels.xml.impl.XmlDocumentNodeImpl#getMaxOccurs <em>Max Occurs</em>}</li> * <li>{@link org.teiid.designer.metamodels.xml.impl.XmlDocumentNodeImpl#getXsdComponent <em>Xsd Component</em>}</li> * <li>{@link org.teiid.designer.metamodels.xml.impl.XmlDocumentNodeImpl#getNamespace <em>Namespace</em>}</li> * </ul> * </p> * * @generated * * @since 8.0 */ public abstract class XmlDocumentNodeImpl extends XmlDocumentEntityImpl implements XmlDocumentNode { /** * The default value of the '{@link #getBuildState() <em>Build State</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getBuildState() * @generated * @ordered */ protected static final BuildStatus BUILD_STATE_EDEFAULT = BuildStatus.COMPLETE_LITERAL; /** * The cached value of the '{@link #getBuildState() <em>Build State</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getBuildState() * @generated * @ordered */ protected BuildStatus buildState = BUILD_STATE_EDEFAULT; /** * The default value of the '{@link #getName() <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getName() * @generated * @ordered */ protected static final String NAME_EDEFAULT = null; /** * The cached value of the '{@link #getName() <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getName() * @generated * @ordered */ protected String name = NAME_EDEFAULT; /** * The default value of the '{@link #isExcludeFromDocument() <em>Exclude From Document</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #isExcludeFromDocument() * @generated * @ordered */ protected static final boolean EXCLUDE_FROM_DOCUMENT_EDEFAULT = false; /** * The cached value of the '{@link #isExcludeFromDocument() <em>Exclude From Document</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #isExcludeFromDocument() * @generated * @ordered */ protected boolean excludeFromDocument = EXCLUDE_FROM_DOCUMENT_EDEFAULT; /** * The default value of the '{@link #getMinOccurs() <em>Min Occurs</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getMinOccurs() * @generated * @ordered */ protected static final int MIN_OCCURS_EDEFAULT = 1; /** * The default value of the '{@link #getMaxOccurs() <em>Max Occurs</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getMaxOccurs() * @generated * @ordered */ protected static final int MAX_OCCURS_EDEFAULT = 1; /** * The cached value of the '{@link #getXsdComponent() <em>Xsd Component</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getXsdComponent() * @generated * @ordered */ protected XSDComponent xsdComponent = null; /** * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getNamespace() * @generated * @ordered */ protected XmlNamespace namespace = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected XmlDocumentNodeImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return XmlDocumentPackage.eINSTANCE.getXmlDocumentNode(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public BuildStatus getBuildState() { return buildState; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void setBuildState(BuildStatus newBuildState) { BuildStatus oldBuildState = buildState; buildState = newBuildState == null ? BUILD_STATE_EDEFAULT : newBuildState; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, XmlDocumentPackage.XML_DOCUMENT_NODE__BUILD_STATE, oldBuildState, buildState)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public String getName() { return name; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void setName(String newName) { String oldName = name; name = newName; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, XmlDocumentPackage.XML_DOCUMENT_NODE__NAME, oldName, name)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean isExcludeFromDocument() { return excludeFromDocument; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void setExcludeFromDocument(boolean newExcludeFromDocument) { boolean oldExcludeFromDocument = excludeFromDocument; excludeFromDocument = newExcludeFromDocument; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, XmlDocumentPackage.XML_DOCUMENT_NODE__EXCLUDE_FROM_DOCUMENT, oldExcludeFromDocument, excludeFromDocument)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public XSDComponent getXsdComponent() { if (xsdComponent != null && xsdComponent.eIsProxy()) { XSDComponent oldXsdComponent = xsdComponent; xsdComponent = (XSDComponent)eResolveProxy((InternalEObject)xsdComponent); if (xsdComponent != oldXsdComponent) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, XmlDocumentPackage.XML_DOCUMENT_NODE__XSD_COMPONENT, oldXsdComponent, xsdComponent)); } } return xsdComponent; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public XSDComponent basicGetXsdComponent() { return xsdComponent; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void setXsdComponent(XSDComponent newXsdComponent) { XSDComponent oldXsdComponent = xsdComponent; xsdComponent = newXsdComponent; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, XmlDocumentPackage.XML_DOCUMENT_NODE__XSD_COMPONENT, oldXsdComponent, xsdComponent)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public XmlNamespace getNamespace() { if (namespace != null && namespace.eIsProxy()) { XmlNamespace oldNamespace = namespace; namespace = (XmlNamespace)eResolveProxy((InternalEObject)namespace); if (namespace != oldNamespace) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, XmlDocumentPackage.XML_DOCUMENT_NODE__NAMESPACE, oldNamespace, namespace)); } } return namespace; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public XmlNamespace basicGetNamespace() { return namespace; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void setNamespace(XmlNamespace newNamespace) { XmlNamespace oldNamespace = namespace; namespace = newNamespace; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, XmlDocumentPackage.XML_DOCUMENT_NODE__NAMESPACE, oldNamespace, namespace)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ @Override public int getMinOccurs() { final XSDComponent schemaComp = this.getXsdComponent(); if ( schemaComp != null ) { return XsdUtil.getMinOccurs(schemaComp); } return MIN_OCCURS_EDEFAULT; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ @Override public int getMaxOccurs() { final XSDComponent schemaComp = this.getXsdComponent(); if ( schemaComp != null ) { return XsdUtil.getMaxOccurs(schemaComp); } return MAX_OCCURS_EDEFAULT; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Object eGet(EStructuralFeature eFeature, boolean resolve) { switch (eDerivedStructuralFeatureID(eFeature)) { case XmlDocumentPackage.XML_DOCUMENT_NODE__BUILD_STATE: return getBuildState(); case XmlDocumentPackage.XML_DOCUMENT_NODE__NAME: return getName(); case XmlDocumentPackage.XML_DOCUMENT_NODE__EXCLUDE_FROM_DOCUMENT: return isExcludeFromDocument() ? Boolean.TRUE : Boolean.FALSE; case XmlDocumentPackage.XML_DOCUMENT_NODE__MIN_OCCURS: return new Integer(getMinOccurs()); case XmlDocumentPackage.XML_DOCUMENT_NODE__MAX_OCCURS: return new Integer(getMaxOccurs()); case XmlDocumentPackage.XML_DOCUMENT_NODE__XSD_COMPONENT: if (resolve) return getXsdComponent(); return basicGetXsdComponent(); case XmlDocumentPackage.XML_DOCUMENT_NODE__NAMESPACE: if (resolve) return getNamespace(); return basicGetNamespace(); } return eDynamicGet(eFeature, resolve); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eSet(EStructuralFeature eFeature, Object newValue) { switch (eDerivedStructuralFeatureID(eFeature)) { case XmlDocumentPackage.XML_DOCUMENT_NODE__BUILD_STATE: setBuildState((BuildStatus)newValue); return; case XmlDocumentPackage.XML_DOCUMENT_NODE__NAME: setName((String)newValue); return; case XmlDocumentPackage.XML_DOCUMENT_NODE__EXCLUDE_FROM_DOCUMENT: setExcludeFromDocument(((Boolean)newValue).booleanValue()); return; case XmlDocumentPackage.XML_DOCUMENT_NODE__XSD_COMPONENT: setXsdComponent((XSDComponent)newValue); return; case XmlDocumentPackage.XML_DOCUMENT_NODE__NAMESPACE: setNamespace((XmlNamespace)newValue); return; } eDynamicSet(eFeature, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(EStructuralFeature eFeature) { switch (eDerivedStructuralFeatureID(eFeature)) { case XmlDocumentPackage.XML_DOCUMENT_NODE__BUILD_STATE: setBuildState(BUILD_STATE_EDEFAULT); return; case XmlDocumentPackage.XML_DOCUMENT_NODE__NAME: setName(NAME_EDEFAULT); return; case XmlDocumentPackage.XML_DOCUMENT_NODE__EXCLUDE_FROM_DOCUMENT: setExcludeFromDocument(EXCLUDE_FROM_DOCUMENT_EDEFAULT); return; case XmlDocumentPackage.XML_DOCUMENT_NODE__XSD_COMPONENT: setXsdComponent((XSDComponent)null); return; case XmlDocumentPackage.XML_DOCUMENT_NODE__NAMESPACE: setNamespace((XmlNamespace)null); return; } eDynamicUnset(eFeature); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(EStructuralFeature eFeature) { switch (eDerivedStructuralFeatureID(eFeature)) { case XmlDocumentPackage.XML_DOCUMENT_NODE__BUILD_STATE: return buildState != BUILD_STATE_EDEFAULT; case XmlDocumentPackage.XML_DOCUMENT_NODE__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); case XmlDocumentPackage.XML_DOCUMENT_NODE__EXCLUDE_FROM_DOCUMENT: return excludeFromDocument != EXCLUDE_FROM_DOCUMENT_EDEFAULT; case XmlDocumentPackage.XML_DOCUMENT_NODE__MIN_OCCURS: return getMinOccurs() != MIN_OCCURS_EDEFAULT; case XmlDocumentPackage.XML_DOCUMENT_NODE__MAX_OCCURS: return getMaxOccurs() != MAX_OCCURS_EDEFAULT; case XmlDocumentPackage.XML_DOCUMENT_NODE__XSD_COMPONENT: return xsdComponent != null; case XmlDocumentPackage.XML_DOCUMENT_NODE__NAMESPACE: return namespace != null; } return eDynamicIsSet(eFeature); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { if (baseClass == XmlBuildable.class) { switch (derivedFeatureID) { case XmlDocumentPackage.XML_DOCUMENT_NODE__BUILD_STATE: return XmlDocumentPackage.XML_BUILDABLE__BUILD_STATE; default: return -1; } } return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { if (baseClass == XmlBuildable.class) { switch (baseFeatureID) { case XmlDocumentPackage.XML_BUILDABLE__BUILD_STATE: return XmlDocumentPackage.XML_DOCUMENT_NODE__BUILD_STATE; default: return -1; } } return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (buildState: "); //$NON-NLS-1$ result.append(buildState); result.append(", name: "); //$NON-NLS-1$ result.append(name); result.append(", excludeFromDocument: "); //$NON-NLS-1$ result.append(excludeFromDocument); result.append(')'); return result.toString(); } } //XmlDocumentNodeImpl