diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlRelationshipMapping.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlRelationshipMapping.java | 582 |
1 files changed, 0 insertions, 582 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlRelationshipMapping.java deleted file mode 100644 index de47356025..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/orm/XmlRelationshipMapping.java +++ /dev/null @@ -1,582 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2007 Oracle. All rights reserved. This - * program and the accompanying materials are made available under the terms of - * the Eclipse Public License v1.0 which accompanies this distribution, and is - * available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: Oracle. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jpt.core.internal.content.orm; - -import java.util.Iterator; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.Signature; -import org.eclipse.jpt.core.internal.IPersistentType; -import org.eclipse.jpt.core.internal.ITypeMapping; -import org.eclipse.jpt.core.internal.jdtutility.JDTTools; -import org.eclipse.jpt.core.internal.mappings.ICascade; -import org.eclipse.jpt.core.internal.mappings.IEntity; -import org.eclipse.jpt.core.internal.mappings.IRelationshipMapping; -import org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage; -import org.eclipse.jpt.core.internal.mappings.RelationshipMappingTools; -import org.eclipse.jpt.core.internal.platform.BaseJpaPlatform; -import org.eclipse.jpt.core.internal.platform.DefaultsContext; -import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; - -/** - * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Xml Relationship Mapping</b></em>'. - * <!-- end-user-doc --> - * - * - * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getXmlRelationshipMapping() - * @model kind="class" abstract="true" - * @generated - */ -public abstract class XmlRelationshipMapping extends XmlAttributeMapping - implements IRelationshipMapping -{ - /** - * The default value of the '{@link #getTargetEntity() <em>Target Entity</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getTargetEntity() - * @generated - * @ordered - */ - protected static final String TARGET_ENTITY_EDEFAULT = null; - - /** - * The default value of the '{@link #getSpecifiedTargetEntity() <em>Specified Target Entity</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getSpecifiedTargetEntity() - * @generated - * @ordered - */ - protected static final String SPECIFIED_TARGET_ENTITY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getSpecifiedTargetEntity() <em>Specified Target Entity</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getSpecifiedTargetEntity() - * @generated - * @ordered - */ - protected String specifiedTargetEntity = SPECIFIED_TARGET_ENTITY_EDEFAULT; - - /** - * The default value of the '{@link #getDefaultTargetEntity() <em>Default Target Entity</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getDefaultTargetEntity() - * @generated - * @ordered - */ - protected static final String DEFAULT_TARGET_ENTITY_EDEFAULT = null; - - /** - * The cached value of the '{@link #getDefaultTargetEntity() <em>Default Target Entity</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getDefaultTargetEntity() - * @generated - * @ordered - */ - protected String defaultTargetEntity = DEFAULT_TARGET_ENTITY_EDEFAULT; - - /** - * The cached value of the '{@link #getResolvedTargetEntity() <em>Resolved Target Entity</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getResolvedTargetEntity() - * @generated - * @ordered - */ - protected IEntity resolvedTargetEntity; - - /** - * The cached value of the '{@link #getCascade() <em>Cascade</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCascade() - * @generated - * @ordered - */ - protected ICascade cascade; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected XmlRelationshipMapping() { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() { - return OrmPackage.Literals.XML_RELATIONSHIP_MAPPING; - } - - /** - * Returns the value of the '<em><b>Target Entity</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Target Entity</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Target Entity</em>' attribute. - * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIRelationshipMapping_TargetEntity() - * @model changeable="false" volatile="true" derived="true" - * @generated NOT - */ - public String getTargetEntity() { - return (this.getSpecifiedTargetEntity() == null) ? getDefaultTargetEntity() : this.getSpecifiedTargetEntity(); - } - - /** - * Returns the value of the '<em><b>Specified Target Entity</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Specified Target Entity</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Specified Target Entity</em>' attribute. - * @see #setSpecifiedTargetEntity(String) - * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIRelationshipMapping_SpecifiedTargetEntity() - * @model - * @generated - */ - public String getSpecifiedTargetEntity() { - return specifiedTargetEntity; - } - - /** - * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlRelationshipMapping#getSpecifiedTargetEntity <em>Specified Target Entity</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Specified Target Entity</em>' attribute. - * @see #getSpecifiedTargetEntity() - * @generated - */ - public void setSpecifiedTargetEntity(String newSpecifiedTargetEntity) { - String oldSpecifiedTargetEntity = specifiedTargetEntity; - specifiedTargetEntity = newSpecifiedTargetEntity; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_RELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY, oldSpecifiedTargetEntity, specifiedTargetEntity)); - } - - /** - * Returns the value of the '<em><b>Default Target Entity</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Default Target Entity</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Default Target Entity</em>' attribute. - * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIRelationshipMapping_DefaultTargetEntity() - * @model changeable="false" - * @generated - */ - public String getDefaultTargetEntity() { - return defaultTargetEntity; - } - - /** - * Returns the value of the '<em><b>Resolved Target Entity</b></em>' reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Resolved Target Entity</em>' reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Resolved Target Entity</em>' reference. - * @see #setResolvedTargetEntity(IEntity) - * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIRelationshipMapping_ResolvedTargetEntity() - * @model - * @generated - */ - public IEntity getResolvedTargetEntity() { - if (resolvedTargetEntity != null && resolvedTargetEntity.eIsProxy()) { - InternalEObject oldResolvedTargetEntity = (InternalEObject) resolvedTargetEntity; - resolvedTargetEntity = (IEntity) eResolveProxy(oldResolvedTargetEntity); - if (resolvedTargetEntity != oldResolvedTargetEntity) { - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.RESOLVE, OrmPackage.XML_RELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY, oldResolvedTargetEntity, resolvedTargetEntity)); - } - } - return resolvedTargetEntity; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public IEntity basicGetResolvedTargetEntity() { - return resolvedTargetEntity; - } - - /** - * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlRelationshipMapping#getResolvedTargetEntity <em>Resolved Target Entity</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Resolved Target Entity</em>' reference. - * @see #getResolvedTargetEntity() - * @generated - */ - public void setResolvedTargetEntity(IEntity newResolvedTargetEntity) { - IEntity oldResolvedTargetEntity = resolvedTargetEntity; - resolvedTargetEntity = newResolvedTargetEntity; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_RELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY, oldResolvedTargetEntity, resolvedTargetEntity)); - } - - /** - * Returns the value of the '<em><b>Cascade</b></em>' containment reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Cascade</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>Cascade</em>' containment reference. - * @see #setCascade(ICascade) - * @see org.eclipse.jpt.core.internal.content.orm.OrmPackage#getIRelationshipMapping_Cascade() - * @model containment="true" - * @generated - */ - public ICascade getCascade() { - return cascade; - } - - public ICascade createCascade() { - return OrmFactory.eINSTANCE.createXmlCascade(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetCascade(ICascade newCascade, NotificationChain msgs) { - ICascade oldCascade = cascade; - cascade = newCascade; - if (eNotificationRequired()) { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE, oldCascade, newCascade); - if (msgs == null) - msgs = notification; - else - msgs.add(notification); - } - return msgs; - } - - /** - * Sets the value of the '{@link org.eclipse.jpt.core.internal.content.orm.XmlRelationshipMapping#getCascade <em>Cascade</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Cascade</em>' containment reference. - * @see #getCascade() - * @generated - */ - public void setCascade(ICascade newCascade) { - if (newCascade != cascade) { - NotificationChain msgs = null; - if (cascade != null) - msgs = ((InternalEObject) cascade).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE, null, msgs); - if (newCascade != null) - msgs = ((InternalEObject) newCascade).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE, null, msgs); - msgs = basicSetCascade(newCascade, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE, newCascade, newCascade)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { - switch (featureID) { - case OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE : - return basicSetCascade(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - //TODO should we allow setting through the ecore, that would make this method - //public and part of the ITable api. only the model needs to be setting the default, - //but the ui needs to be listening for changes to the default. - protected void setDefaultTargetEntity(String newDefaultTargetEntity) { - String oldDefaultTargetEntity = this.defaultTargetEntity; - this.defaultTargetEntity = newDefaultTargetEntity; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_RELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY, oldDefaultTargetEntity, this.defaultTargetEntity)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) { - switch (featureID) { - case OrmPackage.XML_RELATIONSHIP_MAPPING__TARGET_ENTITY : - return getTargetEntity(); - case OrmPackage.XML_RELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY : - return getSpecifiedTargetEntity(); - case OrmPackage.XML_RELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY : - return getDefaultTargetEntity(); - case OrmPackage.XML_RELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY : - if (resolve) - return getResolvedTargetEntity(); - return basicGetResolvedTargetEntity(); - case OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE : - return getCascade(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) { - switch (featureID) { - case OrmPackage.XML_RELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY : - setSpecifiedTargetEntity((String) newValue); - return; - case OrmPackage.XML_RELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY : - setResolvedTargetEntity((IEntity) newValue); - return; - case OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE : - setCascade((ICascade) newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) { - switch (featureID) { - case OrmPackage.XML_RELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY : - setSpecifiedTargetEntity(SPECIFIED_TARGET_ENTITY_EDEFAULT); - return; - case OrmPackage.XML_RELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY : - setResolvedTargetEntity((IEntity) null); - return; - case OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE : - setCascade((ICascade) null); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) { - switch (featureID) { - case OrmPackage.XML_RELATIONSHIP_MAPPING__TARGET_ENTITY : - return TARGET_ENTITY_EDEFAULT == null ? getTargetEntity() != null : !TARGET_ENTITY_EDEFAULT.equals(getTargetEntity()); - case OrmPackage.XML_RELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY : - return SPECIFIED_TARGET_ENTITY_EDEFAULT == null ? specifiedTargetEntity != null : !SPECIFIED_TARGET_ENTITY_EDEFAULT.equals(specifiedTargetEntity); - case OrmPackage.XML_RELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY : - return DEFAULT_TARGET_ENTITY_EDEFAULT == null ? defaultTargetEntity != null : !DEFAULT_TARGET_ENTITY_EDEFAULT.equals(defaultTargetEntity); - case OrmPackage.XML_RELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY : - return resolvedTargetEntity != null; - case OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE : - return cascade != null; - } - return super.eIsSet(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) { - if (baseClass == IRelationshipMapping.class) { - switch (derivedFeatureID) { - case OrmPackage.XML_RELATIONSHIP_MAPPING__TARGET_ENTITY : - return JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__TARGET_ENTITY; - case OrmPackage.XML_RELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY : - return JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY; - case OrmPackage.XML_RELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY : - return JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY; - case OrmPackage.XML_RELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY : - return JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY; - case OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE : - return JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__CASCADE; - default : - return -1; - } - } - return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) { - if (baseClass == IRelationshipMapping.class) { - switch (baseFeatureID) { - case JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__TARGET_ENTITY : - return OrmPackage.XML_RELATIONSHIP_MAPPING__TARGET_ENTITY; - case JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY : - return OrmPackage.XML_RELATIONSHIP_MAPPING__SPECIFIED_TARGET_ENTITY; - case JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY : - return OrmPackage.XML_RELATIONSHIP_MAPPING__DEFAULT_TARGET_ENTITY; - case JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY : - return OrmPackage.XML_RELATIONSHIP_MAPPING__RESOLVED_TARGET_ENTITY; - case JpaCoreMappingsPackage.IRELATIONSHIP_MAPPING__CASCADE : - return OrmPackage.XML_RELATIONSHIP_MAPPING__CASCADE; - default : - return -1; - } - } - return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public String toString() { - if (eIsProxy()) - return super.toString(); - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (specifiedTargetEntity: "); - result.append(specifiedTargetEntity); - result.append(", defaultTargetEntity: "); - result.append(defaultTargetEntity); - result.append(')'); - return result.toString(); - } - - @Override - public void initializeFromXmlRelationshipMapping(XmlRelationshipMapping oldMapping) { - super.initializeFromXmlRelationshipMapping(oldMapping); - setSpecifiedTargetEntity(oldMapping.getSpecifiedTargetEntity()); - } - - public boolean targetEntityIsValid(String targetEntity) { - return RelationshipMappingTools.targetEntityIsValid(targetEntity); - } - - public IEntity getEntity() { - ITypeMapping typeMapping = getPersistentType().getMapping(); - if (typeMapping instanceof IEntity) { - return (IEntity) typeMapping; - } - return null; - } - - public String fullyQualifiedTargetEntity() { - if (getTargetEntity() == null) { - return null; - } - if (targetEntityIncludesPackage()) { - return getTargetEntity(); - } - String package_ = getPersistentType().getMapping().getEntityMappings().getPackage(); - if (package_ != null) { - return package_ + '.' + getTargetEntity(); - } - return getTargetEntity(); - } - - private boolean targetEntityIncludesPackage() { - return getTargetEntity().lastIndexOf('.') != -1; - } - - public Iterator<String> allTargetEntityAttributeNames() { - IEntity targetEntity = this.getResolvedTargetEntity(); - return (targetEntity == null) ? EmptyIterator.<String> instance() : targetEntity.getPersistentType().allAttributeNames(); - } - - public Iterator<String> candidateMappedByAttributeNames() { - return this.allTargetEntityAttributeNames(); - } - - @Override - public void refreshDefaults(DefaultsContext defaultsContext) { - super.refreshDefaults(defaultsContext); - setDefaultTargetEntity((String) defaultsContext.getDefault(BaseJpaPlatform.DEFAULT_TARGET_ENTITY_KEY)); - String targetEntity = fullyQualifiedTargetEntity(); - if (targetEntity != null) { - IPersistentType persistentType = defaultsContext.persistentType(targetEntity); - if (persistentType != null) { - if (persistentType.getMapping() instanceof IEntity) { - setResolvedTargetEntity((IEntity) persistentType.getMapping()); - return; - } - } - } - setResolvedTargetEntity(null); - } - - /** - * the default 'targetEntity' is calculated from the attribute type; - * return null if the attribute type cannot possibly be an entity - */ - public String javaDefaultTargetEntity() { - return this.javaDefaultTargetEntity(this.getPersistentAttribute().getAttribute().typeSignature()); - } - - protected String javaDefaultTargetEntity(String signature) { - IType iType = getPersistentType().findJdtType(); - if (iType != null) { - return buildReferenceEntityTypeName(signature, iType); - } - return null; - } - - // TODO Embeddable??? - public static String buildReferenceEntityTypeName(String signature, IType jdtType) { - if (Signature.getArrayCount(signature) > 0) { - return null; // arrays cannot be entities - } - return JDTTools.resolve(Signature.toString(signature), jdtType); - } - -} |