diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal')
24 files changed, 1856 insertions, 81 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentType.java index c59a1c2e68..32dd480189 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentType.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/JavaPersistentType.java @@ -72,7 +72,6 @@ import org.eclipse.jpt.utility.internal.iterators.ChainIterator; import org.eclipse.jpt.utility.internal.iterators.CloneIterator; import org.eclipse.jpt.utility.internal.iterators.CompositeIterator; import org.eclipse.jpt.utility.internal.iterators.FilteringIterator; -import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator; import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; /** @@ -769,7 +768,7 @@ public class JavaPersistentType extends JavaEObject implements IPersistentType if (values != null) { return values; } - for (Iterator<JavaPersistentAttribute> i = attributes() ; i.hasNext(); ) { + for (Iterator<JavaPersistentAttribute> i = attributes(); i.hasNext();) { JavaPersistentAttribute attribute = i.next(); values = attribute.candidateValuesFor(pos, filter, astRoot); if (values != null) { @@ -780,11 +779,11 @@ public class JavaPersistentType extends JavaEObject implements IPersistentType } public IJpaContentNode contentNodeAt(int offset) { - for (Iterator<JavaPersistentAttribute> i = attributes(); i.hasNext(); ) { + for (Iterator<JavaPersistentAttribute> i = attributes(); i.hasNext();) { JavaPersistentAttribute persistentAttribute = i.next(); if (persistentAttribute.includes(offset)) { return persistentAttribute; - } + } } return null; } @@ -810,7 +809,7 @@ public class JavaPersistentType extends JavaEObject implements IPersistentType } private JavaPersistentAttribute persistentAttributeFor(IMember member) { - for (Iterator<JavaPersistentAttribute> i = attributes(); i.hasNext(); ) { + for (Iterator<JavaPersistentAttribute> i = attributes(); i.hasNext();) { JavaPersistentAttribute attribute = i.next(); if (attribute.isFor(member)) { return attribute; diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/AbstractXmlColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/AbstractXmlColumn.java index a652e4e033..1fa12e5041 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/AbstractXmlColumn.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/AbstractXmlColumn.java @@ -233,7 +233,7 @@ public abstract class AbstractXmlColumn extends AbstractXmlNamedColumn protected AbstractXmlColumn(INamedColumn.Owner owner) { super(owner); } - + @Override protected void addInsignificantXmlFeatureIdsTo(Set<Integer> insignificantXmlFeatureIds) { super.addInsignificantXmlFeatureIdsTo(insignificantXmlFeatureIds); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/AbstractXmlNamedColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/AbstractXmlNamedColumn.java index aa6a0a25a9..aedb293ea0 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/AbstractXmlNamedColumn.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/AbstractXmlNamedColumn.java @@ -145,7 +145,7 @@ public abstract class AbstractXmlNamedColumn extends XmlEObject super(); this.owner = owner; } - + @Override protected void addInsignificantXmlFeatureIdsTo(Set<Integer> insignificantXmlFeatureIds) { super.addInsignificantXmlFeatureIdsTo(insignificantXmlFeatureIds); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/OrmFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/OrmFactory.java index 2b302ece90..e3231bbe6a 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/OrmFactory.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/OrmFactory.java @@ -154,6 +154,12 @@ public class OrmFactory extends EFactoryImpl return createXmlUniqueConstraint(); case OrmPackage.XML_CASCADE : return createXmlCascade(); + case OrmPackage.XML_ID_CLASS : + return createXmlIdClass(); + case OrmPackage.XML_INHERITANCE : + return createXmlInheritance(); + case OrmPackage.XML_MAP_KEY : + return createXmlMapKey(); default : throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -642,6 +648,36 @@ public class OrmFactory extends EFactoryImpl return xmlCascade; } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public XmlIdClass createXmlIdClass() { + XmlIdClass xmlIdClass = new XmlIdClass(); + return xmlIdClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public XmlInheritance createXmlInheritance() { + XmlInheritance xmlInheritance = new XmlInheritance(); + return xmlInheritance; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public XmlMapKey createXmlMapKey() { + XmlMapKey xmlMapKey = new XmlMapKey(); + return xmlMapKey; + } + public XmlPrimaryKeyJoinColumn createXmlPrimaryKeyJoinColumn(IAbstractJoinColumn.Owner owner) { XmlPrimaryKeyJoinColumn xmlPrimaryKeyJoinColumn = new XmlPrimaryKeyJoinColumn(owner); return xmlPrimaryKeyJoinColumn; diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/OrmPackage.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/OrmPackage.java index d83ea91c42..e925faf222 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/OrmPackage.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/OrmPackage.java @@ -773,13 +773,31 @@ public class OrmPackage extends EPackageImpl public static final int XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN_FOR_XML = XML_TYPE_MAPPING_FEATURE_COUNT + 1; /** + * The feature id for the '<em><b>Id Class For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_ENTITY_INTERNAL__ID_CLASS_FOR_XML = XML_TYPE_MAPPING_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Inheritance For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_ENTITY_INTERNAL__INHERITANCE_FOR_XML = XML_TYPE_MAPPING_FEATURE_COUNT + 3; + + /** * The feature id for the '<em><b>Specified Name</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__SPECIFIED_NAME = XML_TYPE_MAPPING_FEATURE_COUNT + 2; + public static final int XML_ENTITY_INTERNAL__SPECIFIED_NAME = XML_TYPE_MAPPING_FEATURE_COUNT + 4; /** * The feature id for the '<em><b>Default Name</b></em>' attribute. @@ -788,7 +806,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__DEFAULT_NAME = XML_TYPE_MAPPING_FEATURE_COUNT + 3; + public static final int XML_ENTITY_INTERNAL__DEFAULT_NAME = XML_TYPE_MAPPING_FEATURE_COUNT + 5; /** * The feature id for the '<em><b>Table</b></em>' containment reference. @@ -797,7 +815,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__TABLE = XML_TYPE_MAPPING_FEATURE_COUNT + 4; + public static final int XML_ENTITY_INTERNAL__TABLE = XML_TYPE_MAPPING_FEATURE_COUNT + 6; /** * The feature id for the '<em><b>Specified Secondary Tables</b></em>' containment reference list. @@ -806,7 +824,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES = XML_TYPE_MAPPING_FEATURE_COUNT + 5; + public static final int XML_ENTITY_INTERNAL__SPECIFIED_SECONDARY_TABLES = XML_TYPE_MAPPING_FEATURE_COUNT + 7; /** * The feature id for the '<em><b>Primary Key Join Columns</b></em>' containment reference list. @@ -815,7 +833,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__PRIMARY_KEY_JOIN_COLUMNS = XML_TYPE_MAPPING_FEATURE_COUNT + 6; + public static final int XML_ENTITY_INTERNAL__PRIMARY_KEY_JOIN_COLUMNS = XML_TYPE_MAPPING_FEATURE_COUNT + 8; /** * The feature id for the '<em><b>Specified Primary Key Join Columns</b></em>' containment reference list. @@ -824,7 +842,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS = XML_TYPE_MAPPING_FEATURE_COUNT + 7; + public static final int XML_ENTITY_INTERNAL__SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS = XML_TYPE_MAPPING_FEATURE_COUNT + 9; /** * The feature id for the '<em><b>Default Primary Key Join Columns</b></em>' containment reference list. @@ -833,7 +851,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS = XML_TYPE_MAPPING_FEATURE_COUNT + 8; + public static final int XML_ENTITY_INTERNAL__DEFAULT_PRIMARY_KEY_JOIN_COLUMNS = XML_TYPE_MAPPING_FEATURE_COUNT + 10; /** * The feature id for the '<em><b>Inheritance Strategy</b></em>' attribute. @@ -842,7 +860,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY = XML_TYPE_MAPPING_FEATURE_COUNT + 9; + public static final int XML_ENTITY_INTERNAL__INHERITANCE_STRATEGY = XML_TYPE_MAPPING_FEATURE_COUNT + 11; /** * The feature id for the '<em><b>Default Discriminator Value</b></em>' attribute. @@ -851,7 +869,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE = XML_TYPE_MAPPING_FEATURE_COUNT + 10; + public static final int XML_ENTITY_INTERNAL__DEFAULT_DISCRIMINATOR_VALUE = XML_TYPE_MAPPING_FEATURE_COUNT + 12; /** * The feature id for the '<em><b>Specified Discriminator Value</b></em>' attribute. @@ -860,7 +878,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE = XML_TYPE_MAPPING_FEATURE_COUNT + 11; + public static final int XML_ENTITY_INTERNAL__SPECIFIED_DISCRIMINATOR_VALUE = XML_TYPE_MAPPING_FEATURE_COUNT + 13; /** * The feature id for the '<em><b>Discriminator Value</b></em>' attribute. @@ -869,7 +887,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__DISCRIMINATOR_VALUE = XML_TYPE_MAPPING_FEATURE_COUNT + 12; + public static final int XML_ENTITY_INTERNAL__DISCRIMINATOR_VALUE = XML_TYPE_MAPPING_FEATURE_COUNT + 14; /** * The feature id for the '<em><b>Discriminator Column</b></em>' containment reference. @@ -878,7 +896,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN = XML_TYPE_MAPPING_FEATURE_COUNT + 13; + public static final int XML_ENTITY_INTERNAL__DISCRIMINATOR_COLUMN = XML_TYPE_MAPPING_FEATURE_COUNT + 15; /** * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference. @@ -887,7 +905,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR = XML_TYPE_MAPPING_FEATURE_COUNT + 14; + public static final int XML_ENTITY_INTERNAL__SEQUENCE_GENERATOR = XML_TYPE_MAPPING_FEATURE_COUNT + 16; /** * The feature id for the '<em><b>Table Generator</b></em>' containment reference. @@ -896,7 +914,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__TABLE_GENERATOR = XML_TYPE_MAPPING_FEATURE_COUNT + 15; + public static final int XML_ENTITY_INTERNAL__TABLE_GENERATOR = XML_TYPE_MAPPING_FEATURE_COUNT + 17; /** * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list. @@ -905,7 +923,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 16; + public static final int XML_ENTITY_INTERNAL__ATTRIBUTE_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 18; /** * The feature id for the '<em><b>Specified Attribute Overrides</b></em>' containment reference list. @@ -914,7 +932,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 17; + public static final int XML_ENTITY_INTERNAL__SPECIFIED_ATTRIBUTE_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 19; /** * The feature id for the '<em><b>Default Attribute Overrides</b></em>' containment reference list. @@ -923,7 +941,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 18; + public static final int XML_ENTITY_INTERNAL__DEFAULT_ATTRIBUTE_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 20; /** * The feature id for the '<em><b>Association Overrides</b></em>' containment reference list. @@ -932,7 +950,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 19; + public static final int XML_ENTITY_INTERNAL__ASSOCIATION_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 21; /** * The feature id for the '<em><b>Specified Association Overrides</b></em>' containment reference list. @@ -941,7 +959,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 20; + public static final int XML_ENTITY_INTERNAL__SPECIFIED_ASSOCIATION_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 22; /** * The feature id for the '<em><b>Default Association Overrides</b></em>' containment reference list. @@ -950,7 +968,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 21; + public static final int XML_ENTITY_INTERNAL__DEFAULT_ASSOCIATION_OVERRIDES = XML_TYPE_MAPPING_FEATURE_COUNT + 23; /** * The feature id for the '<em><b>Named Queries</b></em>' containment reference list. @@ -959,7 +977,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__NAMED_QUERIES = XML_TYPE_MAPPING_FEATURE_COUNT + 22; + public static final int XML_ENTITY_INTERNAL__NAMED_QUERIES = XML_TYPE_MAPPING_FEATURE_COUNT + 24; /** * The feature id for the '<em><b>Named Native Queries</b></em>' containment reference list. @@ -968,7 +986,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES = XML_TYPE_MAPPING_FEATURE_COUNT + 23; + public static final int XML_ENTITY_INTERNAL__NAMED_NATIVE_QUERIES = XML_TYPE_MAPPING_FEATURE_COUNT + 25; /** * The feature id for the '<em><b>Id Class</b></em>' attribute. @@ -977,7 +995,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__ID_CLASS = XML_TYPE_MAPPING_FEATURE_COUNT + 24; + public static final int XML_ENTITY_INTERNAL__ID_CLASS = XML_TYPE_MAPPING_FEATURE_COUNT + 26; /** * The feature id for the '<em><b>Secondary Tables</b></em>' containment reference list. @@ -986,7 +1004,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__SECONDARY_TABLES = XML_TYPE_MAPPING_FEATURE_COUNT + 25; + public static final int XML_ENTITY_INTERNAL__SECONDARY_TABLES = XML_TYPE_MAPPING_FEATURE_COUNT + 27; /** * The feature id for the '<em><b>Virtual Secondary Tables</b></em>' containment reference list. @@ -995,7 +1013,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES = XML_TYPE_MAPPING_FEATURE_COUNT + 26; + public static final int XML_ENTITY_INTERNAL__VIRTUAL_SECONDARY_TABLES = XML_TYPE_MAPPING_FEATURE_COUNT + 28; /** * The number of structural features of the '<em>Xml Entity Internal</em>' class. @@ -1004,7 +1022,7 @@ public class OrmPackage extends EPackageImpl * @generated * @ordered */ - public static final int XML_ENTITY_INTERNAL_FEATURE_COUNT = XML_TYPE_MAPPING_FEATURE_COUNT + 27; + public static final int XML_ENTITY_INTERNAL_FEATURE_COUNT = XML_TYPE_MAPPING_FEATURE_COUNT + 29; /** * The meta object id for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml <em>Xml Entity For Xml</em>}' class. @@ -1035,13 +1053,31 @@ public class OrmPackage extends EPackageImpl public static final int XML_ENTITY_FOR_XML__DISCRIMINATOR_COLUMN_FOR_XML = 1; /** + * The feature id for the '<em><b>Id Class For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_ENTITY_FOR_XML__ID_CLASS_FOR_XML = 2; + + /** + * The feature id for the '<em><b>Inheritance For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_ENTITY_FOR_XML__INHERITANCE_FOR_XML = 3; + + /** * The number of structural features of the '<em>Xml Entity For Xml</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - public static final int XML_ENTITY_FOR_XML_FEATURE_COUNT = 2; + public static final int XML_ENTITY_FOR_XML_FEATURE_COUNT = 4; /** * The meta object id for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntity <em>Xml Entity</em>}' class. @@ -1983,13 +2019,22 @@ public class OrmPackage extends EPackageImpl public static final int XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML = XML_RELATIONSHIP_MAPPING_FEATURE_COUNT + 6; /** + * The feature id for the '<em><b>Map Key For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML = XML_RELATIONSHIP_MAPPING_FEATURE_COUNT + 7; + + /** * The number of structural features of the '<em>Xml Multi Relationship Mapping Internal</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - public static final int XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL_FEATURE_COUNT = XML_RELATIONSHIP_MAPPING_FEATURE_COUNT + 7; + public static final int XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL_FEATURE_COUNT = XML_RELATIONSHIP_MAPPING_FEATURE_COUNT + 8; /** * The meta object id for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml <em>Xml Multi Relationship Mapping For Xml</em>}' class. @@ -2020,13 +2065,22 @@ public class OrmPackage extends EPackageImpl public static final int XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__ORDER_BY_FOR_XML = 1; /** + * The feature id for the '<em><b>Map Key For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__MAP_KEY_FOR_XML = 2; + + /** * The number of structural features of the '<em>Xml Multi Relationship Mapping For Xml</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - public static final int XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML_FEATURE_COUNT = 2; + public static final int XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML_FEATURE_COUNT = 3; /** * The meta object id for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMapping <em>Xml Multi Relationship Mapping</em>}' class. @@ -2265,6 +2319,15 @@ public class OrmPackage extends EPackageImpl public static final int XML_ONE_TO_MANY__ORDER_BY_FOR_XML = XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML; /** + * The feature id for the '<em><b>Map Key For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_ONE_TO_MANY__MAP_KEY_FOR_XML = XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML; + + /** * The number of structural features of the '<em>Xml One To Many</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2401,6 +2464,15 @@ public class OrmPackage extends EPackageImpl public static final int XML_MANY_TO_MANY__ORDER_BY_FOR_XML = XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML; /** + * The feature id for the '<em><b>Map Key For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_MANY_TO_MANY__MAP_KEY_FOR_XML = XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML; + + /** * The number of structural features of the '<em>Xml Many To Many</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -5721,6 +5793,90 @@ public class OrmPackage extends EPackageImpl public static final int XML_CASCADE_FEATURE_COUNT = JpaCorePackage.XML_EOBJECT_FEATURE_COUNT + 5; /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlIdClass <em>Xml Id Class</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.content.orm.XmlIdClass + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlIdClass() + * @generated + */ + public static final int XML_ID_CLASS = 60; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_ID_CLASS__VALUE = JpaCorePackage.XML_EOBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Xml Id Class</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_ID_CLASS_FEATURE_COUNT = JpaCorePackage.XML_EOBJECT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlInheritance <em>Xml Inheritance</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.content.orm.XmlInheritance + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlInheritance() + * @generated + */ + public static final int XML_INHERITANCE = 61; + + /** + * The feature id for the '<em><b>Strategy</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_INHERITANCE__STRATEGY = JpaCorePackage.XML_EOBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Xml Inheritance</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_INHERITANCE_FEATURE_COUNT = JpaCorePackage.XML_EOBJECT_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlMapKey <em>Xml Map Key</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.content.orm.XmlMapKey + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlMapKey() + * @generated + */ + public static final int XML_MAP_KEY = 62; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_MAP_KEY__NAME = JpaCorePackage.XML_EOBJECT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Xml Map Key</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + public static final int XML_MAP_KEY_FEATURE_COUNT = JpaCorePackage.XML_EOBJECT_FEATURE_COUNT + 1; + + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -6141,6 +6297,27 @@ public class OrmPackage extends EPackageImpl private EClass xmlCascadeEClass = null; /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass xmlIdClassEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass xmlInheritanceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass xmlMapKeyEClass = null; + + /** * Creates an instance of the model <b>Package</b>, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package * package URI value. @@ -6838,6 +7015,32 @@ public class OrmPackage extends EPackageImpl } /** + * Returns the meta object for the containment reference '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#getIdClassForXml <em>Id Class For Xml</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Id Class For Xml</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#getIdClassForXml() + * @see #getXmlEntityForXml() + * @generated + */ + public EReference getXmlEntityForXml_IdClassForXml() { + return (EReference) xmlEntityForXmlEClass.getEStructuralFeatures().get(2); + } + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#getInheritanceForXml <em>Inheritance For Xml</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Inheritance For Xml</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#getInheritanceForXml() + * @see #getXmlEntityForXml() + * @generated + */ + public EReference getXmlEntityForXml_InheritanceForXml() { + return (EReference) xmlEntityForXmlEClass.getEStructuralFeatures().get(3); + } + + /** * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntity <em>Xml Entity</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -7047,6 +7250,19 @@ public class OrmPackage extends EPackageImpl } /** + * Returns the meta object for the containment reference '{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml#getMapKeyForXml <em>Map Key For Xml</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Map Key For Xml</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml#getMapKeyForXml() + * @see #getXmlMultiRelationshipMappingForXml() + * @generated + */ + public EReference getXmlMultiRelationshipMappingForXml_MapKeyForXml() { + return (EReference) xmlMultiRelationshipMappingForXmlEClass.getEStructuralFeatures().get(2); + } + + /** * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMapping <em>Xml Multi Relationship Mapping</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -7996,6 +8212,81 @@ public class OrmPackage extends EPackageImpl } /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.content.orm.XmlIdClass <em>Xml Id Class</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Xml Id Class</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlIdClass + * @generated + */ + public EClass getXmlIdClass() { + return xmlIdClassEClass; + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.content.orm.XmlIdClass#getValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlIdClass#getValue() + * @see #getXmlIdClass() + * @generated + */ + public EAttribute getXmlIdClass_Value() { + return (EAttribute) xmlIdClassEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.content.orm.XmlInheritance <em>Xml Inheritance</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Xml Inheritance</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlInheritance + * @generated + */ + public EClass getXmlInheritance() { + return xmlInheritanceEClass; + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.content.orm.XmlInheritance#getStrategy <em>Strategy</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Strategy</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlInheritance#getStrategy() + * @see #getXmlInheritance() + * @generated + */ + public EAttribute getXmlInheritance_Strategy() { + return (EAttribute) xmlInheritanceEClass.getEStructuralFeatures().get(0); + } + + /** + * Returns the meta object for class '{@link org.eclipse.jpt.core.internal.content.orm.XmlMapKey <em>Xml Map Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Xml Map Key</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlMapKey + * @generated + */ + public EClass getXmlMapKey() { + return xmlMapKeyEClass; + } + + /** + * Returns the meta object for the attribute '{@link org.eclipse.jpt.core.internal.content.orm.XmlMapKey#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.jpt.core.internal.content.orm.XmlMapKey#getName() + * @see #getXmlMapKey() + * @generated + */ + public EAttribute getXmlMapKey_Name() { + return (EAttribute) xmlMapKeyEClass.getEStructuralFeatures().get(0); + } + + /** * Returns the factory that creates the instances of the model. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -8073,6 +8364,8 @@ public class OrmPackage extends EPackageImpl xmlEntityForXmlEClass = createEClass(XML_ENTITY_FOR_XML); createEReference(xmlEntityForXmlEClass, XML_ENTITY_FOR_XML__TABLE_FOR_XML); createEReference(xmlEntityForXmlEClass, XML_ENTITY_FOR_XML__DISCRIMINATOR_COLUMN_FOR_XML); + createEReference(xmlEntityForXmlEClass, XML_ENTITY_FOR_XML__ID_CLASS_FOR_XML); + createEReference(xmlEntityForXmlEClass, XML_ENTITY_FOR_XML__INHERITANCE_FOR_XML); xmlEntityEClass = createEClass(XML_ENTITY); createEReference(xmlEntityEClass, XML_ENTITY__SECONDARY_TABLES); createEReference(xmlEntityEClass, XML_ENTITY__VIRTUAL_SECONDARY_TABLES); @@ -8090,6 +8383,7 @@ public class OrmPackage extends EPackageImpl xmlMultiRelationshipMappingForXmlEClass = createEClass(XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML); createEReference(xmlMultiRelationshipMappingForXmlEClass, XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__JOIN_TABLE_FOR_XML); createEReference(xmlMultiRelationshipMappingForXmlEClass, XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__ORDER_BY_FOR_XML); + createEReference(xmlMultiRelationshipMappingForXmlEClass, XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__MAP_KEY_FOR_XML); xmlMultiRelationshipMappingEClass = createEClass(XML_MULTI_RELATIONSHIP_MAPPING); xmlOneToManyEClass = createEClass(XML_ONE_TO_MANY); xmlManyToManyEClass = createEClass(XML_MANY_TO_MANY); @@ -8166,6 +8460,12 @@ public class OrmPackage extends EPackageImpl xmlQueryHintEClass = createEClass(XML_QUERY_HINT); xmlUniqueConstraintEClass = createEClass(XML_UNIQUE_CONSTRAINT); xmlCascadeEClass = createEClass(XML_CASCADE); + xmlIdClassEClass = createEClass(XML_ID_CLASS); + createEAttribute(xmlIdClassEClass, XML_ID_CLASS__VALUE); + xmlInheritanceEClass = createEClass(XML_INHERITANCE); + createEAttribute(xmlInheritanceEClass, XML_INHERITANCE__STRATEGY); + xmlMapKeyEClass = createEClass(XML_MAP_KEY); + createEAttribute(xmlMapKeyEClass, XML_MAP_KEY__NAME); } /** @@ -8312,6 +8612,9 @@ public class OrmPackage extends EPackageImpl xmlUniqueConstraintEClass.getESuperTypes().add(theJpaCoreMappingsPackage.getIUniqueConstraint()); xmlCascadeEClass.getESuperTypes().add(theJpaCorePackage.getXmlEObject()); xmlCascadeEClass.getESuperTypes().add(theJpaCoreMappingsPackage.getICascade()); + xmlIdClassEClass.getESuperTypes().add(theJpaCorePackage.getXmlEObject()); + xmlInheritanceEClass.getESuperTypes().add(theJpaCorePackage.getXmlEObject()); + xmlMapKeyEClass.getESuperTypes().add(theJpaCorePackage.getXmlEObject()); // Initialize classes and features; add operations and parameters initEClass(xmlRootContentNodeEClass, XmlRootContentNode.class, "XmlRootContentNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getXmlRootContentNode_EntityMappings(), this.getEntityMappingsInternal(), this.getEntityMappingsInternal_Root(), "entityMappings", null, 1, 1, XmlRootContentNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); @@ -8361,6 +8664,8 @@ public class OrmPackage extends EPackageImpl initEClass(xmlEntityForXmlEClass, XmlEntityForXml.class, "XmlEntityForXml", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getXmlEntityForXml_TableForXml(), this.getXmlTable(), null, "tableForXml", null, 0, 1, XmlEntityForXml.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getXmlEntityForXml_DiscriminatorColumnForXml(), this.getXmlDiscriminatorColumn(), null, "discriminatorColumnForXml", null, 0, 1, XmlEntityForXml.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getXmlEntityForXml_IdClassForXml(), this.getXmlIdClass(), null, "idClassForXml", null, 0, 1, XmlEntityForXml.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getXmlEntityForXml_InheritanceForXml(), this.getXmlInheritance(), null, "inheritanceForXml", null, 0, 1, XmlEntityForXml.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(xmlEntityEClass, XmlEntity.class, "XmlEntity", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getXmlEntity_SecondaryTables(), theJpaCoreMappingsPackage.getISecondaryTable(), null, "secondaryTables", null, 0, -1, XmlEntity.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getXmlEntity_VirtualSecondaryTables(), theJpaCoreMappingsPackage.getISecondaryTable(), null, "virtualSecondaryTables", null, 0, -1, XmlEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -8378,6 +8683,7 @@ public class OrmPackage extends EPackageImpl initEClass(xmlMultiRelationshipMappingForXmlEClass, XmlMultiRelationshipMappingForXml.class, "XmlMultiRelationshipMappingForXml", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getXmlMultiRelationshipMappingForXml_JoinTableForXml(), this.getXmlJoinTable(), null, "joinTableForXml", null, 0, 1, XmlMultiRelationshipMappingForXml.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getXmlMultiRelationshipMappingForXml_OrderByForXml(), this.getXmlOrderBy(), null, "orderByForXml", null, 0, 1, XmlMultiRelationshipMappingForXml.class, !IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getXmlMultiRelationshipMappingForXml_MapKeyForXml(), this.getXmlMapKey(), null, "mapKeyForXml", null, 0, 1, XmlMultiRelationshipMappingForXml.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(xmlMultiRelationshipMappingEClass, XmlMultiRelationshipMapping.class, "XmlMultiRelationshipMapping", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(xmlOneToManyEClass, XmlOneToMany.class, "XmlOneToMany", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(xmlManyToManyEClass, XmlManyToMany.class, "XmlManyToMany", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -8456,6 +8762,12 @@ public class OrmPackage extends EPackageImpl initEClass(xmlQueryHintEClass, XmlQueryHint.class, "XmlQueryHint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(xmlUniqueConstraintEClass, XmlUniqueConstraint.class, "XmlUniqueConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(xmlCascadeEClass, XmlCascade.class, "XmlCascade", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(xmlIdClassEClass, XmlIdClass.class, "XmlIdClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getXmlIdClass_Value(), theEcorePackage.getEString(), "value", "", 0, 1, XmlIdClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(xmlInheritanceEClass, XmlInheritance.class, "XmlInheritance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getXmlInheritance_Strategy(), theJpaCoreMappingsPackage.getInheritanceType(), "strategy", "", 0, 1, XmlInheritance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(xmlMapKeyEClass, XmlMapKey.class, "XmlMapKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getXmlMapKey_Name(), ecorePackage.getEString(), "name", null, 0, 1, XmlMapKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); // Create resource createResource(eNS_URI); } @@ -8878,6 +9190,22 @@ public class OrmPackage extends EPackageImpl public static final EReference XML_ENTITY_FOR_XML__DISCRIMINATOR_COLUMN_FOR_XML = eINSTANCE.getXmlEntityForXml_DiscriminatorColumnForXml(); /** + * The meta object literal for the '<em><b>Id Class For Xml</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference XML_ENTITY_FOR_XML__ID_CLASS_FOR_XML = eINSTANCE.getXmlEntityForXml_IdClassForXml(); + + /** + * The meta object literal for the '<em><b>Inheritance For Xml</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference XML_ENTITY_FOR_XML__INHERITANCE_FOR_XML = eINSTANCE.getXmlEntityForXml_InheritanceForXml(); + + /** * The meta object literal for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntity <em>Xml Entity</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -9038,6 +9366,14 @@ public class OrmPackage extends EPackageImpl public static final EReference XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__ORDER_BY_FOR_XML = eINSTANCE.getXmlMultiRelationshipMappingForXml_OrderByForXml(); /** + * The meta object literal for the '<em><b>Map Key For Xml</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EReference XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__MAP_KEY_FOR_XML = eINSTANCE.getXmlMultiRelationshipMappingForXml_MapKeyForXml(); + + /** * The meta object literal for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMapping <em>Xml Multi Relationship Mapping</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -9722,5 +10058,59 @@ public class OrmPackage extends EPackageImpl * @generated */ public static final EClass XML_CASCADE = eINSTANCE.getXmlCascade(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlIdClass <em>Xml Id Class</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.content.orm.XmlIdClass + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlIdClass() + * @generated + */ + public static final EClass XML_ID_CLASS = eINSTANCE.getXmlIdClass(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute XML_ID_CLASS__VALUE = eINSTANCE.getXmlIdClass_Value(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlInheritance <em>Xml Inheritance</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.content.orm.XmlInheritance + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlInheritance() + * @generated + */ + public static final EClass XML_INHERITANCE = eINSTANCE.getXmlInheritance(); + + /** + * The meta object literal for the '<em><b>Strategy</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute XML_INHERITANCE__STRATEGY = eINSTANCE.getXmlInheritance_Strategy(); + + /** + * The meta object literal for the '{@link org.eclipse.jpt.core.internal.content.orm.XmlMapKey <em>Xml Map Key</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.jpt.core.internal.content.orm.XmlMapKey + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlMapKey() + * @generated + */ + public static final EClass XML_MAP_KEY = eINSTANCE.getXmlMapKey(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final EAttribute XML_MAP_KEY__NAME = eINSTANCE.getXmlMapKey_Name(); } } //OrmPackage diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlDiscriminatorColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlDiscriminatorColumn.java index 5bba6e3159..e44f2cfebf 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlDiscriminatorColumn.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlDiscriminatorColumn.java @@ -135,7 +135,7 @@ public class XmlDiscriminatorColumn extends AbstractXmlNamedColumn protected XmlDiscriminatorColumn(INamedColumn.Owner owner) { super(owner); } - + @Override protected void addInsignificantXmlFeatureIdsTo(Set<Integer> insignificantXmlFeatureIds) { super.addInsignificantXmlFeatureIdsTo(insignificantXmlFeatureIds); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlEntityForXml.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlEntityForXml.java index a69d44d1ff..20578b091d 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlEntityForXml.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlEntityForXml.java @@ -21,6 +21,8 @@ import org.eclipse.emf.ecore.EObject; * <ul> * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#getTableForXml <em>Table For Xml</em>}</li> * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#getDiscriminatorColumnForXml <em>Discriminator Column For Xml</em>}</li> + * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#getIdClassForXml <em>Id Class For Xml</em>}</li> + * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#getInheritanceForXml <em>Inheritance For Xml</em>}</li> * </ul> * </p> * @@ -81,4 +83,56 @@ public interface XmlEntityForXml extends EObject * @generated */ void setDiscriminatorColumnForXml(XmlDiscriminatorColumn value); + + /** + * 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 + */ + XmlIdClass getIdClassForXml(); + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#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 + */ + void setIdClassForXml(XmlIdClass value); + + /** + * 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 + */ + XmlInheritance getInheritanceForXml(); + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlEntityForXml#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 + */ + void setInheritanceForXml(XmlInheritance value); } // XmlEntityForXml diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlEntityInternal.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlEntityInternal.java index 35b77c53bc..e670a345d1 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlEntityInternal.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlEntityInternal.java @@ -12,8 +12,10 @@ package org.eclipse.jpt.core.internal.content.orm; import java.util.Collection; import java.util.Iterator; import java.util.List; +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.BasicEList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; @@ -64,6 +66,26 @@ 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 --> @@ -340,6 +362,57 @@ public class XmlEntityInternal extends XmlTypeMapping 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); + } } private ITable.Owner buildTableOwner() { @@ -496,6 +569,12 @@ public class XmlEntityInternal extends XmlTypeMapping return virtualSecondaryTables; } + protected void xmlIdClassChanged() { + if (getIdClassForXml() == null) { + setIdClass(null); + } + } + public boolean containsSecondaryTable(String name) { return containsSecondaryTable(name, getSecondaryTables()); } @@ -1036,6 +1115,18 @@ public class XmlEntityInternal extends XmlTypeMapping 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()); + } + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1157,6 +1248,124 @@ public class XmlEntityInternal extends XmlTypeMapping } /** + * 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 @@ -1164,6 +1373,10 @@ public class XmlEntityInternal extends XmlTypeMapping @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 : @@ -1233,6 +1446,10 @@ public class XmlEntityInternal extends XmlTypeMapping 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 : @@ -1302,6 +1519,12 @@ public class XmlEntityInternal extends XmlTypeMapping 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; @@ -1381,6 +1604,12 @@ public class XmlEntityInternal extends XmlTypeMapping 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; @@ -1448,6 +1677,10 @@ public class XmlEntityInternal extends XmlTypeMapping 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 : @@ -1515,6 +1748,10 @@ public class XmlEntityInternal extends XmlTypeMapping 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; } @@ -1597,6 +1834,10 @@ public class XmlEntityInternal extends XmlTypeMapping 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; } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlIdClass.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlIdClass.java new file mode 100644 index 0000000000..32ec3ae6ec --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlIdClass.java @@ -0,0 +1,208 @@ +/******************************************************************************* + * Copyright (c) 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 org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.impl.AdapterImpl; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.jpt.core.internal.XmlEObject; + +/** + * This class is purely used to hack around a problem with the translators and representing + * the IEntity.idClass feature in the xml. Added this object to correspend to the + * id-class type in the xml since the translator path approach caused the id-class element + * to be added even when the idClass was null. This occurred when you added a new persistent + * type to the orm.xml via the structure view. + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlIdClass#getValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlIdClass() + * @model kind="class" + * @generated + */ +public class XmlIdClass extends XmlEObject +{ + /** + * The default value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = ""; + + /** + * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + protected XmlIdClass() { + super(); + this.eAdapters().add(this.buildListener()); + } + + protected Adapter buildListener() { + return new AdapterImpl() { + @Override + public void notifyChanged(Notification notification) { + XmlIdClass.this.notifyChanged(notification); + } + }; + } + + protected void notifyChanged(Notification notification) { + switch (notification.getFeatureID(XmlIdClass.class)) { + case OrmPackage.XML_ID_CLASS__VALUE : + valueChanged(); + break; + default : + break; + } + } + + private XmlEntityInternal xmlEntity() { + return (XmlEntityInternal) eContainer(); + } + + protected void valueChanged() { + xmlEntity().setIdClass(getValue()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return OrmPackage.Literals.XML_ID_CLASS; + } + + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * The default value is <code>""</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>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>Value</em>' attribute. + * @see #setValue(String) + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlIdClass_Value() + * @model default="" + * @generated + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlIdClass#getValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #getValue() + * @generated + */ + public void setValue(String newValue) { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_ID_CLASS__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case OrmPackage.XML_ID_CLASS__VALUE : + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case OrmPackage.XML_ID_CLASS__VALUE : + setValue((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case OrmPackage.XML_ID_CLASS__VALUE : + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case OrmPackage.XML_ID_CLASS__VALUE : + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } +} // XmlIdClass diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlInheritance.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlInheritance.java new file mode 100644 index 0000000000..6e06610ee6 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlInheritance.java @@ -0,0 +1,214 @@ +/******************************************************************************* + * Copyright (c) 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 org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.impl.AdapterImpl; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.jpt.core.internal.XmlEObject; +import org.eclipse.jpt.core.internal.mappings.InheritanceType; + +/** + * <!-- begin-user-doc --> + * This class is purely used to hack around a problem with the translators and representing + * the IEntity.inheritanceStrategy feature in the xml. Added this object to correspend to the + * inheritance type in the xml since the translator path approach caused the inheritance element + * to be added even when the strategy was default was null. This occurred when you added a new persistent + * type to the orm.xml via the structure view. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlInheritance#getStrategy <em>Strategy</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlInheritance() + * @model kind="class" + * @generated + */ +public class XmlInheritance extends XmlEObject +{ + /** + * The default value of the '{@link #getStrategy() <em>Strategy</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getStrategy() + * @generated + * @ordered + */ + protected static final InheritanceType STRATEGY_EDEFAULT = InheritanceType.DEFAULT; + + /** + * The cached value of the '{@link #getStrategy() <em>Strategy</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getStrategy() + * @generated + * @ordered + */ + protected InheritanceType strategy = STRATEGY_EDEFAULT; + + protected XmlInheritance() { + super(); + this.eAdapters().add(this.buildListener()); + } + + protected Adapter buildListener() { + return new AdapterImpl() { + @Override + public void notifyChanged(Notification notification) { + XmlInheritance.this.notifyChanged(notification); + } + }; + } + + protected void notifyChanged(Notification notification) { + switch (notification.getFeatureID(XmlInheritance.class)) { + case OrmPackage.XML_INHERITANCE__STRATEGY : + strategyChanged(); + break; + default : + break; + } + } + + private XmlEntityInternal xmlEntity() { + return (XmlEntityInternal) eContainer(); + } + + protected void strategyChanged() { + xmlEntity().setInheritanceStrategy(getStrategy()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return OrmPackage.Literals.XML_INHERITANCE; + } + + /** + * Returns the value of the '<em><b>Strategy</b></em>' attribute. + * The default value is <code>""</code>. + * The literals are from the enumeration {@link org.eclipse.jpt.core.internal.mappings.InheritanceType}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>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>Strategy</em>' attribute. + * @see org.eclipse.jpt.core.internal.mappings.InheritanceType + * @see #setStrategy(InheritanceType) + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlInheritance_Strategy() + * @model default="" + * @generated + */ + public InheritanceType getStrategy() { + return strategy; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlInheritance#getStrategy <em>Strategy</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Strategy</em>' attribute. + * @see org.eclipse.jpt.core.internal.mappings.InheritanceType + * @see #getStrategy() + * @generated + */ + public void setStrategy(InheritanceType newStrategy) { + InheritanceType oldStrategy = strategy; + strategy = newStrategy == null ? STRATEGY_EDEFAULT : newStrategy; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_INHERITANCE__STRATEGY, oldStrategy, strategy)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case OrmPackage.XML_INHERITANCE__STRATEGY : + return getStrategy(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case OrmPackage.XML_INHERITANCE__STRATEGY : + setStrategy((InheritanceType) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case OrmPackage.XML_INHERITANCE__STRATEGY : + setStrategy(STRATEGY_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case OrmPackage.XML_INHERITANCE__STRATEGY : + return strategy != STRATEGY_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (strategy: "); + result.append(strategy); + result.append(')'); + return result.toString(); + } +} // XmlInheritance diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMapKey.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMapKey.java new file mode 100644 index 0000000000..c2a9fa38ff --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMapKey.java @@ -0,0 +1,209 @@ +/******************************************************************************* + * Copyright (c) 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 org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.impl.AdapterImpl; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.jpt.core.internal.XmlEObject; + +/** + * <!-- begin-user-doc --> + * This class is purely used to hack around a problem with the translators and representing + * the IMultiRelationshipMapping.mapKey feature in the xml. Added this object to correspend to the + * map-key type in the xml since the translator path approach caused the map-key element + * to be added even when the mapKey String was null. This occurred when you added a new 1-m or m-m + * mapping to the orm.xml via the structure view. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlMapKey#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlMapKey() + * @model kind="class" + * @generated + */ +public class XmlMapKey extends XmlEObject +{ + /** + * 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; + + protected XmlMapKey() { + super(); + this.eAdapters().add(this.buildListener()); + } + + protected Adapter buildListener() { + return new AdapterImpl() { + @Override + public void notifyChanged(Notification notification) { + XmlMapKey.this.notifyChanged(notification); + } + }; + } + + protected void notifyChanged(Notification notification) { + switch (notification.getFeatureID(XmlMapKey.class)) { + case OrmPackage.XML_MAP_KEY__NAME : + nameChanged(); + break; + default : + break; + } + } + + private XmlMultiRelationshipMapping xmlMultiRelationshipMapping() { + return (XmlMultiRelationshipMapping) eContainer(); + } + + protected void nameChanged() { + xmlMultiRelationshipMapping().setMapKey(getName()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return OrmPackage.Literals.XML_MAP_KEY; + } + + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlMapKey_Name() + * @model + * @generated + */ + public String getName() { + return name; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlMapKey#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + public void setName(String newName) { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_MAP_KEY__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case OrmPackage.XML_MAP_KEY__NAME : + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case OrmPackage.XML_MAP_KEY__NAME : + setName((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case OrmPackage.XML_MAP_KEY__NAME : + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case OrmPackage.XML_MAP_KEY__NAME : + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } +} // XmlMapKey diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMultiRelationshipMappingForXml.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMultiRelationshipMappingForXml.java index be3173cbe3..a58b4e041c 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMultiRelationshipMappingForXml.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMultiRelationshipMappingForXml.java @@ -20,6 +20,7 @@ import org.eclipse.emf.ecore.EObject; * <ul> * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml#getJoinTableForXml <em>Join Table For Xml</em>}</li> * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml#getOrderByForXml <em>Order By For Xml</em>}</li> + * <li>{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml#getMapKeyForXml <em>Map Key For Xml</em>}</li> * </ul> * </p> * @@ -80,4 +81,30 @@ public interface XmlMultiRelationshipMappingForXml extends EObject * @generated */ void setOrderByForXml(XmlOrderBy value); + + /** + * Returns the value of the '<em><b>Map Key For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Map Key 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>Map Key For Xml</em>' containment reference. + * @see #setMapKeyForXml(XmlMapKey) + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlMultiRelationshipMappingForXml_MapKeyForXml() + * @model containment="true" + * @generated + */ + XmlMapKey getMapKeyForXml(); + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml#getMapKeyForXml <em>Map Key For Xml</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Map Key For Xml</em>' containment reference. + * @see #getMapKeyForXml() + * @generated + */ + void setMapKeyForXml(XmlMapKey value); } // XmlMultiRelationshipMappingForXml diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMultiRelationshipMappingInternal.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMultiRelationshipMappingInternal.java index 6d5c9564fe..26ef44e803 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMultiRelationshipMappingInternal.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlMultiRelationshipMappingInternal.java @@ -9,8 +9,10 @@ package org.eclipse.jpt.core.internal.content.orm; import java.util.Iterator; +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.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; @@ -121,12 +123,67 @@ public abstract class XmlMultiRelationshipMappingInternal */ protected String mapKey = MAP_KEY_EDEFAULT; + /** + * The cached value of the '{@link #getMapKeyForXml() <em>Map Key For Xml</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMapKeyForXml() + * @generated + * @ordered + */ + protected XmlMapKey mapKeyForXml; + protected XmlMultiRelationshipMappingInternal() { super(); this.joinTable = OrmFactory.eINSTANCE.createXmlJoinTable(buildJoinTableOwner()); ((InternalEObject) this.joinTable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__JOIN_TABLE, null, null); this.orderBy = OrmFactory.eINSTANCE.createXmlOrderBy(); ((InternalEObject) this.orderBy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY, null, null); + this.eAdapters().add(this.buildListener()); + } + + protected Adapter buildListener() { + return new AdapterImpl() { + @Override + public void notifyChanged(Notification notification) { + XmlMultiRelationshipMappingInternal.this.notifyChanged(notification); + } + }; + } + + protected void notifyChanged(Notification notification) { + switch (notification.getFeatureID(IMultiRelationshipMapping.class)) { + case JpaCoreMappingsPackage.IMULTI_RELATIONSHIP_MAPPING__MAP_KEY : + mapKeyChanged(); + break; + default : + break; + } + switch (notification.getFeatureID(XmlMultiRelationshipMappingForXml.class)) { + case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML : + xmlMapKeyChanged(); + break; + default : + break; + } + } + + protected void mapKeyChanged() { + if (getMapKey() == null) { + setMapKeyForXml(null); + } + else { + if (getMapKeyForXml() == null) { + setMapKeyForXml(OrmFactory.eINSTANCE.createXmlMapKey()); + } + getMapKeyForXml().setName(getMapKey()); + } + } + + protected void xmlMapKeyChanged() { + if (getMapKeyForXml() == null) { + setMapKey(null); + } } private IJoinTable.Owner buildJoinTableOwner() { @@ -378,6 +435,65 @@ public abstract class XmlMultiRelationshipMappingInternal } /** + * Returns the value of the '<em><b>Map Key For Xml</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Map Key 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>Map Key For Xml</em>' containment reference. + * @see #setMapKeyForXml(XmlMapKey) + * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlMultiRelationshipMappingForXml_MapKeyForXml() + * @model containment="true" + * @generated + */ + public XmlMapKey getMapKeyForXml() { + return mapKeyForXml; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetMapKeyForXml(XmlMapKey newMapKeyForXml, NotificationChain msgs) { + XmlMapKey oldMapKeyForXml = mapKeyForXml; + mapKeyForXml = newMapKeyForXml; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML, oldMapKeyForXml, newMapKeyForXml); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingInternal#getMapKeyForXml <em>Map Key For Xml</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Map Key For Xml</em>' containment reference. + * @see #getMapKeyForXml() + * @generated + */ + public void setMapKeyForXml(XmlMapKey newMapKeyForXml) { + if (newMapKeyForXml != mapKeyForXml) { + NotificationChain msgs = null; + if (mapKeyForXml != null) + msgs = ((InternalEObject) mapKeyForXml).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML, null, msgs); + if (newMapKeyForXml != null) + msgs = ((InternalEObject) newMapKeyForXml).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML, null, msgs); + msgs = basicSetMapKeyForXml(newMapKeyForXml, msgs); + if (msgs != null) + msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML, newMapKeyForXml, newMapKeyForXml)); + } + + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -389,6 +505,8 @@ public abstract class XmlMultiRelationshipMappingInternal return basicSetJoinTable(null, msgs); case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY : return basicSetOrderBy(null, msgs); + case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML : + return basicSetMapKeyForXml(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -415,6 +533,8 @@ public abstract class XmlMultiRelationshipMappingInternal return getJoinTableForXml(); case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML : return getOrderByForXml(); + case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML : + return getMapKeyForXml(); } return super.eGet(featureID, resolve, coreType); } @@ -442,6 +562,9 @@ public abstract class XmlMultiRelationshipMappingInternal case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML : setOrderByForXml((XmlOrderBy) newValue); return; + case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML : + setMapKeyForXml((XmlMapKey) newValue); + return; } super.eSet(featureID, newValue); } @@ -469,6 +592,9 @@ public abstract class XmlMultiRelationshipMappingInternal case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML : setOrderByForXml((XmlOrderBy) null); return; + case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML : + setMapKeyForXml((XmlMapKey) null); + return; } super.eUnset(featureID); } @@ -495,6 +621,8 @@ public abstract class XmlMultiRelationshipMappingInternal return getJoinTableForXml() != null; case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML : return getOrderByForXml() != null; + case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML : + return mapKeyForXml != null; } return super.eIsSet(featureID); } @@ -534,6 +662,8 @@ public abstract class XmlMultiRelationshipMappingInternal return OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__JOIN_TABLE_FOR_XML; case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML : return OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__ORDER_BY_FOR_XML; + case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML : + return OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__MAP_KEY_FOR_XML; default : return -1; } @@ -582,6 +712,8 @@ public abstract class XmlMultiRelationshipMappingInternal return OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__JOIN_TABLE_FOR_XML; case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__ORDER_BY_FOR_XML : return OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__ORDER_BY_FOR_XML; + case OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_FOR_XML__MAP_KEY_FOR_XML : + return OrmPackage.XML_MULTI_RELATIONSHIP_MAPPING_INTERNAL__MAP_KEY_FOR_XML; default : return -1; } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/EntityTranslator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/EntityTranslator.java index 3adc4ba000..8715ba66c6 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/EntityTranslator.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/EntityTranslator.java @@ -135,7 +135,7 @@ public class EntityTranslator extends TypeMappingTranslator } protected Translator createInheritanceTranslator() { - return new EnumeratorTranslator(ENTITY__INHERITANCE + "/" + STRATEGY, MAPPINGS_PKG.getIEntity_InheritanceStrategy(), DOM_ATTRIBUTE); + return new InheritanceTranslator(ENTITY__INHERITANCE, JPA_CORE_XML_PKG.getXmlEntityForXml_InheritanceForXml()); } protected Translator createPrimaryKeyJoinColumnsTranslator() { @@ -178,7 +178,7 @@ public class EntityTranslator extends TypeMappingTranslator } protected Translator createIdClassTranslator() { - return new Translator(ID_CLASS + "/" + ID_CLASS__CLASS, JpaCoreMappingsPackage.eINSTANCE.getIEntity_IdClass(), DOM_ATTRIBUTE); + return new IdClassTranslator(ID_CLASS, JPA_CORE_XML_PKG.getXmlEntityForXml_IdClassForXml()); } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/IdClassTranslator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/IdClassTranslator.java new file mode 100644 index 0000000000..4d10df1e2f --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/IdClassTranslator.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 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.resource; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.jpt.core.internal.content.orm.OrmFactory; +import org.eclipse.jpt.core.internal.content.orm.OrmPackage; +import org.eclipse.wst.common.internal.emf.resource.IDTranslator; +import org.eclipse.wst.common.internal.emf.resource.Translator; + +public class IdClassTranslator extends Translator implements OrmXmlMapper +{ + protected static final OrmPackage JPA_CORE_XML_PKG = + OrmPackage.eINSTANCE; + + + private Translator[] children; + + public IdClassTranslator(String domNameAndPath, EStructuralFeature aFeature) { + super(domNameAndPath, aFeature); + } + + public Translator[] getChildren(Object target, int versionID) { + if (children == null) { + children = createChildren(); + } + return children; + } + + protected Translator[] createChildren() { + return new Translator[] { + IDTranslator.INSTANCE, + createValueTranslator(), + }; + } + + protected Translator createValueTranslator() { + return new Translator(ID_CLASS__CLASS, JPA_CORE_XML_PKG.getXmlIdClass_Value(), DOM_ATTRIBUTE); + } + + @Override + public EObject createEMFObject(String nodeName, String readAheadName) { + return OrmFactory.eINSTANCE.createXmlIdClass(); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/InheritanceTranslator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/InheritanceTranslator.java new file mode 100644 index 0000000000..2373d91e8c --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/InheritanceTranslator.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright (c) 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.resource; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.jpt.core.internal.content.orm.OrmFactory; +import org.eclipse.jpt.core.internal.content.orm.OrmPackage; +import org.eclipse.wst.common.internal.emf.resource.IDTranslator; +import org.eclipse.wst.common.internal.emf.resource.Translator; + +public class InheritanceTranslator extends Translator implements OrmXmlMapper +{ + protected static final OrmPackage JPA_CORE_XML_PKG = + OrmPackage.eINSTANCE; + + + private Translator[] children; + + public InheritanceTranslator(String domNameAndPath, EStructuralFeature aFeature) { + super(domNameAndPath, aFeature); + } + + public Translator[] getChildren(Object target, int versionID) { + if (children == null) { + children = createChildren(); + } + return children; + } + + protected Translator[] createChildren() { + return new Translator[] { + IDTranslator.INSTANCE, + createStrategyTranslator(), + }; + } + + protected Translator createStrategyTranslator() { + return new EnumeratorTranslator(INHERITANCE__STRATEGY, JPA_CORE_XML_PKG.getXmlInheritance_Strategy(), DOM_ATTRIBUTE); + } + + @Override + public EObject createEMFObject(String nodeName, String readAheadName) { + return OrmFactory.eINSTANCE.createXmlInheritance(); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/MapKeyTranslator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/MapKeyTranslator.java index 4587f54b94..8206e09ca3 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/MapKeyTranslator.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/MapKeyTranslator.java @@ -8,52 +8,46 @@ *******************************************************************************/ package org.eclipse.jpt.core.internal.content.orm.resource; -import java.util.Collections; -import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.jpt.core.internal.mappings.EnumType; +import org.eclipse.jpt.core.internal.content.orm.OrmFactory; +import org.eclipse.jpt.core.internal.content.orm.OrmPackage; +import org.eclipse.wst.common.internal.emf.resource.IDTranslator; import org.eclipse.wst.common.internal.emf.resource.Translator; -/** - * There is a bug in the translator framework that causes - * enumerators in xml elements and enumerators in xml attributes - * to be treated differently. When the enumerator is an attribute - * setting the model to the default causes the attribute to be removed. - * With an element is causes the default literal to be placed in - * the tag. - * - * The problem is wrapped up in the emf unsettable attribute as well. - * For attributes the eIsSet method returns false for the default value - * For elements the eIsSet method returns true for the default value. - * I don't want to have to use the unsettable option in emf since that would - * require that I call different api. I am not sure yet what the bug is in - * the translator, so I have entered one ~KFM - */ -public class MapKeyTranslator extends Translator + +public class MapKeyTranslator extends Translator implements OrmXmlMapper { + protected static final OrmPackage JPA_CORE_XML_PKG = + OrmPackage.eINSTANCE; + - public MapKeyTranslator(String domNameAndPath, EStructuralFeature aFeature, int style) { - super(domNameAndPath, aFeature, style); + private Translator[] children; + + public MapKeyTranslator(String domNameAndPath, EStructuralFeature aFeature) { + super(domNameAndPath, aFeature); } - @Override - public Object getMOFValue(EObject mofObject) { - EnumType type = (EnumType) super.getMOFValue(mofObject); - if (type == EnumType.DEFAULT) { - return null; + public Translator[] getChildren(Object target, int versionID) { + if (children == null) { + children = createChildren(); } - return type; + return children; } - + + protected Translator[] createChildren() { + return new Translator[] { + IDTranslator.INSTANCE, + createNameTranslator(), + }; + } + + protected Translator createNameTranslator() { + return new Translator(MAP_KEY__NAME, JPA_CORE_XML_PKG.getXmlMapKey_Name(), DOM_ATTRIBUTE); + } + @Override - public List getMOFChildren(EObject mofObject) { - List result = super.getMOFChildren(mofObject); - if(result != null && result.size() > 0) { - EnumType type = (EnumType) result.get(0); - if(type.getValue() == EnumType.DEFAULT_VALUE) - result = Collections.EMPTY_LIST; - } - return result; + public EObject createEMFObject(String nodeName, String readAheadName) { + return OrmFactory.eINSTANCE.createXmlIdClass(); } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/MultiRelationshipTranslator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/MultiRelationshipTranslator.java index e7fdaa1741..ddbb995a21 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/MultiRelationshipTranslator.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/MultiRelationshipTranslator.java @@ -51,6 +51,6 @@ public abstract class MultiRelationshipTranslator extends RelationshipTranslator } protected Translator createMapKeyTranslator() { - return new Translator(MAP_KEY + "/" + MAP_KEY__NAME, JpaCoreMappingsPackage.eINSTANCE.getIMultiRelationshipMapping_MapKey(), DOM_ATTRIBUTE); + return new MapKeyTranslator(MAP_KEY, JPA_CORE_XML_PKG.getXmlMultiRelationshipMappingForXml_MapKeyForXml()); } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/OrmXmlMapper.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/OrmXmlMapper.java index c46f03842e..26d6540174 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/OrmXmlMapper.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/resource/OrmXmlMapper.java @@ -69,6 +69,7 @@ public interface OrmXmlMapper String ENTITY__TABLE = "table"; //$NON-NLS-1$ String ENTITY__PRIMARY_KEY_JOIN_COLUMN = "primary-key-join-column"; //$NON-NLS-1$ String ENTITY__INHERITANCE = "inheritance"; //$NON-NLS-1$ + String INHERITANCE__STRATEGY = "strategy"; //$NON-NLS-1$ String ENTITY__DISCRIMINATOR_VALUE = "discriminator-value"; //$NON-NLS-1$ String ENTITY__DISCRIMINATOR_COLUMN = "discriminator-column"; //$NON-NLS-1$ String ENTITY__SEQUENCE_GENERATOR = "sequence-generator"; //$NON-NLS-1$ @@ -162,7 +163,7 @@ public interface OrmXmlMapper String SECONDARY_TABLE__PRIMARY_KEY_JOIN_COLUMN = "primary-key-join-column"; //$NON-NLS-1$ String SEQUENCE_GENERATOR = "sequence-generator"; //$NON-NLS-1$ String SEQUENCE_GENERATOR__SEQUENCE_NAME = "sequence-name"; //$NON-NLS-1$ - String STRATEGY = "strategy"; //$NON-NLS-1$ + String TABLE_GENERATOR = "table-generator"; //$NON-NLS-1$ String TABLE_GENERATOR__TABLE = "table"; //$NON-NLS-1$ String TABLE_GENERATOR__CATALOG = "catalog"; //$NON-NLS-1$ diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/util/OrmAdapterFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/util/OrmAdapterFactory.java index cb2b2a92cc..0b5cb18202 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/util/OrmAdapterFactory.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/util/OrmAdapterFactory.java @@ -55,10 +55,13 @@ import org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal; import org.eclipse.jpt.core.internal.content.orm.XmlGeneratedValue; import org.eclipse.jpt.core.internal.content.orm.XmlGenerator; import org.eclipse.jpt.core.internal.content.orm.XmlId; +import org.eclipse.jpt.core.internal.content.orm.XmlIdClass; +import org.eclipse.jpt.core.internal.content.orm.XmlInheritance; import org.eclipse.jpt.core.internal.content.orm.XmlJoinColumn; import org.eclipse.jpt.core.internal.content.orm.XmlJoinTable; import org.eclipse.jpt.core.internal.content.orm.XmlManyToMany; import org.eclipse.jpt.core.internal.content.orm.XmlManyToOne; +import org.eclipse.jpt.core.internal.content.orm.XmlMapKey; import org.eclipse.jpt.core.internal.content.orm.XmlMappedSuperclass; import org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMapping; import org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml; @@ -485,6 +488,21 @@ public class OrmAdapterFactory extends AdapterFactoryImpl } @Override + public Adapter caseXmlIdClass(XmlIdClass object) { + return createXmlIdClassAdapter(); + } + + @Override + public Adapter caseXmlInheritance(XmlInheritance object) { + return createXmlInheritanceAdapter(); + } + + @Override + public Adapter caseXmlMapKey(XmlMapKey object) { + return createXmlMapKeyAdapter(); + } + + @Override public Adapter caseIJpaEObject(IJpaEObject object) { return createIJpaEObjectAdapter(); } @@ -1581,6 +1599,48 @@ public class OrmAdapterFactory extends AdapterFactoryImpl } /** + * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.internal.content.orm.XmlIdClass <em>Xml Id Class</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jpt.core.internal.content.orm.XmlIdClass + * @generated + */ + public Adapter createXmlIdClassAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.internal.content.orm.XmlInheritance <em>Xml Inheritance</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jpt.core.internal.content.orm.XmlInheritance + * @generated + */ + public Adapter createXmlInheritanceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.internal.content.orm.XmlMapKey <em>Xml Map Key</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.jpt.core.internal.content.orm.XmlMapKey + * @generated + */ + public Adapter createXmlMapKeyAdapter() { + return null; + } + + /** * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.internal.IJpaEObject <em>IJpa EObject</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/util/OrmSwitch.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/util/OrmSwitch.java index 3b2f6aaf47..6969850722 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/util/OrmSwitch.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/util/OrmSwitch.java @@ -54,10 +54,13 @@ import org.eclipse.jpt.core.internal.content.orm.XmlEntityInternal; import org.eclipse.jpt.core.internal.content.orm.XmlGeneratedValue; import org.eclipse.jpt.core.internal.content.orm.XmlGenerator; import org.eclipse.jpt.core.internal.content.orm.XmlId; +import org.eclipse.jpt.core.internal.content.orm.XmlIdClass; +import org.eclipse.jpt.core.internal.content.orm.XmlInheritance; import org.eclipse.jpt.core.internal.content.orm.XmlJoinColumn; import org.eclipse.jpt.core.internal.content.orm.XmlJoinTable; import org.eclipse.jpt.core.internal.content.orm.XmlManyToMany; import org.eclipse.jpt.core.internal.content.orm.XmlManyToOne; +import org.eclipse.jpt.core.internal.content.orm.XmlMapKey; import org.eclipse.jpt.core.internal.content.orm.XmlMappedSuperclass; import org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMapping; import org.eclipse.jpt.core.internal.content.orm.XmlMultiRelationshipMappingForXml; @@ -1479,6 +1482,57 @@ public class OrmSwitch<T> result = defaultCase(theEObject); return result; } + case OrmPackage.XML_ID_CLASS : { + XmlIdClass xmlIdClass = (XmlIdClass) theEObject; + T result = caseXmlIdClass(xmlIdClass); + if (result == null) + result = caseXmlEObject(xmlIdClass); + if (result == null) + result = caseJpaEObject(xmlIdClass); + if (result == null) + result = caseIXmlEObject(xmlIdClass); + if (result == null) + result = caseIJpaEObject(xmlIdClass); + if (result == null) + result = caseIJpaSourceObject(xmlIdClass); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case OrmPackage.XML_INHERITANCE : { + XmlInheritance xmlInheritance = (XmlInheritance) theEObject; + T result = caseXmlInheritance(xmlInheritance); + if (result == null) + result = caseXmlEObject(xmlInheritance); + if (result == null) + result = caseJpaEObject(xmlInheritance); + if (result == null) + result = caseIXmlEObject(xmlInheritance); + if (result == null) + result = caseIJpaEObject(xmlInheritance); + if (result == null) + result = caseIJpaSourceObject(xmlInheritance); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case OrmPackage.XML_MAP_KEY : { + XmlMapKey xmlMapKey = (XmlMapKey) theEObject; + T result = caseXmlMapKey(xmlMapKey); + if (result == null) + result = caseXmlEObject(xmlMapKey); + if (result == null) + result = caseJpaEObject(xmlMapKey); + if (result == null) + result = caseIXmlEObject(xmlMapKey); + if (result == null) + result = caseIJpaEObject(xmlMapKey); + if (result == null) + result = caseIJpaSourceObject(xmlMapKey); + if (result == null) + result = defaultCase(theEObject); + return result; + } default : return defaultCase(theEObject); } @@ -2340,6 +2394,51 @@ public class OrmSwitch<T> } /** + * Returns the result of interpretting the object as an instance of '<em>Xml Id Class</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Xml Id Class</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseXmlIdClass(XmlIdClass object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Xml Inheritance</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Xml Inheritance</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseXmlInheritance(XmlInheritance object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Xml Map Key</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Xml Map Key</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseXmlMapKey(XmlMapKey object) { + return null; + } + + /** * Returns the result of interpretting the object as an instance of '<em>IJpa EObject</em>'. * <!-- begin-user-doc --> * This implementation returns null; diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/ITable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/ITable.java index 96735757f3..77763ff27a 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/ITable.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/ITable.java @@ -269,12 +269,16 @@ public interface ITable extends IJpaSourceObject ITypeMapping getTypeMapping(); } - class UniqueConstraintOwner implements IUniqueConstraint.Owner { + + class UniqueConstraintOwner implements IUniqueConstraint.Owner + { private final ITable table; + public UniqueConstraintOwner(ITable table) { super(); this.table = table; } + public Iterator<String> candidateUniqueConstraintColumnNames() { return this.table.dbTable().columnNames(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/ITableGenerator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/ITableGenerator.java index 11c42856d6..3b7aaf92e4 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/ITableGenerator.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/ITableGenerator.java @@ -412,12 +412,15 @@ public interface ITableGenerator extends IGenerator Table dbTable(); - class UniqueConstraintOwner implements IUniqueConstraint.Owner { + class UniqueConstraintOwner implements IUniqueConstraint.Owner + { private final ITableGenerator tableGenerator; + public UniqueConstraintOwner(ITableGenerator tableGenerator) { super(); this.tableGenerator = tableGenerator; } + public Iterator<String> candidateUniqueConstraintColumnNames() { return this.tableGenerator.dbTable().columnNames(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/IUniqueConstraint.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/IUniqueConstraint.java index 40bc94a14a..ca1984e9f0 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/IUniqueConstraint.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/mappings/IUniqueConstraint.java @@ -50,8 +50,8 @@ public interface IUniqueConstraint extends IJpaSourceObject /** * All containers must implement this interface. */ - interface Owner { + interface Owner + { Iterator<String> candidateUniqueConstraintColumnNames(); } - } |