diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java | 367 |
1 files changed, 0 insertions, 367 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java deleted file mode 100644 index 60cc1eff0e..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java +++ /dev/null @@ -1,367 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 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.context.orm; - -import java.util.Iterator; -import java.util.List; -import org.eclipse.jpt.core.JpaStructureNode; -import org.eclipse.jpt.core.context.AccessType; -import org.eclipse.jpt.core.context.PersistentAttribute; -import org.eclipse.jpt.core.context.java.JavaPersistentType; -import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute; -import org.eclipse.jpt.core.context.orm.OrmPersistentType; -import org.eclipse.jpt.core.context.orm.OrmTypeMapping; -import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata; -import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages; -import org.eclipse.jpt.core.internal.validation.JpaValidationMessages; -import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; -import org.eclipse.jpt.core.resource.orm.AbstractXmlTypeMapping; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.db.Schema; -import org.eclipse.jpt.db.Table; -import org.eclipse.jpt.utility.internal.StringTools; -import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; - - -public abstract class AbstractOrmTypeMapping<T extends AbstractXmlTypeMapping> extends AbstractOrmJpaContextNode implements OrmTypeMapping -{ - - protected String class_; - - public AccessType defaultAccess; - - protected AccessType specifiedAccess; - - public boolean defaultMetadataComplete; - - protected Boolean specifiedMetadataComplete; - - protected JavaPersistentType javaPersistentType; - - protected T typeMapping; - - protected AbstractOrmTypeMapping(OrmPersistentType parent) { - super(parent); - } - - public boolean isMapped() { - return true; - } - - public String getTableName() { - return null; - } - - public String getClass_() { - return this.class_; - } - - public void setClass(String newClass) { - String oldClass = this.class_; - this.class_ = newClass; - this.getTypeMappingResource().setClassName(newClass); - firePropertyChanged(CLASS_PROPERTY, oldClass, newClass); - getPersistentType().classChanged(oldClass, newClass); - } - - public AccessType getDefaultAccess() { - return this.defaultAccess; - } - - protected void setDefaultAccess(AccessType newDefaultAccess) { - AccessType oldDefaultAccess = this.defaultAccess; - this.defaultAccess = newDefaultAccess; - firePropertyChanged(DEFAULT_ACCESS_PROPERTY, oldDefaultAccess, newDefaultAccess); - } - - public AccessType getSpecifiedAccess() { - return this.specifiedAccess; - } - - public void setSpecifiedAccess(AccessType newSpecifiedAccess) { - AccessType oldSpecifiedAccess = this.specifiedAccess; - this.specifiedAccess = newSpecifiedAccess; - this.getTypeMappingResource().setAccess(AccessType.toXmlResourceModel(newSpecifiedAccess)); - firePropertyChanged(SPECIFIED_ACCESS_PROPERTY, oldSpecifiedAccess, newSpecifiedAccess); - } - - public AccessType getAccess() { - return (this.getSpecifiedAccess() == null) ? this.getDefaultAccess() : this.getSpecifiedAccess(); - } - - public boolean isMetadataComplete() { - if (isDefaultMetadataComplete()) { - //entity-mappings/persistence-unit-metadata/xml-mapping-metadata-complete is specified, then it overrides - //anything set here - return true; - } - return (this.getSpecifiedMetadataComplete() == null) ? this.isDefaultMetadataComplete() : this.getSpecifiedMetadataComplete().booleanValue(); - } - - public boolean isDefaultMetadataComplete() { - return this.defaultMetadataComplete; - } - - protected void setDefaultMetadataComplete(boolean newDefaultMetadataComplete) { - boolean oldMetadataComplete = this.defaultMetadataComplete; - this.defaultMetadataComplete = newDefaultMetadataComplete; - firePropertyChanged(DEFAULT_METADATA_COMPLETE_PROPERTY, oldMetadataComplete, newDefaultMetadataComplete); - } - - public Boolean getSpecifiedMetadataComplete() { - return this.specifiedMetadataComplete; - } - - public void setSpecifiedMetadataComplete(Boolean newSpecifiedMetadataComplete) { - Boolean oldMetadataComplete = this.specifiedMetadataComplete; - this.specifiedMetadataComplete = newSpecifiedMetadataComplete; - this.getTypeMappingResource().setMetadataComplete(newSpecifiedMetadataComplete); - firePropertyChanged(SPECIFIED_METADATA_COMPLETE_PROPERTY, oldMetadataComplete, newSpecifiedMetadataComplete); - } - - public OrmPersistentType getPersistentType() { - return (OrmPersistentType) getParent(); - } - - /** - * ITypeMapping is changed and various ITypeMappings may have - * common settings. In this method initialize the new ITypeMapping (this) - * fromthe old ITypeMapping (oldMapping) - * @param oldMapping - */ - public void initializeFrom(OrmTypeMapping oldMapping) { - this.setClass(oldMapping.getClass_()); - this.setSpecifiedAccess(oldMapping.getSpecifiedAccess()); - this.setSpecifiedMetadataComplete(oldMapping.getSpecifiedMetadataComplete()); - this.setDefaultAccess(oldMapping.getDefaultAccess()); - this.setDefaultMetadataComplete(oldMapping.isDefaultMetadataComplete()); - } - - public Table getPrimaryDbTable() { - return null; - } - - public Table getDbTable(String tableName) { - return null; - } - - public Schema getDbSchema() { - return null; - } - - /** - * @see TypeMapping#attributeMappingKeyAllowed(String) - * - * Default implementation: override where needed - */ - public boolean attributeMappingKeyAllowed(String attributeMappingKey) { - return true; - } - - public Iterator<OrmPersistentAttribute> overridableAttributes() { - return EmptyIterator.instance(); - } - - public Iterator<String> overridableAttributeNames() { - return EmptyIterator.instance(); - } - - public Iterator<PersistentAttribute> allOverridableAttributes() { - return EmptyIterator.instance(); - } - - public Iterator<String> allOverridableAttributeNames() { - return EmptyIterator.instance(); - } - - public Iterator<OrmPersistentAttribute> overridableAssociations() { - return EmptyIterator.instance(); - } - - public Iterator<String> overridableAssociationNames() { - return EmptyIterator.instance(); - } - - public Iterator<PersistentAttribute> allOverridableAssociations() { - return EmptyIterator.instance(); - } - - public Iterator<String> allOverridableAssociationNames() { - return EmptyIterator.instance(); - } - - public T getTypeMappingResource() { - return this.typeMapping; - } - - protected PersistenceUnitMetadata getPersistenceUnitMetadata() { - return getEntityMappings().getPersistenceUnitMetadata(); - } - - protected boolean defaultMetadataComplete() { - return getPersistenceUnitMetadata().isXmlMappingMetadataComplete(); - } - - protected AccessType defaultAccess() { - if (!isMetadataComplete()) { - if (getJavaPersistentType() != null) { - if (getJavaPersistentType().hasAnyAttributeMappingAnnotations()) { - return getJavaPersistentType().getAccess(); - } - if (getPersistentType().getParentPersistentType() != null) { - return getPersistentType().getParentPersistentType().getAccess(); - } - } - } - return getEntityMappings().getAccess(); - } - - public JavaPersistentType getJavaPersistentType() { - return this.javaPersistentType; - } - - protected void setJavaPersistentType(JavaPersistentType newJavaPersistentType) { - JavaPersistentType oldJavaPersistentType = this.javaPersistentType; - this.javaPersistentType = newJavaPersistentType; - firePropertyChanged(JAVA_PERSISTENT_TYPE_PROPERTY, oldJavaPersistentType, newJavaPersistentType); - } - - protected void initializeJavaPersistentType() { - JavaResourcePersistentType persistentTypeResource = getJavaResourcePersistentType(); - if (persistentTypeResource != null) { - this.javaPersistentType = buildJavaPersistentType(persistentTypeResource); - } - } - - protected JavaResourcePersistentType getJavaResourcePersistentType() { - // try to resolve by only the locally specified name - JavaResourcePersistentType persistentTypeResource = getJpaProject().getJavaPersistentTypeResource(getClass_()); - if (persistentTypeResource == null) { - // try to resolve by prepending the global package name - persistentTypeResource = getJpaProject().getJavaPersistentTypeResource(getEntityMappings().getPackage() + "." + getClass_()); - } - return persistentTypeResource; - } - - protected void updateJavaPersistentType() { - JavaResourcePersistentType persistentTypeResource = getJavaResourcePersistentType(); - if (persistentTypeResource == null) { - setJavaPersistentType(null); - } - else { - if (getJavaPersistentType() != null) { - getJavaPersistentType().update(persistentTypeResource); - } - else { - setJavaPersistentType(buildJavaPersistentType(persistentTypeResource)); - } - } - } - - protected JavaPersistentType buildJavaPersistentType(JavaResourcePersistentType resourcePersistentType) { - return getJpaFactory().buildJavaPersistentType(this, resourcePersistentType); - } - - public void initialize(T typeMapping) { - this.typeMapping = typeMapping; - this.class_ = typeMapping.getClassName(); - this.initializeJavaPersistentType(); - this.specifiedMetadataComplete = this.metadataComplete(typeMapping); - this.defaultMetadataComplete = this.defaultMetadataComplete(); - this.specifiedAccess = AccessType.fromXmlResourceModel(typeMapping.getAccess()); - this.defaultAccess = this.defaultAccess(); - } - - public void update(T typeMapping) { - this.typeMapping = typeMapping; - this.setClass(typeMapping.getClassName()); - this.updateJavaPersistentType(); - this.setSpecifiedMetadataComplete(this.metadataComplete(typeMapping)); - this.setDefaultMetadataComplete(this.defaultMetadataComplete()); - this.setSpecifiedAccess(AccessType.fromXmlResourceModel(typeMapping.getAccess())); - this.setDefaultAccess(this.defaultAccess()); - } - - protected Boolean metadataComplete(AbstractXmlTypeMapping typeMapping) { - return typeMapping.getMetadataComplete(); - } - - - - // ************************************************************************* - - public JpaStructureNode getStructureNode(int offset) { - if (this.typeMapping.containsOffset(offset)) { - return getPersistentType(); - } - return null; - } - - public TextRange getSelectionTextRange() { - return this.typeMapping.getSelectionTextRange(); - } - - public TextRange getClassTextRange() { - return this.typeMapping.getClassTextRange(); - } - - public TextRange getAttributesTextRange() { - return this.typeMapping.getAttributesTextRange(); - } - - public boolean containsOffset(int textOffset) { - if (this.typeMapping == null) { - return false; - } - return this.typeMapping.containsOffset(textOffset); - } - - //************************* validation ************************ - @Override - public void addToMessages(List<IMessage> messages) { - super.addToMessages(messages); - addClassMessages(messages); - } - protected void addClassMessages(List<IMessage> messages) { - addUnspecifiedClassMessage(messages); - addUnresolvedClassMessage(messages); - } - - protected void addUnspecifiedClassMessage(List<IMessage> messages) { - if (StringTools.stringIsEmpty(getClass_())) { - messages.add( - DefaultJpaValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JpaValidationMessages.PERSISTENT_TYPE_UNSPECIFIED_CLASS, - this, - this.getClassTextRange()) - ); - } - } - - protected void addUnresolvedClassMessage(List<IMessage> messages) { - if (! StringTools.stringIsEmpty(getClass_()) - && getJavaPersistentType() == null) { - messages.add( - DefaultJpaValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JpaValidationMessages.PERSISTENT_TYPE_UNRESOLVED_CLASS, - new String[] {getClass_()}, - this, - this.getClassTextRange()) - ); - } - } - - public TextRange getValidationTextRange() { - return this.typeMapping.getValidationTextRange(); - } -} |