blob: 735531cf811f8d9a42900b21db70cd1a06704382 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2007 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0, which accompanies this distribution and is available at
* http://www.eclipse.org/legal/epl-v10.html.
*
* Contributors:
* Oracle - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.core.internal.content.orm;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.EObjectEList;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.jpt.core.internal.IMappingKeys;
import org.eclipse.jpt.core.internal.IPersistentAttribute;
import org.eclipse.jpt.core.internal.IPersistentType;
import org.eclipse.jpt.core.internal.ITextRange;
import org.eclipse.jpt.core.internal.ITypeMapping;
import org.eclipse.jpt.core.internal.jdtutility.Type;
import org.eclipse.jpt.core.internal.mappings.IAssociationOverride;
import org.eclipse.jpt.core.internal.mappings.IAttributeOverride;
import org.eclipse.jpt.core.internal.mappings.IDiscriminatorColumn;
import org.eclipse.jpt.core.internal.mappings.IEntity;
import org.eclipse.jpt.core.internal.mappings.INamedNativeQuery;
import org.eclipse.jpt.core.internal.mappings.INamedQuery;
import org.eclipse.jpt.core.internal.mappings.IOverride;
import org.eclipse.jpt.core.internal.mappings.IPrimaryKeyJoinColumn;
import org.eclipse.jpt.core.internal.mappings.ISecondaryTable;
import org.eclipse.jpt.core.internal.mappings.ISequenceGenerator;
import org.eclipse.jpt.core.internal.mappings.ITable;
import org.eclipse.jpt.core.internal.mappings.ITableGenerator;
import org.eclipse.jpt.core.internal.mappings.InheritanceType;
import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage;
import org.eclipse.jpt.core.internal.platform.BaseJpaPlatform;
import org.eclipse.jpt.core.internal.platform.DefaultsContext;
import org.eclipse.jpt.db.internal.Schema;
import org.eclipse.jpt.db.internal.Table;
import org.eclipse.jpt.utility.internal.CollectionTools;
import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Xml Entity</b></em>'.
* <!-- end-user-doc -->
*
*
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlEntityInternal()
* @model kind="class"
* @generated
*/
public class XmlEntityInternal extends XmlTypeMapping
implements XmlEntityForXml, XmlEntity
{
/**
* The cached value of the '{@link #getIdClassForXml() <em>Id Class For Xml</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getIdClassForXml()
* @generated
* @ordered
*/
protected XmlIdClass idClassForXml;
/**
* The cached value of the '{@link #getInheritanceForXml() <em>Inheritance For Xml</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getInheritanceForXml()
* @generated
* @ordered
*/
protected XmlInheritance inheritanceForXml;
/**
* The default value of the '{@link #getSpecifiedName() <em>Specified Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSpecifiedName()
* @generated
* @ordered
*/
protected static final String SPECIFIED_NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getSpecifiedName() <em>Specified Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSpecifiedName()
* @generated
* @ordered
*/
protected String specifiedName = SPECIFIED_NAME_EDEFAULT;
/**
* The default value of the '{@link #getDefaultName() <em>Default Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDefaultName()
* @generated
* @ordered
*/
protected static final String DEFAULT_NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getDefaultName() <em>Default Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDefaultName()
* @generated
* @ordered
*/
protected String defaultName = DEFAULT_NAME_EDEFAULT;
/**
* The cached value of the '{@link #getTable() <em>Table</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTable()
* @generated
* @ordered
*/
protected ITable table;
/**
* The cached value of the '{@link #getSpecifiedSecondaryTables() <em>Specified Secondary Tables</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSpecifiedSecondaryTables()
* @generated
* @ordered
*/
protected EList<ISecondaryTable> specifiedSecondaryTables;
/**
* The cached value of the '{@link #getSpecifiedPrimaryKeyJoinColumns() <em>Specified Primary Key Join Columns</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSpecifiedPrimaryKeyJoinColumns()
* @generated
* @ordered
*/
protected EList<IPrimaryKeyJoinColumn> specifiedPrimaryKeyJoinColumns;
/**
* The cached value of the '{@link #getDefaultPrimaryKeyJoinColumns() <em>Default Primary Key Join Columns</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDefaultPrimaryKeyJoinColumns()
* @generated
* @ordered
*/
protected EList<IPrimaryKeyJoinColumn> defaultPrimaryKeyJoinColumns;
/**
* The default value of the '{@link #getInheritanceStrategy() <em>Inheritance Strategy</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getInheritanceStrategy()
* @generated
* @ordered
*/
protected static final InheritanceType INHERITANCE_STRATEGY_EDEFAULT = InheritanceType.DEFAULT;
/**
* The cached value of the '{@link #getInheritanceStrategy() <em>Inheritance Strategy</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getInheritanceStrategy()
* @generated
* @ordered
*/
protected InheritanceType inheritanceStrategy = INHERITANCE_STRATEGY_EDEFAULT;
/**
* The default value of the '{@link #getDefaultDiscriminatorValue() <em>Default Discriminator Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDefaultDiscriminatorValue()
* @generated
* @ordered
*/
protected static final String DEFAULT_DISCRIMINATOR_VALUE_EDEFAULT = null;
/**
* The cached value of the '{@link #getDefaultDiscriminatorValue() <em>Default Discriminator Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDefaultDiscriminatorValue()
* @generated
* @ordered
*/
protected String defaultDiscriminatorValue = DEFAULT_DISCRIMINATOR_VALUE_EDEFAULT;
/**
* The default value of the '{@link #getSpecifiedDiscriminatorValue() <em>Specified Discriminator Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSpecifiedDiscriminatorValue()
* @generated
* @ordered
*/
protected static final String SPECIFIED_DISCRIMINATOR_VALUE_EDEFAULT = null;
/**
* The cached value of the '{@link #getSpecifiedDiscriminatorValue() <em>Specified Discriminator Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSpecifiedDiscriminatorValue()
* @generated
* @ordered
*/
protected String specifiedDiscriminatorValue = SPECIFIED_DISCRIMINATOR_VALUE_EDEFAULT;
/**
* The default value of the '{@link #getDiscriminatorValue() <em>Discriminator Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDiscriminatorValue()
* @generated
* @ordered
*/
protected static final String DISCRIMINATOR_VALUE_EDEFAULT = null;
/**
* The cached value of the '{@link #getDiscriminatorColumn() <em>Discriminator Column</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDiscriminatorColumn()
* @generated
* @ordered
*/
protected IDiscriminatorColumn discriminatorColumn;
/**
* The cached value of the '{@link #getSequenceGenerator() <em>Sequence Generator</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSequenceGenerator()
* @generated
* @ordered
*/
protected ISequenceGenerator sequenceGenerator;
/**
* The cached value of the '{@link #getTableGenerator() <em>Table Generator</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTableGenerator()
* @generated
* @ordered
*/
protected ITableGenerator tableGenerator;
/**
* The cached value of the '{@link #getSpecifiedAttributeOverrides() <em>Specified Attribute Overrides</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSpecifiedAttributeOverrides()
* @generated
* @ordered
*/
protected EList<IAttributeOverride> specifiedAttributeOverrides;
/**
* The cached value of the '{@link #getDefaultAttributeOverrides() <em>Default Attribute Overrides</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDefaultAttributeOverrides()
* @generated
* @ordered
*/
protected EList<IAttributeOverride> defaultAttributeOverrides;
/**
* The cached value of the '{@link #getSpecifiedAssociationOverrides() <em>Specified Association Overrides</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSpecifiedAssociationOverrides()
* @generated
* @ordered
*/
protected EList<IAssociationOverride> specifiedAssociationOverrides;
/**
* The cached value of the '{@link #getDefaultAssociationOverrides() <em>Default Association Overrides</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDefaultAssociationOverrides()
* @generated
* @ordered
*/
protected EList<IAssociationOverride> defaultAssociationOverrides;
/**
* The cached value of the '{@link #getNamedQueries() <em>Named Queries</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNamedQueries()
* @generated
* @ordered
*/
protected EList<INamedQuery> namedQueries;
/**
* The cached value of the '{@link #getNamedNativeQueries() <em>Named Native Queries</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNamedNativeQueries()
* @generated
* @ordered
*/
protected EList<INamedNativeQuery> namedNativeQueries;
/**
* The default value of the '{@link #getIdClass() <em>Id Class</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getIdClass()
* @generated
* @ordered
*/
protected static final String ID_CLASS_EDEFAULT = null;
/**
* The cached value of the '{@link #getIdClass() <em>Id Class</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getIdClass()
* @generated
* @ordered
*/
protected String idClass = ID_CLASS_EDEFAULT;
/**
* The cached value of the '{@link #getVirtualSecondaryTables() <em>Virtual Secondary Tables</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getVirtualSecondaryTables()
* @generated
* @ordered
*/
protected EList<ISecondaryTable> virtualSecondaryTables;
protected XmlEntityInternal() {
super();
this.table = OrmFactory.eINSTANCE.createXmlTable(buildTableOwner());
((InternalEObject) this.table).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__TABLE, null, null);
this.discriminatorColumn = OrmFactory.eINSTANCE.createXmlDiscriminatorColumn(new IDiscriminatorColumn.Owner(this));
((InternalEObject) this.discriminatorColumn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN, null, null);
this.getDefaultPrimaryKeyJoinColumns().add(this.createPrimaryKeyJoinColumn(0));
this.eAdapters().add(this.buildListener());
}
protected Adapter buildListener() {
return new AdapterImpl() {
@Override
public void notifyChanged(Notification notification) {
XmlEntityInternal.this.notifyChanged(notification);
}
};
}
protected void notifyChanged(Notification notification) {
switch (notification.getFeatureID(IEntity.class)) {
case JpaCoreMappingsPackage.IENTITY__ID_CLASS :
idClassChanged();
break;
case JpaCoreMappingsPackage.IENTITY__INHERITANCE_STRATEGY :
inheritanceStrategyChanged();
break;
default :
break;
}
switch (notification.getFeatureID(XmlEntityForXml.class)) {
case OrmPackage.XML_ENTITY_FOR_XML__ID_CLASS_FOR_XML :
xmlIdClassChanged();
break;
case OrmPackage.XML_ENTITY_FOR_XML__INHERITANCE_FOR_XML :
xmlInheritanceChanged();
break;
default :
break;
}
}
protected void inheritanceStrategyChanged() {
if (getInheritanceStrategy() == InheritanceType.DEFAULT) {
setInheritanceForXml(null);
}
else {
if (getInheritanceForXml() == null) {
setInheritanceForXml(OrmFactory.eINSTANCE.createXmlInheritance());
}
getInheritanceForXml().setStrategy(getInheritanceStrategy());
}
}
protected void xmlInheritanceChanged() {
if (getInheritanceForXml() == null) {
setInheritanceStrategy(null);
}
}
@Override
protected void addInsignificantFeatureIdsTo(Set<Integer> insignificantFeatureIds) {
super.addInsignificantFeatureIdsTo(insignificantFeatureIds);
insignificantFeatureIds.add(OrmPackage.XML_ENTITY_INTERNAL__SECONDARY_TABLES);
insignificantFeatureIds.add(OrmPackage.XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES);
insignificantFeatureIds.add(OrmPackage.XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES);
}
private ITable.Owner buildTableOwner() {
return new ITable.Owner() {
public ITextRange validationTextRange() {
return XmlEntityInternal.this.validationTextRange();
}
public ITypeMapping getTypeMapping() {
return XmlEntityInternal.this;
}
};
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return OrmPackage.Literals.XML_ENTITY_INTERNAL;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getName() {
return (this.getSpecifiedName() == null) ? getDefaultName() : this.getSpecifiedName();
}
/**
* Returns the value of the '<em><b>Specified Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the value of the '<em>Specified Name</em>' attribute.
* @see #setSpecifiedName(String)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_SpecifiedName()
* @model
* @generated
*/
public String getSpecifiedName() {
return specifiedName;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getSpecifiedName <em>Specified Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Specified Name</em>' attribute.
* @see #getSpecifiedName()
* @generated
*/
public void setSpecifiedName(String newSpecifiedName) {
String oldSpecifiedName = specifiedName;
specifiedName = newSpecifiedName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_NAME, oldSpecifiedName, specifiedName));
}
/**
* Returns the value of the '<em><b>Default Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the value of the '<em>Default Name</em>' attribute.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_DefaultName()
* @model changeable="false"
* @generated
*/
public String getDefaultName() {
return defaultName;
}
/**
* Returns the value of the '<em><b>Table</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Table</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Table</em>' containment reference.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_Table()
* @model containment="true" required="true" changeable="false"
* @generated
*/
public ITable getTable() {
return table;
}
private XmlTable getTableInternal() {
return (XmlTable) getTable();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetTable(ITable newTable, NotificationChain msgs) {
ITable oldTable = table;
table = newTable;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__TABLE, oldTable, newTable);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
/**
* Returns the value of the '<em><b>Secondary Tables</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.ISecondaryTable}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Secondary Tables</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Secondary Tables</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlEntity_SecondaryTables()
* @model type="org.eclipse.jpt.core.internal.mappings.ISecondaryTable" containment="true" transient="true" changeable="false" volatile="true"
* @generated NOT
*/
public EList<ISecondaryTable> getSecondaryTables() {
EList<ISecondaryTable> list = new EObjectEList<ISecondaryTable>(ISecondaryTable.class, this, OrmPackage.XML_ENTITY_INTERNAL__SECONDARY_TABLES);
list.addAll(getSpecifiedSecondaryTables());
list.addAll(getVirtualSecondaryTables());
return list;
}
/**
* Returns the value of the '<em><b>Virtual Secondary Tables</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.ISecondaryTable}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Virtual Secondary Tables</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Virtual Secondary Tables</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlEntity_VirtualSecondaryTables()
* @model containment="true"
* @generated
*/
public EList<ISecondaryTable> getVirtualSecondaryTables() {
if (virtualSecondaryTables == null) {
virtualSecondaryTables = new EObjectContainmentEList<ISecondaryTable>(ISecondaryTable.class, this, OrmPackage.XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES);
}
return virtualSecondaryTables;
}
protected void xmlIdClassChanged() {
if (getIdClassForXml() == null) {
setIdClass(null);
}
}
public boolean containsSecondaryTable(String name) {
return containsSecondaryTable(name, getSecondaryTables());
}
public boolean containsSpecifiedSecondaryTable(String name) {
return containsSecondaryTable(name, getSpecifiedSecondaryTables());
}
private boolean containsSecondaryTable(String name, List<ISecondaryTable> secondaryTables) {
for (ISecondaryTable secondaryTable : secondaryTables) {
String secondaryTableName = secondaryTable.getName();
if (secondaryTableName != null && secondaryTableName.equals(name)) {
return true;
}
}
return false;
}
/**
* Returns the value of the '<em><b>Specified Secondary Tables</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.ISecondaryTable}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Specified Secondary Tables</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Specified Secondary Tables</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_SpecifiedSecondaryTables()
* @model containment="true"
* @generated
*/
public EList<ISecondaryTable> getSpecifiedSecondaryTables() {
if (specifiedSecondaryTables == null) {
specifiedSecondaryTables = new EObjectContainmentEList<ISecondaryTable>(ISecondaryTable.class, this, OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES);
}
return specifiedSecondaryTables;
}
/**
* Returns the value of the '<em><b>Inheritance Strategy</b></em>' attribute.
* The literals are from the enumeration {@link org.eclipse.jpt.core.internal.mappings.InheritanceType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Inheritance Strategy</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Inheritance Strategy</em>' attribute.
* @see org.eclipse.jpt.core.internal.mappings.InheritanceType
* @see #setInheritanceStrategy(InheritanceType)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_InheritanceStrategy()
* @model
* @generated
*/
public InheritanceType getInheritanceStrategy() {
return inheritanceStrategy;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getInheritanceStrategy <em>Inheritance Strategy</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Inheritance Strategy</em>' attribute.
* @see org.eclipse.jpt.core.internal.mappings.InheritanceType
* @see #getInheritanceStrategy()
* @generated
*/
public void setInheritanceStrategy(InheritanceType newInheritanceStrategy) {
InheritanceType oldInheritanceStrategy = inheritanceStrategy;
inheritanceStrategy = newInheritanceStrategy == null ? INHERITANCE_STRATEGY_EDEFAULT : newInheritanceStrategy;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY, oldInheritanceStrategy, inheritanceStrategy));
}
// public void setInheritanceStrategy(InheritanceType newInheritanceStrategy) {
// setInheritanceStrategyGen(newInheritanceStrategy);
// if (newInheritanceStrategy != INHERITANCE_STRATEGY_EDEFAULT) {
// //makeInheritanceForXmlNonNull();
// }
// setInheritanceStrategyForXml(newInheritanceStrategy);
// if (isAllFeaturesUnset()) {
// //makeInheritanceForXmlNull();
// }
// }
/**
* Returns the value of the '<em><b>Discriminator Column</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Discriminator Column</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Discriminator Column</em>' containment reference.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_DiscriminatorColumn()
* @model containment="true" changeable="false"
* @generated
*/
public IDiscriminatorColumn getDiscriminatorColumn() {
return discriminatorColumn;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetDiscriminatorColumn(IDiscriminatorColumn newDiscriminatorColumn, NotificationChain msgs) {
IDiscriminatorColumn oldDiscriminatorColumn = discriminatorColumn;
discriminatorColumn = newDiscriminatorColumn;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN, oldDiscriminatorColumn, newDiscriminatorColumn);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
/**
* Returns the value of the '<em><b>Sequence Generator</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Sequence Generator</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Sequence Generator</em>' containment reference.
* @see #setSequenceGenerator(ISequenceGenerator)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_SequenceGenerator()
* @model containment="true"
* @generated
*/
public ISequenceGenerator getSequenceGenerator() {
return sequenceGenerator;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetSequenceGenerator(ISequenceGenerator newSequenceGenerator, NotificationChain msgs) {
ISequenceGenerator oldSequenceGenerator = sequenceGenerator;
sequenceGenerator = newSequenceGenerator;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR, oldSequenceGenerator, newSequenceGenerator);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getSequenceGenerator <em>Sequence Generator</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Sequence Generator</em>' containment reference.
* @see #getSequenceGenerator()
* @generated
*/
public void setSequenceGenerator(ISequenceGenerator newSequenceGenerator) {
if (newSequenceGenerator != sequenceGenerator) {
NotificationChain msgs = null;
if (sequenceGenerator != null)
msgs = ((InternalEObject) sequenceGenerator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR, null, msgs);
if (newSequenceGenerator != null)
msgs = ((InternalEObject) newSequenceGenerator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR, null, msgs);
msgs = basicSetSequenceGenerator(newSequenceGenerator, msgs);
if (msgs != null)
msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR, newSequenceGenerator, newSequenceGenerator));
}
/**
* Returns the value of the '<em><b>Table Generator</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Table Generator</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Table Generator</em>' containment reference.
* @see #setTableGenerator(ITableGenerator)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_TableGenerator()
* @model containment="true"
* @generated
*/
public ITableGenerator getTableGenerator() {
return tableGenerator;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetTableGenerator(ITableGenerator newTableGenerator, NotificationChain msgs) {
ITableGenerator oldTableGenerator = tableGenerator;
tableGenerator = newTableGenerator;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR, oldTableGenerator, newTableGenerator);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getTableGenerator <em>Table Generator</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Table Generator</em>' containment reference.
* @see #getTableGenerator()
* @generated
*/
public void setTableGenerator(ITableGenerator newTableGenerator) {
if (newTableGenerator != tableGenerator) {
NotificationChain msgs = null;
if (tableGenerator != null)
msgs = ((InternalEObject) tableGenerator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR, null, msgs);
if (newTableGenerator != null)
msgs = ((InternalEObject) newTableGenerator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR, null, msgs);
msgs = basicSetTableGenerator(newTableGenerator, msgs);
if (msgs != null)
msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR, newTableGenerator, newTableGenerator));
}
/**
* Returns the value of the '<em><b>Default Discriminator Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Default Discriminator Value</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Default Discriminator Value</em>' attribute.
* @see #setDefaultDiscriminatorValue(String)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_DefaultDiscriminatorValue()
* @model
* @generated
*/
public String getDefaultDiscriminatorValue() {
return defaultDiscriminatorValue;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getDefaultDiscriminatorValue <em>Default Discriminator Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Default Discriminator Value</em>' attribute.
* @see #getDefaultDiscriminatorValue()
* @generated
*/
public void setDefaultDiscriminatorValue(String newDefaultDiscriminatorValue) {
String oldDefaultDiscriminatorValue = defaultDiscriminatorValue;
defaultDiscriminatorValue = newDefaultDiscriminatorValue;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE, oldDefaultDiscriminatorValue, defaultDiscriminatorValue));
}
/**
* Returns the value of the '<em><b>Specified Discriminator Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Specified Discriminator Value</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Specified Discriminator Value</em>' attribute.
* @see #setSpecifiedDiscriminatorValue(String)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_SpecifiedDiscriminatorValue()
* @model
* @generated
*/
public String getSpecifiedDiscriminatorValue() {
return specifiedDiscriminatorValue;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getSpecifiedDiscriminatorValue <em>Specified Discriminator Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Specified Discriminator Value</em>' attribute.
* @see #getSpecifiedDiscriminatorValue()
* @generated
*/
public void setSpecifiedDiscriminatorValue(String newSpecifiedDiscriminatorValue) {
String oldSpecifiedDiscriminatorValue = specifiedDiscriminatorValue;
specifiedDiscriminatorValue = newSpecifiedDiscriminatorValue;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE, oldSpecifiedDiscriminatorValue, specifiedDiscriminatorValue));
}
/**
* Returns the value of the '<em><b>Discriminator Value</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Discriminator Value</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Discriminator Value</em>' attribute.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_DiscriminatorValue()
* @model transient="true" changeable="false" volatile="true" derived="true"
* @generated NOT
*/
public String getDiscriminatorValue() {
return (this.getSpecifiedDiscriminatorValue() == null) ? getDefaultDiscriminatorValue() : this.getSpecifiedDiscriminatorValue();
}
public EList<IPrimaryKeyJoinColumn> getPrimaryKeyJoinColumns() {
return this.getSpecifiedPrimaryKeyJoinColumns().isEmpty() ? this.getDefaultPrimaryKeyJoinColumns() : this.getSpecifiedPrimaryKeyJoinColumns();
}
/**
* Returns the value of the '<em><b>Specified Primary Key Join Columns</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.IPrimaryKeyJoinColumn}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Specified Primary Key Join Columns</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Specified Primary Key Join Columns</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_SpecifiedPrimaryKeyJoinColumns()
* @model containment="true"
* @generated
*/
public EList<IPrimaryKeyJoinColumn> getSpecifiedPrimaryKeyJoinColumns() {
if (specifiedPrimaryKeyJoinColumns == null) {
specifiedPrimaryKeyJoinColumns = new EObjectContainmentEList<IPrimaryKeyJoinColumn>(IPrimaryKeyJoinColumn.class, this, OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS);
}
return specifiedPrimaryKeyJoinColumns;
}
/**
* Returns the value of the '<em><b>Default Primary Key Join Columns</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.IPrimaryKeyJoinColumn}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Default Primary Key Join Columns</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Default Primary Key Join Columns</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_DefaultPrimaryKeyJoinColumns()
* @model containment="true"
* @generated
*/
public EList<IPrimaryKeyJoinColumn> getDefaultPrimaryKeyJoinColumns() {
if (defaultPrimaryKeyJoinColumns == null) {
defaultPrimaryKeyJoinColumns = new EObjectContainmentEList<IPrimaryKeyJoinColumn>(IPrimaryKeyJoinColumn.class, this, OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS);
}
return defaultPrimaryKeyJoinColumns;
}
public EList<IAttributeOverride> getAttributeOverrides() {
EList<IAttributeOverride> list = new EObjectEList<IAttributeOverride>(IAttributeOverride.class, this, OrmPackage.XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES);
list.addAll(getSpecifiedAttributeOverrides());
list.addAll(getDefaultAttributeOverrides());
return list;
}
/**
* Returns the value of the '<em><b>Specified Attribute Overrides</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.IAttributeOverride}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Specified Attribute Overrides</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Specified Attribute Overrides</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_SpecifiedAttributeOverrides()
* @model containment="true"
* @generated
*/
public EList<IAttributeOverride> getSpecifiedAttributeOverrides() {
if (specifiedAttributeOverrides == null) {
specifiedAttributeOverrides = new EObjectContainmentEList<IAttributeOverride>(IAttributeOverride.class, this, OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES);
}
return specifiedAttributeOverrides;
}
/**
* Returns the value of the '<em><b>Default Attribute Overrides</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.IAttributeOverride}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Default Attribute Overrides</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Default Attribute Overrides</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_DefaultAttributeOverrides()
* @model containment="true"
* @generated
*/
public EList<IAttributeOverride> getDefaultAttributeOverrides() {
if (defaultAttributeOverrides == null) {
defaultAttributeOverrides = new EObjectContainmentEList<IAttributeOverride>(IAttributeOverride.class, this, OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES);
}
return defaultAttributeOverrides;
}
public EList<IAssociationOverride> getAssociationOverrides() {
EList<IAssociationOverride> list = new EObjectEList<IAssociationOverride>(IAssociationOverride.class, this, OrmPackage.XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES);
list.addAll(getSpecifiedAssociationOverrides());
list.addAll(getDefaultAssociationOverrides());
return list;
}
/**
* Returns the value of the '<em><b>Specified Association Overrides</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.IAssociationOverride}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Specified Association Overrides</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Specified Association Overrides</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_SpecifiedAssociationOverrides()
* @model containment="true"
* @generated
*/
public EList<IAssociationOverride> getSpecifiedAssociationOverrides() {
if (specifiedAssociationOverrides == null) {
specifiedAssociationOverrides = new EObjectContainmentEList<IAssociationOverride>(IAssociationOverride.class, this, OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES);
}
return specifiedAssociationOverrides;
}
/**
* Returns the value of the '<em><b>Default Association Overrides</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.IAssociationOverride}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Default Association Overrides</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Default Association Overrides</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_DefaultAssociationOverrides()
* @model containment="true"
* @generated
*/
public EList<IAssociationOverride> getDefaultAssociationOverrides() {
if (defaultAssociationOverrides == null) {
defaultAssociationOverrides = new EObjectContainmentEList<IAssociationOverride>(IAssociationOverride.class, this, OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES);
}
return defaultAssociationOverrides;
}
/**
* Returns the value of the '<em><b>Named Queries</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.INamedQuery}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Named Queries</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Named Queries</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_NamedQueries()
* @model containment="true"
* @generated
*/
public EList<INamedQuery> getNamedQueries() {
if (namedQueries == null) {
namedQueries = new EObjectContainmentEList<INamedQuery>(INamedQuery.class, this, OrmPackage.XML_ENTITY_INTERNAL__NAMED_QUERIES);
}
return namedQueries;
}
/**
* Returns the value of the '<em><b>Named Native Queries</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jpt.core.internal.mappings.INamedNativeQuery}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Named Native Queries</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Named Native Queries</em>' containment reference list.
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_NamedNativeQueries()
* @model containment="true"
* @generated
*/
public EList<INamedNativeQuery> getNamedNativeQueries() {
if (namedNativeQueries == null) {
namedNativeQueries = new EObjectContainmentEList<INamedNativeQuery>(INamedNativeQuery.class, this, OrmPackage.XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES);
}
return namedNativeQueries;
}
/**
* Returns the value of the '<em><b>Id Class</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Id Class</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Id Class</em>' attribute.
* @see #setIdClass(String)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIEntity_IdClass()
* @model
* @generated
*/
public String getIdClass() {
return idClass;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getIdClass <em>Id Class</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Id Class</em>' attribute.
* @see #getIdClass()
* @generated
*/
public void setIdClass(String newIdClass) {
String oldIdClass = idClass;
idClass = newIdClass;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS, oldIdClass, idClass));
}
protected void idClassChanged() {
if (getIdClass() == null) {
setIdClassForXml(null);
}
else {
if (getIdClassForXml() == null) {
setIdClassForXml(OrmFactory.eINSTANCE.createXmlIdClass());
}
getIdClassForXml().setValue(getIdClass());
}
}
public boolean discriminatorValueIsAllowed() {
Type type = getPersistentType().findType();
return (type == null) ? false : !type.isAbstract();
}
public IEntity parentEntity() {
for (Iterator<IPersistentType> i = getPersistentType().inheritanceHierarchy(); i.hasNext();) {
ITypeMapping typeMapping = i.next().getMapping();
if (typeMapping != this && typeMapping instanceof IEntity) {
return (IEntity) typeMapping;
}
}
return this;
}
public IEntity rootEntity() {
IEntity rootEntity = null;
for (Iterator<IPersistentType> i = getPersistentType().inheritanceHierarchy(); i.hasNext();) {
IPersistentType persistentType = i.next();
if (persistentType.getMapping() instanceof IEntity) {
rootEntity = (IEntity) persistentType.getMapping();
}
}
return rootEntity;
}
/**
* Returns the value of the '<em><b>Table For Xml</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Table For Xml</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Table For Xml</em>' reference.
* @see #setTableForXml(XmlTable)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlEntityForXml_TableForXml()
* @model resolveProxies="false" volatile="true"
* @generated NOT
*/
public XmlTable getTableForXml() {
if (getTableInternal().isAllFeaturesUnset()) {
return null;
}
return getTableInternal();
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getTableForXml <em>Table For Xml</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Table For Xml</em>' reference.
* @see #getTableForXml()
* @generated NOT
*/
public void setTableForXmlGen(XmlTable newTableForXml) {
XmlTable oldValue = newTableForXml == null ? (XmlTable) getTable() : null;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__TABLE_FOR_XML, oldValue, newTableForXml));
}
public void setTableForXml(XmlTable newTableForXml) {
setTableForXmlGen(newTableForXml);
if (newTableForXml == null) {
getTableInternal().unsetAllAttributes();
}
}
/**
* Returns the value of the '<em><b>Discriminator Column For Xml</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Discriminator Column For Xml</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Discriminator Column For Xml</em>' reference.
* @see #setDiscriminatorColumnForXml(XmlDiscriminatorColumn)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlEntityForXml_DiscriminatorColumnForXml()
* @model resolveProxies="false" volatile="true"
* @generated NOT
*/
public XmlDiscriminatorColumn getDiscriminatorColumnForXml() {
if (getDiscriminatorColumnInternal().isAllFeaturesUnset()) {
return null;
}
return getDiscriminatorColumnInternal();
}
private XmlDiscriminatorColumn getDiscriminatorColumnInternal() {
return (XmlDiscriminatorColumn) getDiscriminatorColumn();
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getDiscriminatorColumnForXml <em>Discriminator Column For Xml</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Discriminator Column For Xml</em>' reference.
* @see #getDiscriminatorColumnForXml()
* @generated NOT
*/
public void setDiscriminatorColumnForXmlGen(XmlDiscriminatorColumn newDiscriminatorColumnForXml) {
XmlDiscriminatorColumn oldValue = newDiscriminatorColumnForXml == null ? (XmlDiscriminatorColumn) getDiscriminatorColumn() : null;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN_FOR_XML, oldValue, newDiscriminatorColumnForXml));
}
public void setDiscriminatorColumnForXml(XmlDiscriminatorColumn newDiscriminatorColumnForXml) {
setDiscriminatorColumnForXmlGen(newDiscriminatorColumnForXml);
if (newDiscriminatorColumnForXml == null) {
getDiscriminatorColumnInternal().unsetAllAttributes();
}
}
/**
* Returns the value of the '<em><b>Id Class For Xml</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Id Class For Xml</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Id Class For Xml</em>' containment reference.
* @see #setIdClassForXml(XmlIdClass)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlEntityForXml_IdClassForXml()
* @model containment="true"
* @generated
*/
public XmlIdClass getIdClassForXml() {
return idClassForXml;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetIdClassForXml(XmlIdClass newIdClassForXml, NotificationChain msgs) {
XmlIdClass oldIdClassForXml = idClassForXml;
idClassForXml = newIdClassForXml;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML, oldIdClassForXml, newIdClassForXml);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getIdClassForXml <em>Id Class For Xml</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Id Class For Xml</em>' containment reference.
* @see #getIdClassForXml()
* @generated
*/
public void setIdClassForXml(XmlIdClass newIdClassForXml) {
if (newIdClassForXml != idClassForXml) {
NotificationChain msgs = null;
if (idClassForXml != null)
msgs = ((InternalEObject) idClassForXml).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML, null, msgs);
if (newIdClassForXml != null)
msgs = ((InternalEObject) newIdClassForXml).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML, null, msgs);
msgs = basicSetIdClassForXml(newIdClassForXml, msgs);
if (msgs != null)
msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML, newIdClassForXml, newIdClassForXml));
}
/**
* Returns the value of the '<em><b>Inheritance For Xml</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Inheritance For Xml</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Inheritance For Xml</em>' containment reference.
* @see #setInheritanceForXml(XmlInheritance)
* @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlEntityForXml_InheritanceForXml()
* @model containment="true"
* @generated
*/
public XmlInheritance getInheritanceForXml() {
return inheritanceForXml;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetInheritanceForXml(XmlInheritance newInheritanceForXml, NotificationChain msgs) {
XmlInheritance oldInheritanceForXml = inheritanceForXml;
inheritanceForXml = newInheritanceForXml;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML, oldInheritanceForXml, newInheritanceForXml);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal#getInheritanceForXml <em>Inheritance For Xml</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Inheritance For Xml</em>' containment reference.
* @see #getInheritanceForXml()
* @generated
*/
public void setInheritanceForXml(XmlInheritance newInheritanceForXml) {
if (newInheritanceForXml != inheritanceForXml) {
NotificationChain msgs = null;
if (inheritanceForXml != null)
msgs = ((InternalEObject) inheritanceForXml).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML, null, msgs);
if (newInheritanceForXml != null)
msgs = ((InternalEObject) newInheritanceForXml).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML, null, msgs);
msgs = basicSetInheritanceForXml(newInheritanceForXml, msgs);
if (msgs != null)
msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML, newInheritanceForXml, newInheritanceForXml));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML :
return basicSetIdClassForXml(null, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML :
return basicSetInheritanceForXml(null, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__TABLE :
return basicSetTable(null, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES :
return ((InternalEList<?>) getSpecifiedSecondaryTables()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__PRIMARY_KEY_JOIN_COLUMNS :
return ((InternalEList<?>) getPrimaryKeyJoinColumns()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS :
return ((InternalEList<?>) getSpecifiedPrimaryKeyJoinColumns()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS :
return ((InternalEList<?>) getDefaultPrimaryKeyJoinColumns()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN :
return basicSetDiscriminatorColumn(null, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR :
return basicSetSequenceGenerator(null, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR :
return basicSetTableGenerator(null, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES :
return ((InternalEList<?>) getAttributeOverrides()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES :
return ((InternalEList<?>) getSpecifiedAttributeOverrides()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES :
return ((InternalEList<?>) getDefaultAttributeOverrides()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES :
return ((InternalEList<?>) getAssociationOverrides()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES :
return ((InternalEList<?>) getSpecifiedAssociationOverrides()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES :
return ((InternalEList<?>) getDefaultAssociationOverrides()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_QUERIES :
return ((InternalEList<?>) getNamedQueries()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES :
return ((InternalEList<?>) getNamedNativeQueries()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__SECONDARY_TABLES :
return ((InternalEList<?>) getSecondaryTables()).basicRemove(otherEnd, msgs);
case OrmPackage.XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES :
return ((InternalEList<?>) getVirtualSecondaryTables()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
protected void setDefaultName(String newDefaultName) {
String oldDefaultName = this.defaultName;
this.defaultName = newDefaultName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_NAME, oldDefaultName, defaultName));
}
@Override
public void refreshDefaults(DefaultsContext defaultsContext) {
super.refreshDefaults(defaultsContext);
setDefaultName((String) defaultsContext.getDefault(BaseJpaPlatform.DEFAULT_ENTITY_NAME_KEY));
}
public String getKey() {
return IMappingKeys.ENTITY_TYPE_MAPPING_KEY;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_FOR_XML :
return getTableForXml();
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN_FOR_XML :
return getDiscriminatorColumnForXml();
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML :
return getIdClassForXml();
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML :
return getInheritanceForXml();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_NAME :
return getSpecifiedName();
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_NAME :
return getDefaultName();
case OrmPackage.XML_ENTITY_INTERNAL__TABLE :
return getTable();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES :
return getSpecifiedSecondaryTables();
case OrmPackage.XML_ENTITY_INTERNAL__PRIMARY_KEY_JOIN_COLUMNS :
return getPrimaryKeyJoinColumns();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS :
return getSpecifiedPrimaryKeyJoinColumns();
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS :
return getDefaultPrimaryKeyJoinColumns();
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY :
return getInheritanceStrategy();
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE :
return getDefaultDiscriminatorValue();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE :
return getSpecifiedDiscriminatorValue();
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_VALUE :
return getDiscriminatorValue();
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN :
return getDiscriminatorColumn();
case OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR :
return getSequenceGenerator();
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR :
return getTableGenerator();
case OrmPackage.XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES :
return getAttributeOverrides();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES :
return getSpecifiedAttributeOverrides();
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES :
return getDefaultAttributeOverrides();
case OrmPackage.XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES :
return getAssociationOverrides();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES :
return getSpecifiedAssociationOverrides();
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES :
return getDefaultAssociationOverrides();
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_QUERIES :
return getNamedQueries();
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES :
return getNamedNativeQueries();
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS :
return getIdClass();
case OrmPackage.XML_ENTITY_INTERNAL__SECONDARY_TABLES :
return getSecondaryTables();
case OrmPackage.XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES :
return getVirtualSecondaryTables();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_FOR_XML :
setTableForXml((XmlTable) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN_FOR_XML :
setDiscriminatorColumnForXml((XmlDiscriminatorColumn) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML :
setIdClassForXml((XmlIdClass) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML :
setInheritanceForXml((XmlInheritance) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_NAME :
setSpecifiedName((String) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES :
getSpecifiedSecondaryTables().clear();
getSpecifiedSecondaryTables().addAll((Collection<? extends ISecondaryTable>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS :
getSpecifiedPrimaryKeyJoinColumns().clear();
getSpecifiedPrimaryKeyJoinColumns().addAll((Collection<? extends IPrimaryKeyJoinColumn>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS :
getDefaultPrimaryKeyJoinColumns().clear();
getDefaultPrimaryKeyJoinColumns().addAll((Collection<? extends IPrimaryKeyJoinColumn>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY :
setInheritanceStrategy((InheritanceType) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE :
setDefaultDiscriminatorValue((String) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE :
setSpecifiedDiscriminatorValue((String) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR :
setSequenceGenerator((ISequenceGenerator) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR :
setTableGenerator((ITableGenerator) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES :
getSpecifiedAttributeOverrides().clear();
getSpecifiedAttributeOverrides().addAll((Collection<? extends IAttributeOverride>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES :
getDefaultAttributeOverrides().clear();
getDefaultAttributeOverrides().addAll((Collection<? extends IAttributeOverride>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES :
getSpecifiedAssociationOverrides().clear();
getSpecifiedAssociationOverrides().addAll((Collection<? extends IAssociationOverride>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES :
getDefaultAssociationOverrides().clear();
getDefaultAssociationOverrides().addAll((Collection<? extends IAssociationOverride>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_QUERIES :
getNamedQueries().clear();
getNamedQueries().addAll((Collection<? extends INamedQuery>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES :
getNamedNativeQueries().clear();
getNamedNativeQueries().addAll((Collection<? extends INamedNativeQuery>) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS :
setIdClass((String) newValue);
return;
case OrmPackage.XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES :
getVirtualSecondaryTables().clear();
getVirtualSecondaryTables().addAll((Collection<? extends ISecondaryTable>) newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_FOR_XML :
setTableForXml((XmlTable) null);
return;
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN_FOR_XML :
setDiscriminatorColumnForXml((XmlDiscriminatorColumn) null);
return;
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML :
setIdClassForXml((XmlIdClass) null);
return;
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML :
setInheritanceForXml((XmlInheritance) null);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_NAME :
setSpecifiedName(SPECIFIED_NAME_EDEFAULT);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES :
getSpecifiedSecondaryTables().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS :
getSpecifiedPrimaryKeyJoinColumns().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS :
getDefaultPrimaryKeyJoinColumns().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY :
setInheritanceStrategy(INHERITANCE_STRATEGY_EDEFAULT);
return;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE :
setDefaultDiscriminatorValue(DEFAULT_DISCRIMINATOR_VALUE_EDEFAULT);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE :
setSpecifiedDiscriminatorValue(SPECIFIED_DISCRIMINATOR_VALUE_EDEFAULT);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR :
setSequenceGenerator((ISequenceGenerator) null);
return;
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR :
setTableGenerator((ITableGenerator) null);
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES :
getSpecifiedAttributeOverrides().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES :
getDefaultAttributeOverrides().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES :
getSpecifiedAssociationOverrides().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES :
getDefaultAssociationOverrides().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_QUERIES :
getNamedQueries().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES :
getNamedNativeQueries().clear();
return;
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS :
setIdClass(ID_CLASS_EDEFAULT);
return;
case OrmPackage.XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES :
getVirtualSecondaryTables().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_FOR_XML :
return getTableForXml() != null;
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN_FOR_XML :
return getDiscriminatorColumnForXml() != null;
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML :
return idClassForXml != null;
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML :
return inheritanceForXml != null;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_NAME :
return SPECIFIED_NAME_EDEFAULT == null ? specifiedName != null : !SPECIFIED_NAME_EDEFAULT.equals(specifiedName);
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_NAME :
return DEFAULT_NAME_EDEFAULT == null ? defaultName != null : !DEFAULT_NAME_EDEFAULT.equals(defaultName);
case OrmPackage.XML_ENTITY_INTERNAL__TABLE :
return table != null;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES :
return specifiedSecondaryTables != null && !specifiedSecondaryTables.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__PRIMARY_KEY_JOIN_COLUMNS :
return !getPrimaryKeyJoinColumns().isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS :
return specifiedPrimaryKeyJoinColumns != null && !specifiedPrimaryKeyJoinColumns.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS :
return defaultPrimaryKeyJoinColumns != null && !defaultPrimaryKeyJoinColumns.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY :
return inheritanceStrategy != INHERITANCE_STRATEGY_EDEFAULT;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE :
return DEFAULT_DISCRIMINATOR_VALUE_EDEFAULT == null ? defaultDiscriminatorValue != null : !DEFAULT_DISCRIMINATOR_VALUE_EDEFAULT.equals(defaultDiscriminatorValue);
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE :
return SPECIFIED_DISCRIMINATOR_VALUE_EDEFAULT == null ? specifiedDiscriminatorValue != null : !SPECIFIED_DISCRIMINATOR_VALUE_EDEFAULT.equals(specifiedDiscriminatorValue);
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_VALUE :
return DISCRIMINATOR_VALUE_EDEFAULT == null ? getDiscriminatorValue() != null : !DISCRIMINATOR_VALUE_EDEFAULT.equals(getDiscriminatorValue());
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN :
return discriminatorColumn != null;
case OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR :
return sequenceGenerator != null;
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR :
return tableGenerator != null;
case OrmPackage.XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES :
return !getAttributeOverrides().isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES :
return specifiedAttributeOverrides != null && !specifiedAttributeOverrides.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES :
return defaultAttributeOverrides != null && !defaultAttributeOverrides.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES :
return !getAssociationOverrides().isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES :
return specifiedAssociationOverrides != null && !specifiedAssociationOverrides.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES :
return defaultAssociationOverrides != null && !defaultAssociationOverrides.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_QUERIES :
return namedQueries != null && !namedQueries.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES :
return namedNativeQueries != null && !namedNativeQueries.isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS :
return ID_CLASS_EDEFAULT == null ? idClass != null : !ID_CLASS_EDEFAULT.equals(idClass);
case OrmPackage.XML_ENTITY_INTERNAL__SECONDARY_TABLES :
return !getSecondaryTables().isEmpty();
case OrmPackage.XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES :
return virtualSecondaryTables != null && !virtualSecondaryTables.isEmpty();
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
if (baseClass == XmlEntityForXml.class) {
switch (derivedFeatureID) {
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_FOR_XML :
return OrmPackage.XML_ENTITY_FOR_XML__TABLE_FOR_XML;
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN_FOR_XML :
return OrmPackage.XML_ENTITY_FOR_XML__DISCRIMINATOR_COLUMN_FOR_XML;
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML :
return OrmPackage.XML_ENTITY_FOR_XML__ID_CLASS_FOR_XML;
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML :
return OrmPackage.XML_ENTITY_FOR_XML__INHERITANCE_FOR_XML;
default :
return -1;
}
}
if (baseClass == IEntity.class) {
switch (derivedFeatureID) {
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_NAME :
return JpaCoreMappingsPackage.IENTITY__SPECIFIED_NAME;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_NAME :
return JpaCoreMappingsPackage.IENTITY__DEFAULT_NAME;
case OrmPackage.XML_ENTITY_INTERNAL__TABLE :
return JpaCoreMappingsPackage.IENTITY__TABLE;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES :
return JpaCoreMappingsPackage.IENTITY__SPECIFIED_SECONDARY_TABLES;
case OrmPackage.XML_ENTITY_INTERNAL__PRIMARY_KEY_JOIN_COLUMNS :
return JpaCoreMappingsPackage.IENTITY__PRIMARY_KEY_JOIN_COLUMNS;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS :
return JpaCoreMappingsPackage.IENTITY__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS :
return JpaCoreMappingsPackage.IENTITY__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS;
case OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY :
return JpaCoreMappingsPackage.IENTITY__INHERITANCE_STRATEGY;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE :
return JpaCoreMappingsPackage.IENTITY__DEFAULT_DISCRIMINATOR_VALUE;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE :
return JpaCoreMappingsPackage.IENTITY__SPECIFIED_DISCRIMINATOR_VALUE;
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_VALUE :
return JpaCoreMappingsPackage.IENTITY__DISCRIMINATOR_VALUE;
case OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN :
return JpaCoreMappingsPackage.IENTITY__DISCRIMINATOR_COLUMN;
case OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR :
return JpaCoreMappingsPackage.IENTITY__SEQUENCE_GENERATOR;
case OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR :
return JpaCoreMappingsPackage.IENTITY__TABLE_GENERATOR;
case OrmPackage.XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES :
return JpaCoreMappingsPackage.IENTITY__ATTRIBUTE_OVERRIDES;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES :
return JpaCoreMappingsPackage.IENTITY__SPECIFIED_ATTRIBUTE_OVERRIDES;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES :
return JpaCoreMappingsPackage.IENTITY__DEFAULT_ATTRIBUTE_OVERRIDES;
case OrmPackage.XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES :
return JpaCoreMappingsPackage.IENTITY__ASSOCIATION_OVERRIDES;
case OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES :
return JpaCoreMappingsPackage.IENTITY__SPECIFIED_ASSOCIATION_OVERRIDES;
case OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES :
return JpaCoreMappingsPackage.IENTITY__DEFAULT_ASSOCIATION_OVERRIDES;
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_QUERIES :
return JpaCoreMappingsPackage.IENTITY__NAMED_QUERIES;
case OrmPackage.XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES :
return JpaCoreMappingsPackage.IENTITY__NAMED_NATIVE_QUERIES;
case OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS :
return JpaCoreMappingsPackage.IENTITY__ID_CLASS;
default :
return -1;
}
}
if (baseClass == XmlEntity.class) {
switch (derivedFeatureID) {
case OrmPackage.XML_ENTITY_INTERNAL__SECONDARY_TABLES :
return OrmPackage.XML_ENTITY__SECONDARY_TABLES;
case OrmPackage.XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES :
return OrmPackage.XML_ENTITY__VIRTUAL_SECONDARY_TABLES;
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 == XmlEntityForXml.class) {
switch (baseFeatureID) {
case OrmPackage.XML_ENTITY_FOR_XML__TABLE_FOR_XML :
return OrmPackage.XML_ENTITY_INTERNAL__TABLE_FOR_XML;
case OrmPackage.XML_ENTITY_FOR_XML__DISCRIMINATOR_COLUMN_FOR_XML :
return OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN_FOR_XML;
case OrmPackage.XML_ENTITY_FOR_XML__ID_CLASS_FOR_XML :
return OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML;
case OrmPackage.XML_ENTITY_FOR_XML__INHERITANCE_FOR_XML :
return OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML;
default :
return -1;
}
}
if (baseClass == IEntity.class) {
switch (baseFeatureID) {
case JpaCoreMappingsPackage.IENTITY__SPECIFIED_NAME :
return OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_NAME;
case JpaCoreMappingsPackage.IENTITY__DEFAULT_NAME :
return OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_NAME;
case JpaCoreMappingsPackage.IENTITY__TABLE :
return OrmPackage.XML_ENTITY_INTERNAL__TABLE;
case JpaCoreMappingsPackage.IENTITY__SPECIFIED_SECONDARY_TABLES :
return OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES;
case JpaCoreMappingsPackage.IENTITY__PRIMARY_KEY_JOIN_COLUMNS :
return OrmPackage.XML_ENTITY_INTERNAL__PRIMARY_KEY_JOIN_COLUMNS;
case JpaCoreMappingsPackage.IENTITY__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS :
return OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS;
case JpaCoreMappingsPackage.IENTITY__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS :
return OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS;
case JpaCoreMappingsPackage.IENTITY__INHERITANCE_STRATEGY :
return OrmPackage.XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY;
case JpaCoreMappingsPackage.IENTITY__DEFAULT_DISCRIMINATOR_VALUE :
return OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE;
case JpaCoreMappingsPackage.IENTITY__SPECIFIED_DISCRIMINATOR_VALUE :
return OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE;
case JpaCoreMappingsPackage.IENTITY__DISCRIMINATOR_VALUE :
return OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_VALUE;
case JpaCoreMappingsPackage.IENTITY__DISCRIMINATOR_COLUMN :
return OrmPackage.XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN;
case JpaCoreMappingsPackage.IENTITY__SEQUENCE_GENERATOR :
return OrmPackage.XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR;
case JpaCoreMappingsPackage.IENTITY__TABLE_GENERATOR :
return OrmPackage.XML_ENTITY_INTERNAL__TABLE_GENERATOR;
case JpaCoreMappingsPackage.IENTITY__ATTRIBUTE_OVERRIDES :
return OrmPackage.XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES;
case JpaCoreMappingsPackage.IENTITY__SPECIFIED_ATTRIBUTE_OVERRIDES :
return OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES;
case JpaCoreMappingsPackage.IENTITY__DEFAULT_ATTRIBUTE_OVERRIDES :
return OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES;
case JpaCoreMappingsPackage.IENTITY__ASSOCIATION_OVERRIDES :
return OrmPackage.XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES;
case JpaCoreMappingsPackage.IENTITY__SPECIFIED_ASSOCIATION_OVERRIDES :
return OrmPackage.XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES;
case JpaCoreMappingsPackage.IENTITY__DEFAULT_ASSOCIATION_OVERRIDES :
return OrmPackage.XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES;
case JpaCoreMappingsPackage.IENTITY__NAMED_QUERIES :
return OrmPackage.XML_ENTITY_INTERNAL__NAMED_QUERIES;
case JpaCoreMappingsPackage.IENTITY__NAMED_NATIVE_QUERIES :
return OrmPackage.XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES;
case JpaCoreMappingsPackage.IENTITY__ID_CLASS :
return OrmPackage.XML_ENTITY_INTERNAL__ID_CLASS;
default :
return -1;
}
}
if (baseClass == XmlEntity.class) {
switch (baseFeatureID) {
case OrmPackage.XML_ENTITY__SECONDARY_TABLES :
return OrmPackage.XML_ENTITY_INTERNAL__SECONDARY_TABLES;
case OrmPackage.XML_ENTITY__VIRTUAL_SECONDARY_TABLES :
return OrmPackage.XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES;
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(" (specifiedName: ");
result.append(specifiedName);
result.append(", defaultName: ");
result.append(defaultName);
result.append(", inheritanceStrategy: ");
result.append(inheritanceStrategy);
result.append(", defaultDiscriminatorValue: ");
result.append(defaultDiscriminatorValue);
result.append(", specifiedDiscriminatorValue: ");
result.append(specifiedDiscriminatorValue);
result.append(", idClass: ");
result.append(idClass);
result.append(')');
return result.toString();
}
@Override
public String getTableName() {
return getTable().getName();
}
public void makeTableForXmlNull() {
setTableForXmlGen(null);
}
public void makeTableForXmlNonNull() {
setTableForXmlGen(getTableForXml());
}
public void makeDiscriminatorColumnForXmlNull() {
setDiscriminatorColumnForXmlGen(null);
}
//um, this is an object on XmlInheritance, but a tag on entity in the xml, how to handle???
public void makeDiscriminatorColumnForXmlNonNull() {
setDiscriminatorColumnForXmlGen(getDiscriminatorColumnForXml());
}
public String primaryKeyColumnName() {
String pkColumnName = null;
for (Iterator<IPersistentAttribute> stream = getPersistentType().allAttributes(); stream.hasNext();) {
IPersistentAttribute attribute = stream.next();
String name = attribute.primaryKeyColumnName();
if (pkColumnName == null) {
pkColumnName = name;
}
else if (name != null) {
// if we encounter a composite primary key, return null
return null;
}
}
// if we encounter only a single primary key column name, return it
return pkColumnName;
}
public String primaryKeyAttributeName() {
String pkColumnName = null;
String pkAttributeName = null;
for (Iterator<IPersistentAttribute> stream = getPersistentType().allAttributes(); stream.hasNext();) {
IPersistentAttribute attribute = stream.next();
String name = attribute.primaryKeyColumnName();
if (pkColumnName == null) {
pkColumnName = name;
pkAttributeName = attribute.getName();
}
else if (name != null) {
// if we encounter a composite primary key, return null
return null;
}
}
// if we encounter only a single primary key column name, return it
return pkAttributeName;
}
public boolean tableNameIsInvalid(String tableName) {
return !CollectionTools.contains(this.associatedTableNamesIncludingInherited(), tableName);
}
private Iterator<String> tableNames(Iterator<ITable> tables) {
return new TransformationIterator(tables) {
@Override
protected Object transform(Object next) {
return ((ITable) next).getName();
}
};
}
public Iterator<String> associatedTableNamesIncludingInherited() {
return this.nonNullTableNames(this.associatedTablesIncludingInherited());
}
private Iterator<String> nonNullTableNames(Iterator<ITable> tables) {
return new FilteringIterator(this.tableNames(tables)) {
@Override
protected boolean accept(Object o) {
return o != null;
}
};
}
public Iterator<ITable> associatedTables() {
return new CompositeIterator(this.getTable(), this.getSecondaryTables().iterator());
}
public Iterator<ITable> associatedTablesIncludingInherited() {
return new CompositeIterator(new TransformationIterator(this.inheritanceHierarchy()) {
@Override
protected Object transform(Object next) {
return new FilteringIterator(((ITypeMapping) next).associatedTables()) {
@Override
protected boolean accept(Object o) {
return true;
//TODO
//filtering these out so as to avoid the duplicate table, root and children share the same table
//return !(o instanceof SingleTableInheritanceChildTableImpl);
}
};
}
});
}
@Override
public Table primaryDbTable() {
return getTable().dbTable();
}
@Override
public Table dbTable(String tableName) {
for (Iterator<ITable> stream = this.associatedTablesIncludingInherited(); stream.hasNext();) {
Table dbTable = stream.next().dbTable();
if (dbTable != null && dbTable.matchesShortJavaClassName(tableName)) {
return dbTable;
}
}
return null;
}
@Override
public Schema dbSchema() {
return getTable().dbSchema();
}
@Override
public int xmlSequence() {
return 1;
}
/**
* Return an iterator of Entities, each which inherits from the one before,
* and terminates at the root entity (or at the point of cyclicity).
*/
private Iterator<ITypeMapping> inheritanceHierarchy() {
return new TransformationIterator(getPersistentType().inheritanceHierarchy()) {
@Override
protected Object transform(Object next) {
return ((IPersistentType) next).getMapping();
}
};
//TODO once we support inheritance, which of these should we use??
//return this.getInheritance().typeMappingLineage();
}
public Iterator<String> allOverridableAttributeNames() {
return new CompositeIterator(new TransformationIterator(this.inheritanceHierarchy()) {
protected Object transform(Object next) {
return ((ITypeMapping) next).overridableAttributeNames();
}
});
}
public Iterator<String> allOverridableAssociationNames() {
return new CompositeIterator(new TransformationIterator(this.inheritanceHierarchy()) {
protected Object transform(Object next) {
return ((ITypeMapping) next).overridableAssociationNames();
}
});
}
public IAttributeOverride createAttributeOverride(int index) {
return OrmFactory.eINSTANCE.createXmlAttributeOverride(new IEntity.AttributeOverrideOwner(this));
}
public IAssociationOverride createAssociationOverride(int index) {
return OrmFactory.eINSTANCE.createXmlAssociationOverride(new IEntity.AssociationOverrideOwner(this));
}
public IAttributeOverride attributeOverrideNamed(String name) {
return (IAttributeOverride) overrideNamed(name, getAttributeOverrides());
}
public boolean containsAttributeOverride(String name) {
return containsOverride(name, getAttributeOverrides());
}
public boolean containsSpecifiedAttributeOverride(String name) {
return containsOverride(name, getSpecifiedAttributeOverrides());
}
public boolean containsAssociationOverride(String name) {
return containsOverride(name, getAssociationOverrides());
}
public boolean containsSpecifiedAssociationOverride(String name) {
return containsOverride(name, getSpecifiedAssociationOverrides());
}
private IOverride overrideNamed(String name, List<? extends IOverride> overrides) {
for (IOverride override : overrides) {
String overrideName = override.getName();
if (overrideName == null && name == null) {
return override;
}
if (overrideName != null && overrideName.equals(name)) {
return override;
}
}
return null;
}
private boolean containsOverride(String name, List<? extends IOverride> overrides) {
return overrideNamed(name, overrides) != null;
}
public ISecondaryTable createSecondaryTable(int index) {
return OrmFactory.eINSTANCE.createXmlSecondaryTable(buildSecondaryTableOwner());
}
private ITable.Owner buildSecondaryTableOwner() {
return new ITable.Owner() {
public ITextRange validationTextRange() {
return XmlEntityInternal.this.validationTextRange();
}
public ITypeMapping getTypeMapping() {
return XmlEntityInternal.this;
}
};
}
public boolean containsSpecifiedPrimaryKeyJoinColumns() {
return !this.getSpecifiedPrimaryKeyJoinColumns().isEmpty();
}
public IPrimaryKeyJoinColumn createPrimaryKeyJoinColumn(int index) {
return OrmFactory.eINSTANCE.createXmlPrimaryKeyJoinColumn(new IEntity.PrimaryKeyJoinColumnOwner(this));
}
public INamedQuery createNamedQuery(int index) {
return OrmFactory.eINSTANCE.createXmlNamedQuery();
}
public INamedNativeQuery createNamedNativeQuery(int index) {
return OrmFactory.eINSTANCE.createXmlNamedNativeQuery();
}
}