Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java176
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseColumn.java302
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java362
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaGenerator.java148
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaJpaContextNode.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java458
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaNamedColumn.java189
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOverride.java126
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaQuery.java181
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java198
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java433
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTable.java444
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTypeMapping.java129
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAssociationOverride.java346
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAttributeOverride.java192
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaBasicMapping.java344
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaColumn.java154
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaDiscriminatorColumn.java151
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddable.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddedIdMapping.java40
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddedMapping.java33
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEntity.java1963
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaGeneratedValue.java114
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaIdMapping.java475
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinColumn.java195
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinTable.java739
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToManyMapping.java83
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToOneMapping.java70
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaMappedSuperclass.java170
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNamedNativeQuery.java81
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNamedQuery.java37
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNullAttributeMapping.java50
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToManyMapping.java86
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToOneMapping.java308
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentAttribute.java328
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentType.java526
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPrimaryKeyJoinColumn.java169
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaQueryHint.java71
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSecondaryTable.java344
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSequenceGenerator.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTable.java138
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java398
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTransientMapping.java47
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaUniqueConstraint.java158
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaVersionMapping.java166
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaBasicMappingProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaCascade.java112
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddableProvider.java52
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddedIdMappingProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddedMappingProvider.java56
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEntityProvider.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaIdMappingProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaManyToManyMappingProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaManyToOneMappingProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaMappedSuperclassProvider.java52
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullAttributeMappingProvider.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMapping.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMappingProvider.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaOneToManyMappingProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaOneToOneMappingProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaTransientMappingProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaVersionMappingProvider.java51
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/VirtualAttributeOverride.java107
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/VirtualAttributeOverrideColumn.java146
64 files changed, 0 insertions, 12525 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java
deleted file mode 100644
index 24ec2e19f3..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java
+++ /dev/null
@@ -1,176 +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.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public abstract class AbstractJavaAttributeMapping<T extends JavaResourceNode> extends AbstractJavaJpaContextNode
- implements JavaAttributeMapping
-{
- protected JavaResourcePersistentAttribute resourcePersistentAttribute;
-
-
- protected AbstractJavaAttributeMapping(JavaPersistentAttribute parent) {
- super(parent);
- }
-
- @SuppressWarnings("unchecked")
- protected T getMappingResource() {
- if (isDefault()) {
- return (T) this.resourcePersistentAttribute.getNullMappingAnnotation(getAnnotationName());
- }
- return (T) this.resourcePersistentAttribute.getMappingAnnotation(getAnnotationName());
- }
-
- public GenericJavaPersistentAttribute getPersistentAttribute() {
- return (GenericJavaPersistentAttribute) this.getParent();
- }
-
- protected JavaResourcePersistentAttribute getResourcePersistentAttribute() {
- return this.resourcePersistentAttribute;
- }
-
- /**
- * the persistent attribute can tell whether there is a "specified" mapping
- * or a "default" one
- */
- public boolean isDefault() {
- return this.getPersistentAttribute().mappingIsDefault(this);
- }
-
- protected boolean embeddableOwned() {
- return this.getTypeMapping().getKey() == MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY;
- }
-
- protected boolean entityOwned() {
- return this.getTypeMapping().getKey() == MappingKeys.ENTITY_TYPE_MAPPING_KEY;
- }
-
- public TypeMapping getTypeMapping() {
- return this.getPersistentAttribute().getTypeMapping();
- }
-
- public String getAttributeName() {
- return this.getPersistentAttribute().getName();
- }
-
- public Table getDbTable(String tableName) {
- return getTypeMapping().getDbTable(tableName);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- TextRange textRange = null;
- T mappingResource = getMappingResource();
- if (mappingResource != null) {
- textRange = mappingResource.getTextRange(astRoot);
- }
- return (textRange != null) ? textRange : this.getPersistentAttribute().getValidationTextRange(astRoot);
- }
-
- public String getPrimaryKeyColumnName() {
- return null;
- }
-
- public boolean isOverridableAttributeMapping() {
- return false;
- }
-
- public boolean isOverridableAssociationMapping() {
- return false;
- }
-
- public boolean isIdMapping() {
- return false;
- }
-
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- this.resourcePersistentAttribute = resourcePersistentAttribute;
- initialize(getMappingResource());
- }
-
- protected void initialize(T mappingResource) {
-
- }
-
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- this.resourcePersistentAttribute = resourcePersistentAttribute;
- this.update(getMappingResource());
- }
-
- protected void update(T mappingResource) {
-
- }
-
-
- //************ Validation *************************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- addModifierMessages(messages, astRoot);
- addInvalidMappingMessage(messages, astRoot);
- }
-
- protected void addModifierMessages(List<IMessage> messages, CompilationUnit astRoot) {
- GenericJavaPersistentAttribute attribute = this.getPersistentAttribute();
- if (attribute.getMappingKey() == MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY) {
- return;
- }
-
- if ( this.resourcePersistentAttribute.isForField()) {
- if (this.resourcePersistentAttribute.isFinal()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENT_ATTRIBUTE_FINAL_FIELD,
- new String[] {attribute.getName()},
- attribute, attribute.getValidationTextRange(astRoot))
- );
- }
-
- if (this.resourcePersistentAttribute.isPublic()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENT_ATTRIBUTE_PUBLIC_FIELD,
- new String[] {attribute.getName()},
- attribute, attribute.getValidationTextRange(astRoot))
- );
- }
- }
- }
-
- protected void addInvalidMappingMessage(List<IMessage> messages, CompilationUnit astRoot) {
- if (! getTypeMapping().attributeMappingKeyAllowed(this.getKey())) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENT_ATTRIBUTE_INVALID_MAPPING,
- new String[] {this.getPersistentAttribute().getName()},
- this, this.getValidationTextRange(astRoot))
- );
- }
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseColumn.java
deleted file mode 100644
index 70a120bbfa..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseColumn.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.BaseColumn;
-import org.eclipse.jpt.core.context.java.JavaBaseColumn;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.BaseColumnAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-public abstract class AbstractJavaBaseColumn<T extends BaseColumnAnnotation> extends AbstractJavaNamedColumn<T>
- implements JavaBaseColumn
-{
-
- protected String specifiedTable;
-
- protected String defaultTable;
-
- protected Boolean specifiedUnique;
-
- protected Boolean specifiedNullable;
-
- protected Boolean specifiedInsertable;
-
- protected Boolean specifiedUpdatable;
-
- protected AbstractJavaBaseColumn(JavaJpaContextNode parent, JavaBaseColumn.Owner owner) {
- super(parent, owner);
- }
-
- @Override
- protected void initializeFromResource(T column) {
- super.initializeFromResource(column);
- this.defaultTable = this.defaultTable();
- this.specifiedTable = this.specifiedTable(column);
- this.specifiedUnique = this.specifiedUnique(column);
- this.specifiedNullable = this.specifiedNullable(column);
- this.specifiedInsertable = this.specifiedInsertable(column);
- this.specifiedUpdatable = this.specifiedUpdatable(column);
- }
-
- @Override
- public JavaBaseColumn.Owner getOwner() {
- return (JavaBaseColumn.Owner) super.getOwner();
- }
-
- //************** IAbstractColumn implementation *******************
-
-
- public String getTable() {
- return (this.getSpecifiedTable() == null) ? getDefaultTable() : this.getSpecifiedTable();
- }
-
- public String getSpecifiedTable() {
- return this.specifiedTable;
- }
-
- public void setSpecifiedTable(String newSpecifiedTable) {
- String oldSpecifiedTable = this.specifiedTable;
- this.specifiedTable = newSpecifiedTable;
- getColumnResource().setTable(newSpecifiedTable);
- firePropertyChanged(BaseColumn.SPECIFIED_TABLE_PROPERTY, oldSpecifiedTable, newSpecifiedTable);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedTable_(String newSpecifiedTable) {
- String oldSpecifiedTable = this.specifiedTable;
- this.specifiedTable = newSpecifiedTable;
- firePropertyChanged(BaseColumn.SPECIFIED_TABLE_PROPERTY, oldSpecifiedTable, newSpecifiedTable);
- }
-
- public String getDefaultTable() {
- return this.defaultTable;
- }
-
- protected void setDefaultTable(String newDefaultTable) {
- String oldDefaultTable = this.defaultTable;
- this.defaultTable = newDefaultTable;
- firePropertyChanged(BaseColumn.DEFAULT_TABLE_PROPERTY, oldDefaultTable, newDefaultTable);
- }
-
- public Boolean getUnique() {
- return (this.getSpecifiedUnique() == null) ? this.getDefaultUnique() : this.getSpecifiedUnique();
- }
-
- public Boolean getDefaultUnique() {
- return BaseColumn.DEFAULT_UNIQUE;
- }
-
- public Boolean getSpecifiedUnique() {
- return this.specifiedUnique;
- }
-
- public void setSpecifiedUnique(Boolean newSpecifiedUnique) {
- Boolean oldSpecifiedUnique = this.specifiedUnique;
- this.specifiedUnique = newSpecifiedUnique;
- this.getColumnResource().setUnique(newSpecifiedUnique);
- firePropertyChanged(BaseColumn.SPECIFIED_UNIQUE_PROPERTY, oldSpecifiedUnique, newSpecifiedUnique);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedUnique_(Boolean newSpecifiedUnique) {
- Boolean oldSpecifiedUnique = this.specifiedUnique;
- this.specifiedUnique = newSpecifiedUnique;
- firePropertyChanged(BaseColumn.SPECIFIED_UNIQUE_PROPERTY, oldSpecifiedUnique, newSpecifiedUnique);
- }
-
- public Boolean getNullable() {
- return (this.getSpecifiedNullable() == null) ? this.getDefaultNullable() : this.getSpecifiedNullable();
- }
-
- public Boolean getDefaultNullable() {
- return BaseColumn.DEFAULT_NULLABLE;
- }
-
- public Boolean getSpecifiedNullable() {
- return this.specifiedNullable;
- }
-
- public void setSpecifiedNullable(Boolean newSpecifiedNullable) {
- Boolean oldSpecifiedNullable = this.specifiedNullable;
- this.specifiedNullable = newSpecifiedNullable;
- this.getColumnResource().setNullable(newSpecifiedNullable);
- firePropertyChanged(BaseColumn.SPECIFIED_NULLABLE_PROPERTY, oldSpecifiedNullable, newSpecifiedNullable);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedNullable_(Boolean newSpecifiedNullable) {
- Boolean oldSpecifiedNullable = this.specifiedNullable;
- this.specifiedNullable = newSpecifiedNullable;
- firePropertyChanged(BaseColumn.SPECIFIED_NULLABLE_PROPERTY, oldSpecifiedNullable, newSpecifiedNullable);
- }
-
- public Boolean getInsertable() {
- return (this.getSpecifiedInsertable() == null) ? this.getDefaultInsertable() : this.getSpecifiedInsertable();
- }
-
- public Boolean getDefaultInsertable() {
- return BaseColumn.DEFAULT_INSERTABLE;
- }
-
- public Boolean getSpecifiedInsertable() {
- return this.specifiedInsertable;
- }
-
- public void setSpecifiedInsertable(Boolean newSpecifiedInsertable) {
- Boolean oldSpecifiedInsertable = this.specifiedInsertable;
- this.specifiedInsertable = newSpecifiedInsertable;
- this.getColumnResource().setInsertable(newSpecifiedInsertable);
- firePropertyChanged(BaseColumn.SPECIFIED_INSERTABLE_PROPERTY, oldSpecifiedInsertable, newSpecifiedInsertable);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedInsertable_(Boolean newSpecifiedInsertable) {
- Boolean oldSpecifiedInsertable = this.specifiedInsertable;
- this.specifiedInsertable = newSpecifiedInsertable;
- firePropertyChanged(BaseColumn.SPECIFIED_INSERTABLE_PROPERTY, oldSpecifiedInsertable, newSpecifiedInsertable);
- }
-
- public Boolean getUpdatable() {
- return (this.getSpecifiedUpdatable() == null) ? this.getDefaultUpdatable() : this.getSpecifiedUpdatable();
- }
-
- public Boolean getDefaultUpdatable() {
- return BaseColumn.DEFAULT_UPDATABLE;
- }
-
- public Boolean getSpecifiedUpdatable() {
- return this.specifiedUpdatable;
- }
-
- public void setSpecifiedUpdatable(Boolean newSpecifiedUpdatable) {
- Boolean oldSpecifiedUpdatable = this.specifiedUpdatable;
- this.specifiedUpdatable = newSpecifiedUpdatable;
- this.getColumnResource().setUpdatable(newSpecifiedUpdatable);
- firePropertyChanged(BaseColumn.SPECIFIED_UPDATABLE_PROPERTY, oldSpecifiedUpdatable, newSpecifiedUpdatable);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedUpdatable_(Boolean newSpecifiedUpdatable) {
- Boolean oldSpecifiedUpdatable = this.specifiedUpdatable;
- this.specifiedUpdatable = newSpecifiedUpdatable;
- firePropertyChanged(BaseColumn.SPECIFIED_UPDATABLE_PROPERTY, oldSpecifiedUpdatable, newSpecifiedUpdatable);
- }
-
- @Override
- protected String getTableName() {
- return this.getTable();
- }
-
- public TextRange getTableTextRange(CompilationUnit astRoot) {
- TextRange textRange = this.getColumnResource().getTableTextRange(astRoot);
- return (textRange != null) ? textRange : this.getOwner().getValidationTextRange(astRoot);
- }
-
- public boolean tableTouches(int pos, CompilationUnit astRoot) {
- return getColumnResource().tableTouches(pos, astRoot);
- }
-
- private Iterator<String> candidateTableNames() {
- return this.tableIsAllowed() ? this.getOwner().getTypeMapping().associatedTableNamesIncludingInherited() : EmptyIterator.<String> instance();
- }
-
- private Iterator<String> candidateTableNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateTableNames(), filter);
- }
-
- private Iterator<String> quotedCandidateTableNames(Filter<String> filter) {
- return StringTools.quote(this.candidateTableNames(filter));
- }
-
- /**
- * Return whether the 'table' element is allowed. It is not allowed for
- * join columns inside of join tables.
- */
- public abstract boolean tableIsAllowed();
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.tableTouches(pos, astRoot)) {
- return this.quotedCandidateTableNames(filter);
- }
- return null;
- }
-
- @Override
- protected void update(T column) {
- super.update(column);
- this.setDefaultTable(this.defaultTable());
- this.setSpecifiedTable_(this.specifiedTable(column));
- this.setSpecifiedUnique_(this.specifiedUnique(column));
- this.setSpecifiedNullable_(this.specifiedNullable(column));
- this.setSpecifiedInsertable_(this.specifiedInsertable(column));
- this.setSpecifiedUpdatable_(this.specifiedUpdatable(column));
- }
-
- protected String defaultTable() {
- return this.getOwner().getDefaultTableName();
- }
-
- protected String specifiedTable(BaseColumnAnnotation column) {
- return column.getTable();
- }
-
- protected Boolean specifiedUnique(BaseColumnAnnotation column) {
- return column.getUnique();
- }
-
- protected Boolean specifiedNullable(BaseColumnAnnotation column) {
- return column.getNullable();
- }
-
- protected Boolean specifiedInsertable(BaseColumnAnnotation column) {
- return column.getInsertable();
- }
-
- protected Boolean specifiedUpdatable(BaseColumnAnnotation column) {
- return column.getUpdatable();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java
deleted file mode 100644
index 64dc6cf3fc..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BaseEmbeddedMapping;
-import org.eclipse.jpt.core.context.BaseOverride;
-import org.eclipse.jpt.core.context.ColumnMapping;
-import org.eclipse.jpt.core.context.Embeddable;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaAttributeOverride;
-import org.eclipse.jpt.core.context.java.JavaBaseEmbeddedMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.MappingTools;
-import org.eclipse.jpt.core.internal.resource.java.NullColumn;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public abstract class AbstractJavaBaseEmbeddedMapping<T extends JavaResourceNode> extends AbstractJavaAttributeMapping<T>
- implements JavaBaseEmbeddedMapping
-{
- protected final List<JavaAttributeOverride> specifiedAttributeOverrides;
-
- protected final List<JavaAttributeOverride> virtualAttributeOverrides;
-
- private Embeddable embeddable;
-
- protected AbstractJavaBaseEmbeddedMapping(JavaPersistentAttribute parent) {
- super(parent);
- this.specifiedAttributeOverrides = new ArrayList<JavaAttributeOverride>();
- this.virtualAttributeOverrides = new ArrayList<JavaAttributeOverride>();
- }
-
- //****************** JavaAttributeMapping implemenation *******************
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.ATTRIBUTE_OVERRIDE,
- JPA.ATTRIBUTE_OVERRIDES);
- }
-
- //****************** AttributeOverride.Owner implemenation *******************
-
- public ColumnMapping getColumnMapping(String attributeName) {
- return MappingTools.getColumnMapping(attributeName, embeddable());
- }
-
- public boolean isVirtual(BaseOverride override) {
- return this.virtualAttributeOverrides.contains(override);
- }
-
- public BaseOverride setVirtual(boolean virtual, BaseOverride override) {
- // Add a new attribute override
- if (virtual) {
- return setAttributeOverrideVirtual((JavaAttributeOverride) override);
- }
- return setAttributeOverrideSpecified((JavaAttributeOverride) override);
- }
-
- protected JavaAttributeOverride setAttributeOverrideVirtual(JavaAttributeOverride attributeOverride) {
- int index = this.specifiedAttributeOverrides.indexOf(attributeOverride);
- this.specifiedAttributeOverrides.remove(index);
- String attributeOverrideName = attributeOverride.getName();
- //add the virtual attribute override so that I can control the order that change notification is sent.
- //otherwise when we remove the annotation from java we will get an update and add the attribute override
- //during the udpate. This causes the UI to be flaky, since change notification might not occur in the correct order
- JavaAttributeOverride virtualAttributeOverride = null;
- if (attributeOverrideName != null) {
- for (PersistentAttribute persistentAttribute : CollectionTools.iterable(allOverridableAttributes())) {
- if (persistentAttribute.getName().equals(attributeOverrideName)) {
- //store the virtualAttributeOverride so we can fire change notification later
- virtualAttributeOverride = buildVirtualAttributeOverride(getResourcePersistentAttribute(), persistentAttribute.getName());
- this.virtualAttributeOverrides.add(virtualAttributeOverride);
- break;
- }
- }
- }
-
- getResourcePersistentAttribute().removeAnnotation(index, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
- fireItemRemoved(Entity.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, attributeOverride);
-
- if (virtualAttributeOverride != null) {
- fireItemAdded(Entity.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST, virtualAttributeOverridesSize() - 1, virtualAttributeOverride);
- }
- return virtualAttributeOverride;
- }
-
- protected JavaAttributeOverride setAttributeOverrideSpecified(JavaAttributeOverride oldAttributeOverride) {
- int index = specifiedAttributeOverridesSize();
- JavaAttributeOverride newAttributeOverride = getJpaFactory().buildJavaAttributeOverride(this, this);
- this.specifiedAttributeOverrides.add(index, newAttributeOverride);
-
- AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) getResourcePersistentAttribute().addAnnotation(index, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
- newAttributeOverride.initializeFromResource(attributeOverrideResource);
-
- int defaultIndex = this.virtualAttributeOverrides.indexOf(oldAttributeOverride);
- this.virtualAttributeOverrides.remove(defaultIndex);
-
- newAttributeOverride.setName(oldAttributeOverride.getName());
- newAttributeOverride.getColumn().setSpecifiedName(oldAttributeOverride.getColumn().getName());
-
- this.fireItemRemoved(Entity.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST, defaultIndex, oldAttributeOverride);
- this.fireItemAdded(Entity.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, newAttributeOverride);
-
- return newAttributeOverride;
- }
-
-
- //****************** BaseEmbeddedMapping implemenation *******************
-
- @SuppressWarnings("unchecked")
- public ListIterator<JavaAttributeOverride> attributeOverrides() {
- return new CompositeListIterator<JavaAttributeOverride>(this.specifiedAttributeOverrides(), this.virtualAttributeOverrides());
- }
-
- public int attributeOverridesSize() {
- return this.specifiedAttributeOverridesSize() + this.virtualAttributeOverridesSize();
- }
-
- public ListIterator<JavaAttributeOverride> virtualAttributeOverrides() {
- return new CloneListIterator<JavaAttributeOverride>(this.virtualAttributeOverrides);
- }
-
- public int virtualAttributeOverridesSize() {
- return this.virtualAttributeOverrides.size();
- }
-
- public ListIterator<JavaAttributeOverride> specifiedAttributeOverrides() {
- return new CloneListIterator<JavaAttributeOverride>(this.specifiedAttributeOverrides);
- }
-
- public int specifiedAttributeOverridesSize() {
- return this.specifiedAttributeOverrides.size();
- }
-
- protected void addSpecifiedAttributeOverride(int index, JavaAttributeOverride attributeOverride) {
- addItemToList(index, attributeOverride, this.specifiedAttributeOverrides, BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST);
- }
-
- protected void removeSpecifiedAttributeOverride_(JavaAttributeOverride attributeOverride) {
- removeItemFromList(attributeOverride, this.specifiedAttributeOverrides, BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST);
- }
-
- public void moveSpecifiedAttributeOverride(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.specifiedAttributeOverrides, targetIndex, sourceIndex);
- getResourcePersistentAttribute().move(targetIndex, sourceIndex, AttributeOverridesAnnotation.ANNOTATION_NAME);
- fireItemMoved(BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, targetIndex, sourceIndex);
- }
-
- protected void addVirtualAttributeOverride(JavaAttributeOverride attributeOverride) {
- addItemToList(attributeOverride, this.virtualAttributeOverrides, BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST);
- }
-
- protected void removeVirtualAttributeOverride(JavaAttributeOverride attributeOverride) {
- removeItemFromList(attributeOverride, this.virtualAttributeOverrides, BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST);
- }
-
- public JavaAttributeOverride getAttributeOverrideNamed(String name) {
- return (JavaAttributeOverride) getOverrideNamed(name, attributeOverrides());
- }
-
- public boolean containsAttributeOverride(String name) {
- return containsOverride(name, attributeOverrides());
- }
-
- public boolean containsDefaultAttributeOverride(String name) {
- return containsOverride(name, virtualAttributeOverrides());
- }
-
- public boolean containsSpecifiedAttributeOverride(String name) {
- return containsOverride(name, specifiedAttributeOverrides());
- }
-
- protected BaseOverride getOverrideNamed(String name, ListIterator<? extends BaseOverride> overrides) {
- for (BaseOverride override : CollectionTools.iterable(overrides)) {
- String overrideName = override.getName();
- if (overrideName == null && name == null) {
- return override;
- }
- if (overrideName != null && overrideName.equals(name)) {
- return override;
- }
- }
- return null;
- }
-
- protected boolean containsOverride(String name, ListIterator<? extends BaseOverride> overrides) {
- return getOverrideNamed(name, overrides) != null;
- }
-
- public Embeddable embeddable() {
- return this.embeddable;
- }
-
-
-
- @Override
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.initializeFromResource(resourcePersistentAttribute);
- this.initializeAttributeOverrides(resourcePersistentAttribute);
- this.initializeDefaultAttributeOverrides(resourcePersistentAttribute);
- this.embeddable = MappingTools.getEmbeddableFor(getPersistentAttribute());
- }
-
- protected void initializeAttributeOverrides(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- ListIterator<JavaResourceNode> annotations = resourcePersistentAttribute.annotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- JavaAttributeOverride attributeOverride = getJpaFactory().buildJavaAttributeOverride(this, this);
- attributeOverride.initializeFromResource((AttributeOverrideAnnotation) annotations.next());
- this.specifiedAttributeOverrides.add(attributeOverride);
- }
- }
-
- protected void initializeDefaultAttributeOverrides(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- for (Iterator<String> i = allOverridableAttributeNames(); i.hasNext(); ) {
- String attributeName = i.next();
- JavaAttributeOverride attributeOverride = getAttributeOverrideNamed(attributeName);
- if (attributeOverride == null) {
- this.virtualAttributeOverrides.add(buildVirtualAttributeOverride(resourcePersistentAttribute, attributeName));
- }
- }
- } @Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.update(resourcePersistentAttribute);
- this.embeddable = MappingTools.getEmbeddableFor(getPersistentAttribute());
- this.updateSpecifiedAttributeOverrides(resourcePersistentAttribute);
- this.updateVirtualAttributeOverrides(resourcePersistentAttribute);
-
- }
- protected void updateSpecifiedAttributeOverrides(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- ListIterator<JavaAttributeOverride> attributeOverrides = specifiedAttributeOverrides();
- ListIterator<JavaResourceNode> resourceAttributeOverrides = resourcePersistentAttribute.annotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-
- while (attributeOverrides.hasNext()) {
- JavaAttributeOverride attributeOverride = attributeOverrides.next();
- if (resourceAttributeOverrides.hasNext()) {
- attributeOverride.update((AttributeOverrideAnnotation) resourceAttributeOverrides.next());
- }
- else {
- removeSpecifiedAttributeOverride_(attributeOverride);
- }
- }
-
- while (resourceAttributeOverrides.hasNext()) {
- addSpecifiedAttributeOverride(specifiedAttributeOverridesSize(), buildAttributeOverride((AttributeOverrideAnnotation) resourceAttributeOverrides.next()));
- }
- }
-
- protected JavaAttributeOverride buildAttributeOverride(AttributeOverrideAnnotation attributeOverrideResource) {
- JavaAttributeOverride attributeOverride = getJpaFactory().buildJavaAttributeOverride(this, this);
- attributeOverride.initializeFromResource(attributeOverrideResource);
- return attributeOverride;
- }
-
- protected JavaAttributeOverride buildVirtualAttributeOverride(JavaResourcePersistentAttribute resourcePersistentAttribute, String attributeName) {
- return buildAttributeOverride(buildVirtualAttributeOverrideResource(resourcePersistentAttribute, attributeName));
- }
-
- protected VirtualAttributeOverride buildVirtualAttributeOverrideResource(JavaResourcePersistentAttribute resourcePersistentAttribute, String attributeName) {
- ColumnMapping columnMapping = (ColumnMapping) this.embeddable().getPersistentType().getAttributeNamed(attributeName).getMapping();
- return new VirtualAttributeOverride(resourcePersistentAttribute, attributeName, columnMapping.getColumn());
- }
-
- protected void updateVirtualAttributeOverrides(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- for (Iterator<String> i = allOverridableAttributeNames(); i.hasNext(); ) {
- String attributeName = i.next();
- JavaAttributeOverride attributeOverride = getAttributeOverrideNamed(attributeName);
- if (attributeOverride == null) {
- addVirtualAttributeOverride(buildVirtualAttributeOverride(resourcePersistentAttribute, attributeName));
- }
- else if (attributeOverride.isVirtual()) {
- attributeOverride.getColumn().update(new NullColumn(resourcePersistentAttribute));
- }
- }
-
- Collection<String> attributeNames = CollectionTools.collection(allOverridableAttributeNames());
-
- //remove any default mappings that are not included in the attributeNames collection
- for (JavaAttributeOverride attributeOverride : CollectionTools.iterable(virtualAttributeOverrides())) {
- if (!attributeNames.contains(attributeOverride.getName())
- || containsSpecifiedAttributeOverride(attributeOverride.getName())) {
- removeVirtualAttributeOverride(attributeOverride);
- }
- }
- }
-
-
- public Iterator<String> allOverridableAttributeNames() {
- return new TransformationIterator<PersistentAttribute, String>(this.allOverridableAttributes()) {
- @Override
- protected String transform(PersistentAttribute attribute) {
- return attribute.getName();
- }
- };
- }
-
- public Iterator<PersistentAttribute> allOverridableAttributes() {
- if (this.embeddable() == null) {
- return EmptyIterator.instance();
- }
- return new FilteringIterator<PersistentAttribute, PersistentAttribute>(this.embeddable().getPersistentType().attributes()) {
- @Override
- protected boolean accept(PersistentAttribute o) {
- return o.isOverridableAttribute();
- }
- };
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- for (AttributeOverride override : CollectionTools.iterable(this.attributeOverrides())) {
- result = ((JavaAttributeOverride) override).javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- return null;
- }
-
- //******** Validation ******************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- for (Iterator<JavaAttributeOverride> stream = attributeOverrides(); stream.hasNext();) {
- stream.next().addToMessages(messages, astRoot);
- }
- }
-} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaGenerator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaGenerator.java
deleted file mode 100644
index e9acc04916..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaGenerator.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Generator;
-import org.eclipse.jpt.core.context.java.JavaGenerator;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.GeneratorAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-
-public abstract class AbstractJavaGenerator extends AbstractJavaJpaContextNode
- implements JavaGenerator
-{
- protected String name;
-
- protected Integer specifiedInitialValue;
-
- protected Integer specifiedAllocationSize;
-
- protected GeneratorAnnotation generatorResource;
-
- protected AbstractJavaGenerator(JavaJpaContextNode parent) {
- super(parent);
- }
-
- public void initializeFromResource(GeneratorAnnotation generatorResource) {
- this.generatorResource = generatorResource;
- this.name = this.name(generatorResource);
- this.specifiedInitialValue = this.specifiedInitialValue(generatorResource);
- this.specifiedAllocationSize = this.specifiedAllocationSize(generatorResource);
- }
-
- protected GeneratorAnnotation getGeneratorResource() {
- return this.generatorResource;
- }
-
- protected String name(GeneratorAnnotation generatorResource) {
- return generatorResource.getName();
- }
-
- protected Integer specifiedInitialValue(GeneratorAnnotation generatorResource) {
- return generatorResource.getInitialValue();
- }
-
- protected Integer specifiedAllocationSize(GeneratorAnnotation generatorResource) {
- return generatorResource.getAllocationSize();
- }
-
- public String getName() {
- return this.name;
- }
-
- public void setName(String newName) {
- String oldName = this.name;
- this.name = newName;
- getGeneratorResource().setName(newName);
- firePropertyChanged(Generator.NAME_PROPERTY, oldName, newName);
- }
-
- protected void setName_(String newName) {
- String oldName = this.name;
- this.name = newName;
- firePropertyChanged(Generator.NAME_PROPERTY, oldName, newName);
- }
-
- public Integer getInitialValue() {
- return (this.getSpecifiedInitialValue() == null) ? this.getDefaultInitialValue() : this.getSpecifiedInitialValue();
- }
-
- public Integer getSpecifiedInitialValue() {
- return this.specifiedInitialValue;
- }
-
- public void setSpecifiedInitialValue(Integer newSpecifiedInitialValue) {
- Integer oldSpecifiedInitialValue = this.specifiedInitialValue;
- this.specifiedInitialValue = newSpecifiedInitialValue;
- getGeneratorResource().setInitialValue(newSpecifiedInitialValue);
- firePropertyChanged(Generator.SPECIFIED_INITIAL_VALUE_PROPERTY, oldSpecifiedInitialValue, newSpecifiedInitialValue);
- }
-
- protected void setSpecifiedInitialValue_(Integer newSpecifiedInitialValue) {
- Integer oldSpecifiedInitialValue = this.specifiedInitialValue;
- this.specifiedInitialValue = newSpecifiedInitialValue;
- firePropertyChanged(Generator.SPECIFIED_INITIAL_VALUE_PROPERTY, oldSpecifiedInitialValue, newSpecifiedInitialValue);
- }
-
- public Integer getAllocationSize() {
- return (this.getSpecifiedAllocationSize() == null) ? this.getDefaultAllocationSize() : this.getSpecifiedAllocationSize();
- }
-
- public Integer getSpecifiedAllocationSize() {
- return this.specifiedAllocationSize;
- }
-
- public void setSpecifiedAllocationSize(Integer newSpecifiedAllocationSize) {
- Integer oldSpecifiedAllocationSize = this.specifiedAllocationSize;
- this.specifiedAllocationSize = newSpecifiedAllocationSize;
- getGeneratorResource().setAllocationSize(newSpecifiedAllocationSize);
- firePropertyChanged(Generator.SPECIFIED_ALLOCATION_SIZE_PROPERTY, oldSpecifiedAllocationSize, newSpecifiedAllocationSize);
- }
-
- protected void setSpecifiedAllocationSize_(Integer newSpecifiedAllocationSize) {
- Integer oldSpecifiedAllocationSize = this.specifiedAllocationSize;
- this.specifiedAllocationSize = newSpecifiedAllocationSize;
- firePropertyChanged(Generator.SPECIFIED_ALLOCATION_SIZE_PROPERTY, oldSpecifiedAllocationSize, newSpecifiedAllocationSize);
- }
-
- public Integer getDefaultAllocationSize() {
- return Generator.DEFAULT_ALLOCATION_SIZE;
- }
-
- public boolean isVirtual() {
- return false;
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.getSelectionTextRange(astRoot);
- }
-
- public TextRange getSelectionTextRange(CompilationUnit astRoot) {
- return this.generatorResource.getTextRange(astRoot);
- }
-
- public TextRange getNameTextRange(CompilationUnit astRoot) {
- return this.generatorResource.getNameTextRange(astRoot);
- }
-
- protected void update(GeneratorAnnotation generatorResource) {
- this.generatorResource = generatorResource;
- this.setName_(this.name(generatorResource));
- this.setSpecifiedInitialValue_(this.specifiedInitialValue(generatorResource));
- this.setSpecifiedAllocationSize_(this.specifiedAllocationSize(generatorResource));
- }
-
- public boolean overrides(Generator generator) {
- // java is at the base of the tree
- return false;
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaJpaContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaJpaContextNode.java
deleted file mode 100644
index 34bcc085f8..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaJpaContextNode.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.JpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.internal.context.AbstractJpaContextNode;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public abstract class AbstractJavaJpaContextNode extends AbstractJpaContextNode implements JavaJpaContextNode
-{
- // ********** constructor **********
-
- protected AbstractJavaJpaContextNode(JpaContextNode parent) {
- super(parent);
- }
-
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- if (this.connectionProfileIsActive()) {
- Iterator<String> result = this.connectedJavaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- return null;
- }
-
- /**
- * This method is called if the database is connected, allowing us to
- * get candidates from the various database tables etc.
- * This method should NOT be cascaded to "child" objects; it should
- * only return candidates for the current object. The cascading is
- * handled by #javaCompletionProposals(int, Filter, CompilationUnit).
- */
- public Iterator<String> connectedJavaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- return null;
- }
-
- // ********** validation **********
-
- /**
- * All subclass implementations {@link #addToMessages(List, CompilationUnit))}
- * should be preceded by a "super" call to this method
- */
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
-
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java
deleted file mode 100644
index c755635529..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java
+++ /dev/null
@@ -1,458 +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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.MultiRelationshipMapping;
-import org.eclipse.jpt.core.context.NonOwningMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaJoinTable;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.MapKeyAnnotation;
-import org.eclipse.jpt.core.resource.java.OrderByAnnotation;
-import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public abstract class AbstractJavaMultiRelationshipMapping<T extends RelationshipMappingAnnotation>
- extends AbstractJavaRelationshipMapping<T> implements MultiRelationshipMapping
-{
-
- protected String mappedBy;
-
- protected String orderBy;
-
- protected boolean isNoOrdering;
-
- protected boolean isPkOrdering;
-
- protected boolean isCustomOrdering;
-
- //TODO should this be null if this is the non-owning side of the relationship??
- protected final JavaJoinTable joinTable;
-
- protected String mapKey;
-
- protected AbstractJavaMultiRelationshipMapping(JavaPersistentAttribute parent) {
- super(parent);
- this.joinTable = getJpaFactory().buildJavaJoinTable(this);
- }
-
- public String getMappedBy() {
- return this.mappedBy;
- }
-
- public void setMappedBy(String newMappedBy) {
- String oldMappedBy = this.mappedBy;
- this.mappedBy = newMappedBy;
- this.setMappedByOnResourceModel(newMappedBy);
- firePropertyChanged(NonOwningMapping.MAPPED_BY_PROPERTY, oldMappedBy, newMappedBy);
- }
-
- protected void setMappedBy_(String newMappedBy) {
- String oldMappedBy = this.mappedBy;
- this.mappedBy = newMappedBy;
- firePropertyChanged(NonOwningMapping.MAPPED_BY_PROPERTY, oldMappedBy, newMappedBy);
- }
-
- protected abstract void setMappedByOnResourceModel(String mappedBy);
-
- public String getOrderBy() {
- return this.orderBy;
- }
-
- public void setOrderBy(String newOrderBy) {
- String oldOrderBy = this.orderBy;
- this.orderBy = newOrderBy;
- if (newOrderBy == null) {
- if (getOrderByResource() != null) {
- removeOrderByResource();
- }
- }
- else {
- if (getOrderByResource() == null) {
- addOrderByResource();
- }
- getOrderByResource().setValue(newOrderBy);
- }
- firePropertyChanged(MultiRelationshipMapping.ORDER_BY_PROPERTY, oldOrderBy, newOrderBy);
- }
-
- protected void setOrderBy_(String newOrderBy) {
- String oldOrderBy = this.orderBy;
- this.orderBy = newOrderBy;
- firePropertyChanged(MultiRelationshipMapping.ORDER_BY_PROPERTY, oldOrderBy, newOrderBy);
- }
-
- protected OrderByAnnotation getOrderByResource() {
- return (OrderByAnnotation) getResourcePersistentAttribute().getAnnotation(OrderByAnnotation.ANNOTATION_NAME);
- }
-
- protected OrderByAnnotation addOrderByResource() {
- return (OrderByAnnotation) getResourcePersistentAttribute().addAnnotation(OrderByAnnotation.ANNOTATION_NAME);
- }
-
- protected void removeOrderByResource() {
- getResourcePersistentAttribute().removeAnnotation(OrderByAnnotation.ANNOTATION_NAME);
- }
-
- public boolean isNoOrdering() {
- return this.isNoOrdering;
- }
-
- public void setNoOrdering(boolean newNoOrdering) {
- boolean oldNoOrdering = this.isNoOrdering;
- this.isNoOrdering = newNoOrdering;
- if (newNoOrdering) {
- if (getOrderByResource() != null) {
- removeOrderByResource();
- }
- }
- else {
- //??
- }
- firePropertyChanged(NO_ORDERING_PROPERTY, oldNoOrdering, newNoOrdering);
- }
-
- protected void setNoOrdering_(boolean newNoOrdering) {
- boolean oldNoOrdering = this.isNoOrdering;
- this.isNoOrdering = newNoOrdering;
- firePropertyChanged(NO_ORDERING_PROPERTY, oldNoOrdering, newNoOrdering);
- }
-
- public boolean isPkOrdering() {
- return this.isPkOrdering;
- }
-
- public void setPkOrdering(boolean newPkOrdering) {
- boolean oldPkOrdering = this.isPkOrdering;
- this.isPkOrdering = newPkOrdering;
- if (newPkOrdering) {
- if (getOrderByResource() == null) {
- addOrderByResource();
- }
- else {
- getOrderByResource().setValue(null);
- }
- }
- firePropertyChanged(PK_ORDERING_PROPERTY, oldPkOrdering, newPkOrdering);
- }
-
- protected void setPkOrdering_(boolean newPkOrdering) {
- boolean oldPkOrdering = this.isPkOrdering;
- this.isPkOrdering = newPkOrdering;
- firePropertyChanged(PK_ORDERING_PROPERTY, oldPkOrdering, newPkOrdering);
- }
-
- public boolean isCustomOrdering() {
- return this.isCustomOrdering;
- }
-
- public void setCustomOrdering(boolean newCustomOrdering) {
- boolean oldCustomOrdering = this.isCustomOrdering;
- this.isCustomOrdering = newCustomOrdering;
- if (newCustomOrdering) {
- setOrderBy("");
- }
- firePropertyChanged(CUSTOM_ORDERING_PROPERTY, oldCustomOrdering, newCustomOrdering);
- }
-
- protected void setCustomOrdering_(boolean newCustomOrdering) {
- boolean oldCustomOrdering = this.isCustomOrdering;
- this.isCustomOrdering = newCustomOrdering;
- firePropertyChanged(CUSTOM_ORDERING_PROPERTY, oldCustomOrdering, newCustomOrdering);
- }
-
- public FetchType getDefaultFetch() {
- return MultiRelationshipMapping.DEFAULT_FETCH_TYPE;
- }
-
- public JavaJoinTable getJoinTable() {
- return this.joinTable;
- }
-
- public boolean isJoinTableSpecified() {
- return getJoinTable().isSpecified();
- }
-
- public boolean isRelationshipOwner() {
- return getMappedBy() == null;
- }
-
- public String getMapKey() {
- return this.mapKey;
- }
-
- public void setMapKey(String newMapKey) {
- String oldMapKey = this.mapKey;
- this.mapKey = newMapKey;
- if (oldMapKey != newMapKey) {
- if (this.getMapKeyResource(getResourcePersistentAttribute()) != null) {
- if (newMapKey != null) {
- this.getMapKeyResource(getResourcePersistentAttribute()).setName(newMapKey);
- }
- else {
- getResourcePersistentAttribute().removeAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
- }
- }
- else if (newMapKey != null) {
- getResourcePersistentAttribute().addAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
- getMapKeyResource(getResourcePersistentAttribute()).setName(newMapKey);
- }
- }
- firePropertyChanged(MultiRelationshipMapping.MAP_KEY_PROPERTY, oldMapKey, newMapKey);
- }
-
- protected void setMapKey_(String newMapKey) {
- String oldMapKey = this.mapKey;
- this.mapKey = newMapKey;
- firePropertyChanged(MultiRelationshipMapping.MAP_KEY_PROPERTY, oldMapKey, newMapKey);
- }
-
-//TODO default orderBy - this wasn't supported in 1.0 either
-// public void refreshDefaults(DefaultsContext defaultsContext) {
-// super.refreshDefaults(defaultsContext);
-// // if (isOrderByPk()) {
-// // refreshDefaultOrderBy(defaultsContext);
-// // }
-// }
-//
-// //primary key ordering when just the @OrderBy annotation is present
-// protected void refreshDefaultOrderBy(DefaultsContext defaultsContext) {
-// IEntity targetEntity = getResolvedTargetEntity();
-// if (targetEntity != null) {
-// setOrderBy(targetEntity.primaryKeyAttributeName() + " ASC");
-// }
-// }
-
- @Override
- protected String defaultTargetEntity(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- if (!resourcePersistentAttribute.typeIsContainer()) {
- return null;
- }
- return resourcePersistentAttribute.getQualifiedReferenceEntityElementTypeName();
- }
-
- protected abstract boolean mappedByTouches(int pos, CompilationUnit astRoot);
-
- protected boolean mapKeyNameTouches(int pos, CompilationUnit astRoot) {
- if (getMapKeyResource(getResourcePersistentAttribute()) != null) {
- return getMapKeyResource(getResourcePersistentAttribute()).nameTouches(pos, astRoot);
- }
- return false;
- }
-
- protected MapKeyAnnotation getMapKeyResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- return (MapKeyAnnotation) resourcePersistentAttribute.getAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
- }
-
- public Iterator<String> candidateMapKeyNames() {
- return this.allTargetEntityAttributeNames();
- }
-
- protected Iterator<String> candidateMapKeyNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateMapKeyNames(), filter);
- }
-
- protected Iterator<String> quotedCandidateMapKeyNames(Filter<String> filter) {
- return StringTools.quote(this.candidateMapKeyNames(filter));
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- result = this.getJoinTable().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.mappedByTouches(pos, astRoot)) {
- return this.quotedCandidateMappedByAttributeNames(filter);
- }
- if (this.mapKeyNameTouches(pos, astRoot)) {
- return this.quotedCandidateMapKeyNames(filter);
- }
- return null;
- }
-
- @Override
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.initializeFromResource(resourcePersistentAttribute);
- MapKeyAnnotation mapKey = this.getMapKeyResource(resourcePersistentAttribute);
- if (mapKey != null) {
- this.mapKey = mapKey.getName();
- }
- this.initializeOrderBy(this.getOrderByResource());
- this.joinTable.initializeFromResource(resourcePersistentAttribute);
- }
-
- @Override
- protected void initialize(T relationshipMapping) {
- super.initialize(relationshipMapping);
- this.mappedBy = this.mappedBy(relationshipMapping);
- }
-
- protected void initializeOrderBy(OrderByAnnotation orderBy) {
- if (orderBy != null) {
- this.orderBy = orderBy.getValue();
- if (orderBy.getValue() == null) {
- this.isPkOrdering = true;
- }
- else {
- this.isCustomOrdering = true;
- }
- }
- else {
- this.isNoOrdering = true;
- }
- }
-
- @Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.update(resourcePersistentAttribute);
- this.updateMapKey(resourcePersistentAttribute);
- this.updateOrderBy(this.getOrderByResource());
- this.joinTable.update(resourcePersistentAttribute);
- }
-
- @Override
- protected void update(T relationshipMapping) {
- super.update(relationshipMapping);
- this.setMappedBy_(this.mappedBy(relationshipMapping));
- }
-
- protected void updateMapKey(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- MapKeyAnnotation mapKey = this.getMapKeyResource(resourcePersistentAttribute);
- if (mapKey != null) {
- setMapKey_(mapKey.getName());
- }
- else {
- setMapKey_(null);
- }
- }
-
- protected void updateOrderBy(OrderByAnnotation orderBy) {
- if (orderBy != null) {
- setOrderBy_(orderBy.getValue());
- if (orderBy.getValue() == null) {
- setPkOrdering_(true);
- setCustomOrdering_(false);
- setNoOrdering_(false);
- }
- else {
- setPkOrdering_(false);
- setCustomOrdering_(true);
- setNoOrdering_(false);
- }
- }
- else {
- setOrderBy_(null);
- setPkOrdering_(false);
- setCustomOrdering_(false);
- setNoOrdering_(true);
- }
- }
- protected abstract String mappedBy(T relationshipMapping);
-
- //******** Validation ***********************************
-
- public abstract TextRange getMappedByTextRange(CompilationUnit astRoot);
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- if (entityOwned() && (this.isJoinTableSpecified() || isRelationshipOwner())) {
- getJoinTable().addToMessages(messages, astRoot);
- }
- if (this.getMappedBy() != null) {
- addMappedByMessages(messages, astRoot);
- }
- }
-
- protected void addMappedByMessages(List<IMessage> messages, CompilationUnit astRoot) {
- String mappedBy = this.getMappedBy();
-
- if (this.isJoinTableSpecified()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_MAPPED_BY_WITH_JOIN_TABLE,
- this.getJoinTable(),
- this.getJoinTable().getValidationTextRange(astRoot))
- );
-
- }
-
- Entity targetEntity = this.getResolvedTargetEntity();
-
- if (targetEntity == null) {
- // already have validation messages for that
- return;
- }
-
- PersistentAttribute attribute = targetEntity.getPersistentType().resolveAttribute(mappedBy);
-
- if (attribute == null) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
- new String[] {mappedBy},
- this,
- this.getMappedByTextRange(astRoot))
- );
- return;
- }
-
- if (! this.mappedByIsValid(attribute.getMapping())) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
- new String[] {mappedBy},
- this,
- this.getMappedByTextRange(astRoot))
- );
- return;
- }
-
- NonOwningMapping mappedByMapping;
- try {
- mappedByMapping = (NonOwningMapping) attribute.getMapping();
- } catch (ClassCastException cce) {
- // there is no error then
- return;
- }
-
- if (mappedByMapping.getMappedBy() != null) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_MAPPED_BY_ON_BOTH_SIDES,
- this,
- this.getMappedByTextRange(astRoot))
- );
- }
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaNamedColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaNamedColumn.java
deleted file mode 100644
index 4e80363cbc..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaNamedColumn.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.NamedColumn;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaNamedColumn;
-import org.eclipse.jpt.core.resource.java.NamedColumnAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-
-public abstract class AbstractJavaNamedColumn<T extends NamedColumnAnnotation> extends AbstractJavaJpaContextNode
- implements JavaNamedColumn
-{
-
- protected Owner owner;
-
- protected String specifiedName;
-
- protected String defaultName;
-
- protected String columnDefinition;
-
- protected AbstractJavaNamedColumn(JavaJpaContextNode parent, Owner owner) {
- super(parent);
- this.owner = owner;
- }
-
- // ******************* initialization from java resource model ********************
-
- protected void initializeFromResource(T column) {
- this.specifiedName = column.getName();
- this.defaultName = this.defaultName();
- this.columnDefinition = column.getColumnDefinition();
- }
-
-
- protected abstract T getColumnResource();
-
-
- //************** INamedColumn implementation *****************
- public String getName() {
- return (this.getSpecifiedName() == null) ? getDefaultName() : this.getSpecifiedName();
- }
-
- public String getSpecifiedName() {
- return this.specifiedName;
- }
-
- public void setSpecifiedName(String newSpecifiedName) {
- String oldSpecifiedName = this.specifiedName;
- this.specifiedName = newSpecifiedName;
- getColumnResource().setName(newSpecifiedName);
- firePropertyChanged(NamedColumn.SPECIFIED_NAME_PROPERTY, oldSpecifiedName, newSpecifiedName);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedName_(String newSpecifiedName) {
- String oldSpecifiedName = this.specifiedName;
- this.specifiedName = newSpecifiedName;
- firePropertyChanged(NamedColumn.SPECIFIED_NAME_PROPERTY, oldSpecifiedName, newSpecifiedName);
- }
-
- public String getDefaultName() {
- return this.defaultName;
- }
-
- protected void setDefaultName(String newDefaultName) {
- String oldDefaultName = this.defaultName;
- this.defaultName = newDefaultName;
- firePropertyChanged(NamedColumn.DEFAULT_NAME_PROPERTY, oldDefaultName, newDefaultName);
- }
-
- public String getColumnDefinition() {
- return this.columnDefinition;
- }
-
- public void setColumnDefinition(String newColumnDefinition) {
- String oldColumnDefinition = this.columnDefinition;
- this.columnDefinition = newColumnDefinition;
- getColumnResource().setColumnDefinition(newColumnDefinition);
- firePropertyChanged(NamedColumn.COLUMN_DEFINITION_PROPERTY, oldColumnDefinition, newColumnDefinition);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setColumnDefinition_(String newColumnDefinition) {
- String oldColumnDefinition = this.columnDefinition;
- this.columnDefinition = newColumnDefinition;
- firePropertyChanged(NamedColumn.COLUMN_DEFINITION_PROPERTY, oldColumnDefinition, newColumnDefinition);
- }
-
- public Owner getOwner() {
- return this.owner;
- }
-
- public TextRange getNameTextRange(CompilationUnit astRoot) {
- TextRange textRange = this.getColumnResource().getNameTextRange(astRoot);
- return (textRange != null) ? textRange : this.getOwner().getValidationTextRange(astRoot);
- }
-
- public boolean nameTouches(int pos, CompilationUnit astRoot) {
- return this.getColumnResource().nameTouches(pos, astRoot);
- }
-
- public Column getDbColumn() {
- Table table = this.getDbTable();
- return (table == null) ? null : table.columnNamed(this.getName());
- }
-
- public Table getDbTable() {
- return getOwner().getDbTable(this.getTableName());
- }
-
- /**
- * Return the name of the column's table.
- */
- protected abstract String getTableName();
-
- public boolean isResolved() {
- return this.getDbColumn() != null;
- }
-
- @Override
- public Iterator<String> connectedJavaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.connectedJavaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.nameTouches(pos, astRoot)) {
- return this.quotedCandidateNames(filter);
- }
- return null;
- }
-
- private Iterator<String> candidateNames() {
- Table dbTable = this.getDbTable();
- return (dbTable != null) ? dbTable.columnNames() : EmptyIterator.<String> instance();
- }
-
- private Iterator<String> candidateNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateNames(), filter);
- }
-
- private Iterator<String> quotedCandidateNames(Filter<String> filter) {
- return StringTools.quote(this.candidateNames(filter));
- }
-
-
- // ******************* update from java resource model ********************
-
- protected void update(T column) {
- this.setSpecifiedName_(column.getName());
- this.setDefaultName(this.defaultName());
- this.setColumnDefinition_(column.getColumnDefinition());
- }
-
- /**
- * Return the default column name.
- */
- protected String defaultName() {
- return this.getOwner().getDefaultColumnName();
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOverride.java
deleted file mode 100644
index b9c3824427..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOverride.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.BaseOverride;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.OverrideAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-
-public abstract class AbstractJavaOverride extends AbstractJavaJpaContextNode implements BaseOverride
-{
-
- protected String name;
-
- protected final Owner owner;
-
- protected OverrideAnnotation overrideResource;
-
- public AbstractJavaOverride(JavaJpaContextNode parent, Owner owner) {
- super(parent);
- this.owner = owner;
- }
-
- protected void initializeFromResource(OverrideAnnotation overrideResource) {
- this.overrideResource = overrideResource;
- this.name = this.name(overrideResource);
- }
-
- protected OverrideAnnotation getOverrideResource() {
- return this.overrideResource;
- }
-
- public String getName() {
- return this.name;
- }
-
- public void setName(String newName) {
- String oldName = this.name;
- this.name = newName;
- this.overrideResource.setName(newName);
- firePropertyChanged(NAME_PROPERTY, oldName, newName);
- }
-
- protected void setName_(String newName) {
- String oldName = this.name;
- this.name = newName;
- firePropertyChanged(NAME_PROPERTY, oldName, newName);
- }
-
- protected void update(OverrideAnnotation overrideResource) {
- this.overrideResource = overrideResource;
- this.setName_(this.name(overrideResource));
- }
-
- protected String name(OverrideAnnotation overrideResource) {
- return overrideResource.getName();
- }
-
- public boolean isVirtual() {
- return getOwner().isVirtual(this);
- }
-
- public BaseOverride setVirtual(boolean virtual) {
- return getOwner().setVirtual(virtual, this);
- }
-
- public Owner getOwner() {
- return this.owner;
- }
-
- @Override
- public JavaJpaContextNode getParent() {
- return (JavaJpaContextNode) super.getParent();
- }
-
- protected abstract Iterator<String> candidateNames();
-
- private Iterator<String> candidateNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateNames(), filter);
- }
-
- private Iterator<String> quotedCandidateNames(Filter<String> filter) {
- return StringTools.quote(this.candidateNames(filter));
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.nameTouches(pos, astRoot)) {
- return this.quotedCandidateNames(filter);
- }
- return null;
- }
-
- public boolean nameTouches(int pos, CompilationUnit astRoot) {
- return this.overrideResource.nameTouches(pos, astRoot);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- TextRange textRange = this.overrideResource.getTextRange(astRoot);
- return (textRange != null) ? textRange : this.getParent().getValidationTextRange(astRoot);
- }
-
- @Override
- public void toString(StringBuilder sb) {
- super.toString(sb);
- sb.append(getName());
- }
-
-} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaQuery.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaQuery.java
deleted file mode 100644
index bbe49882d2..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaQuery.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Query;
-import org.eclipse.jpt.core.context.QueryHint;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaQuery;
-import org.eclipse.jpt.core.context.java.JavaQueryHint;
-import org.eclipse.jpt.core.resource.java.QueryAnnotation;
-import org.eclipse.jpt.core.resource.java.QueryHintAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-
-
-public abstract class AbstractJavaQuery extends AbstractJavaJpaContextNode
- implements JavaQuery
-{
- protected String name;
-
- protected String query;
-
- protected final List<JavaQueryHint> hints;
-
- protected QueryAnnotation queryAnnotation;
-
- protected AbstractJavaQuery(JavaJpaContextNode parent) {
- super(parent);
- this.hints = new ArrayList<JavaQueryHint>();
- }
-
- protected QueryAnnotation getQueryResource() {
- return this.queryAnnotation;
- }
-
- public String getName() {
- return this.name;
- }
-
- public void setName(String newName) {
- String oldName = this.name;
- this.name = newName;
- this.queryAnnotation.setName(newName);
- firePropertyChanged(Query.NAME_PROPERTY, oldName, newName);
- }
-
- protected void setName_(String newName) {
- String oldName = this.name;
- this.name = newName;
- firePropertyChanged(Query.NAME_PROPERTY, oldName, newName);
- }
-
- public String getQuery() {
- return this.query;
- }
-
- public void setQuery(String newQuery) {
- String oldQuery = this.query;
- this.query = newQuery;
- this.queryAnnotation.setQuery(newQuery);
- firePropertyChanged(Query.QUERY_PROPERTY, oldQuery, newQuery);
- }
-
- protected void setQuery_(String newQuery) {
- String oldQuery = this.query;
- this.query = newQuery;
- firePropertyChanged(Query.QUERY_PROPERTY, oldQuery, newQuery);
- }
-
- public ListIterator<JavaQueryHint> hints() {
- return new CloneListIterator<JavaQueryHint>(this.hints);
- }
-
- public int hintsSize() {
- return this.hints.size();
- }
-
- public JavaQueryHint addHint(int index) {
- JavaQueryHint hint = getJpaFactory().buildJavaQueryHint(this);
- this.hints.add(index, hint);
- this.getQueryResource().addHint(index);
- this.fireItemAdded(Query.HINTS_LIST, index, hint);
- return hint;
- }
-
- protected void addHint(int index, JavaQueryHint hint) {
- addItemToList(index, hint, this.hints, Query.HINTS_LIST);
- }
-
- public void removeHint(QueryHint queryHint) {
- removeHint(this.hints.indexOf(queryHint));
- }
-
- public void removeHint(int index) {
- JavaQueryHint removedHint = this.hints.remove(index);
- this.getQueryResource().removeHint(index);
- fireItemRemoved(Query.HINTS_LIST, index, removedHint);
- }
-
- protected void removeHint_(JavaQueryHint hint) {
- removeItemFromList(hint, this.hints, Query.HINTS_LIST);
- }
-
- public void moveHint(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.hints, targetIndex, sourceIndex);
- this.getQueryResource().moveHint(targetIndex, sourceIndex);
- fireItemMoved(Query.HINTS_LIST, targetIndex, sourceIndex);
- }
-
- protected void initializeFromResource(QueryAnnotation queryAnnotation) {
- this.queryAnnotation = queryAnnotation;
- this.name = queryAnnotation.getName();
- this.query = queryAnnotation.getQuery();
- this.initializeQueryHints(queryAnnotation);
- }
-
- protected void update(QueryAnnotation queryAnnotation) {
- this.queryAnnotation = queryAnnotation;
- this.setName_(queryAnnotation.getName());
- this.setQuery_(queryAnnotation.getQuery());
- this.updateQueryHints(queryAnnotation);
- }
-
- protected void initializeQueryHints(QueryAnnotation queryResource) {
- ListIterator<QueryHintAnnotation> annotations = queryResource.hints();
-
- while(annotations.hasNext()) {
- this.hints.add(createQueryHint(annotations.next()));
- }
- }
-
- protected void updateQueryHints(QueryAnnotation queryResource) {
- ListIterator<JavaQueryHint> hints = hints();
- ListIterator<QueryHintAnnotation> resourceHints = queryResource.hints();
-
- while (hints.hasNext()) {
- JavaQueryHint hint = hints.next();
- if (resourceHints.hasNext()) {
- hint.update(resourceHints.next());
- }
- else {
- removeHint_(hint);
- }
- }
-
- while (resourceHints.hasNext()) {
- addHint(hintsSize(), createQueryHint(resourceHints.next()));
- }
- }
-
- protected JavaQueryHint createQueryHint(QueryHintAnnotation hintResource) {
- JavaQueryHint queryHint = getJpaFactory().buildJavaQueryHint(this);
- queryHint.initializeFromResource(hintResource);
- return queryHint;
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.queryAnnotation.getTextRange(astRoot);
- }
-
- public TextRange getNameTextRange(CompilationUnit astRoot) {
- return this.queryAnnotation.getNameTextRange(astRoot);
- }
-
- public boolean overrides(Query query) {
- // java is at the base of the tree
- return false;
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java
deleted file mode 100644
index 9be2b4b4b7..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java
+++ /dev/null
@@ -1,198 +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.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.Fetchable;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.context.RelationshipMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaRelationshipMapping;
-import org.eclipse.jpt.core.internal.context.MappingTools;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-public abstract class AbstractJavaRelationshipMapping<T extends RelationshipMappingAnnotation> extends AbstractJavaAttributeMapping<T>
- implements JavaRelationshipMapping
-{
-
- protected String specifiedTargetEntity;
-
- protected String defaultTargetEntity;
-
- protected Entity resolvedTargetEntity;
-
- protected final JavaCascade cascade;
-
- protected FetchType specifiedFetch;
-
- protected AbstractJavaRelationshipMapping(JavaPersistentAttribute parent) {
- super(parent);
- this.cascade = new JavaCascade(this);
- }
-
- public String getTargetEntity() {
- return (this.getSpecifiedTargetEntity() == null) ? getDefaultTargetEntity() : this.getSpecifiedTargetEntity();
- }
-
- public String getSpecifiedTargetEntity() {
- return this.specifiedTargetEntity;
- }
-
- public void setSpecifiedTargetEntity(String newSpecifiedTargetEntity) {
- String oldSpecifiedTargetEntity = this.specifiedTargetEntity;
- this.specifiedTargetEntity = newSpecifiedTargetEntity;
- this.getMappingResource().setTargetEntity(newSpecifiedTargetEntity);
- firePropertyChanged(RelationshipMapping.SPECIFIED_TARGET_ENTITY_PROPERTY, oldSpecifiedTargetEntity, newSpecifiedTargetEntity);
- }
-
- protected void setSpecifiedTargetEntity_(String newSpecifiedTargetEntity) {
- String oldSpecifiedTargetEntity = this.specifiedTargetEntity;
- this.specifiedTargetEntity = newSpecifiedTargetEntity;
- firePropertyChanged(RelationshipMapping.SPECIFIED_TARGET_ENTITY_PROPERTY, oldSpecifiedTargetEntity, newSpecifiedTargetEntity);
- }
-
- public String getDefaultTargetEntity() {
- return this.defaultTargetEntity;
- }
-
- protected void setDefaultTargetEntity(String newDefaultTargetEntity) {
- String oldDefaultTargetEntity = this.defaultTargetEntity;
- this.defaultTargetEntity = newDefaultTargetEntity;
- firePropertyChanged(RelationshipMapping.DEFAULT_TARGET_ENTITY_PROPERTY, oldDefaultTargetEntity, newDefaultTargetEntity);
- }
-
- public Entity getResolvedTargetEntity() {
- return this.resolvedTargetEntity;
- }
-
- protected void setResolvedTargetEntity(Entity newResolvedTargetEntity) {
- Entity oldResolvedTargetEntity = this.resolvedTargetEntity;
- this.resolvedTargetEntity = newResolvedTargetEntity;
- firePropertyChanged(RelationshipMapping.RESOLVED_TARGET_ENTITY_PROPERTY, oldResolvedTargetEntity, newResolvedTargetEntity);
- }
-
- public JavaCascade getCascade() {
- return this.cascade;
- }
-
- public FetchType getFetch() {
- return (this.getSpecifiedFetch() == null) ? this.getDefaultFetch() : this.getSpecifiedFetch();
- }
-
- public FetchType getSpecifiedFetch() {
- return this.specifiedFetch;
- }
-
- public void setSpecifiedFetch(FetchType newSpecifiedFetch) {
- FetchType oldFetch = this.specifiedFetch;
- this.specifiedFetch = newSpecifiedFetch;
- this.getMappingResource().setFetch(FetchType.toJavaResourceModel(newSpecifiedFetch));
- firePropertyChanged(Fetchable.SPECIFIED_FETCH_PROPERTY, oldFetch, newSpecifiedFetch);
- }
-
- protected void setSpecifiedFetch_(FetchType newSpecifiedFetch) {
- FetchType oldFetch = this.specifiedFetch;
- this.specifiedFetch = newSpecifiedFetch;
- firePropertyChanged(Fetchable.SPECIFIED_FETCH_PROPERTY, oldFetch, newSpecifiedFetch);
- }
-
- @Override
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- this.defaultTargetEntity = this.defaultTargetEntity(resourcePersistentAttribute);
- super.initializeFromResource(resourcePersistentAttribute);
- }
-
- @Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- this.setDefaultTargetEntity(this.defaultTargetEntity(resourcePersistentAttribute));
- super.update(resourcePersistentAttribute);
- }
-
- @Override
- protected void initialize(T relationshipMapping) {
- this.specifiedFetch = this.fetch(relationshipMapping);
- this.cascade.initialize(relationshipMapping);
- this.specifiedTargetEntity = this.specifiedTargetEntity(relationshipMapping);
- this.resolvedTargetEntity = this.resolveTargetEntity(relationshipMapping);
- }
-
- @Override
- protected void update(T relationshipMapping) {
- super.update(relationshipMapping);
- this.setSpecifiedFetch_(this.fetch(relationshipMapping));
- this.cascade.update(relationshipMapping);
- this.setSpecifiedTargetEntity_(this.specifiedTargetEntity(relationshipMapping));
- this.setResolvedTargetEntity(this.resolveTargetEntity(relationshipMapping));
- }
-
- protected FetchType fetch(T relationshipMapping) {
- return FetchType.fromJavaResourceModel(relationshipMapping.getFetch());
- }
-
- protected String specifiedTargetEntity(T relationshipMapping) {
- return relationshipMapping.getTargetEntity();
- }
-
- protected abstract String defaultTargetEntity(JavaResourcePersistentAttribute resourcePersistentAttribute);
-
- protected Entity resolveTargetEntity(T relationshipMapping) {
- String qualifiedTargetEntity = getDefaultTargetEntity();
- if (getSpecifiedTargetEntity() != null) {
- qualifiedTargetEntity = relationshipMapping.getFullyQualifiedTargetEntity();
- }
- if (qualifiedTargetEntity == null) {
- return null;
- }
- PersistentType persistentType = getPersistenceUnit().getPersistentType(qualifiedTargetEntity);
- if (persistentType != null && persistentType.getMappingKey() == MappingKeys.ENTITY_TYPE_MAPPING_KEY) {
- return (Entity) persistentType.getMapping();
- }
- return null;
- }
-
- public Entity getEntity() {
- if (getTypeMapping() instanceof Entity) {
- return (Entity) getTypeMapping();
- }
- return null;
- }
-
- public Iterator<String> allTargetEntityAttributeNames() {
- Entity targetEntity = this.getResolvedTargetEntity();
- return (targetEntity == null) ? EmptyIterator.<String> instance() : targetEntity.getPersistentType().allAttributeNames();
- }
-
- public Iterator<String> candidateMappedByAttributeNames() {
- return this.allTargetEntityAttributeNames();
- }
-
- protected Iterator<String> candidateMappedByAttributeNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateMappedByAttributeNames(), filter);
- }
-
- protected Iterator<String> quotedCandidateMappedByAttributeNames(Filter<String> filter) {
- return StringTools.quote(this.candidateMappedByAttributeNames(filter));
- }
-
-
- // ********** static methods **********
-
- public boolean targetEntityIsValid(String targetEntity) {
- return MappingTools.targetEntityIsValid(targetEntity);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java
deleted file mode 100644
index 1f09a2c559..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java
+++ /dev/null
@@ -1,433 +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.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.BaseJoinColumn;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.Nullable;
-import org.eclipse.jpt.core.context.RelationshipMapping;
-import org.eclipse.jpt.core.context.SingleRelationshipMapping;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.java.JavaJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaSingleRelationshipMapping;
-import org.eclipse.jpt.core.internal.resource.java.NullJoinColumn;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JoinColumnsAnnotation;
-import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementListIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public abstract class AbstractJavaSingleRelationshipMapping<T extends RelationshipMappingAnnotation>
- extends AbstractJavaRelationshipMapping<T> implements JavaSingleRelationshipMapping
-{
-
- protected final List<JavaJoinColumn> specifiedJoinColumns;
-
- protected JavaJoinColumn defaultJoinColumn;
-
- protected Boolean specifiedOptional;
-
- protected AbstractJavaSingleRelationshipMapping(JavaPersistentAttribute parent) {
- super(parent);
- this.specifiedJoinColumns = new ArrayList<JavaJoinColumn>();
- }
-
- public FetchType getDefaultFetch() {
- return SingleRelationshipMapping.DEFAULT_FETCH_TYPE;
- }
-
- //***************** ISingleRelationshipMapping implementation *****************
- public ListIterator<JavaJoinColumn> joinColumns() {
- return this.containsSpecifiedJoinColumns() ? this.specifiedJoinColumns() : this.defaultJoinColumns();
- }
-
- public int joinColumnsSize() {
- return this.containsSpecifiedJoinColumns() ? this.specifiedJoinColumnsSize() : this.defaultJoinColumnsSize();
- }
-
- public JavaJoinColumn getDefaultJoinColumn() {
- return this.defaultJoinColumn;
- }
-
- protected void setDefaultJoinColumn(JavaJoinColumn newJoinColumn) {
- JavaJoinColumn oldJoinColumn = this.defaultJoinColumn;
- this.defaultJoinColumn = newJoinColumn;
- firePropertyChanged(SingleRelationshipMapping.DEFAULT_JOIN_COLUMN, oldJoinColumn, newJoinColumn);
- }
-
- protected ListIterator<JavaJoinColumn> defaultJoinColumns() {
- if (this.defaultJoinColumn != null) {
- return new SingleElementListIterator<JavaJoinColumn>(this.defaultJoinColumn);
- }
- return EmptyListIterator.instance();
- }
-
- protected int defaultJoinColumnsSize() {
- return (this.defaultJoinColumn == null) ? 0 : 1;
- }
-
- public ListIterator<JavaJoinColumn> specifiedJoinColumns() {
- return new CloneListIterator<JavaJoinColumn>(this.specifiedJoinColumns);
- }
-
- public int specifiedJoinColumnsSize() {
- return this.specifiedJoinColumns.size();
- }
-
- public boolean containsSpecifiedJoinColumns() {
- return !this.specifiedJoinColumns.isEmpty();
- }
-
- public JavaJoinColumn addSpecifiedJoinColumn(int index) {
- JavaJoinColumn oldDefaultJoinColumn = this.getDefaultJoinColumn();
- if (oldDefaultJoinColumn != null) {
- //null the default join column now if one already exists.
- //if one does not exist, there is already a specified join column.
- //Remove it now so that it doesn't get removed during an update and
- //cause change notifications to be sent to the UI in the wrong order
- this.defaultJoinColumn = null;
- }
- JavaJoinColumn joinColumn = getJpaFactory().buildJavaJoinColumn(this, createJoinColumnOwner());
- this.specifiedJoinColumns.add(index, joinColumn);
- JoinColumnAnnotation joinColumnResource = (JoinColumnAnnotation) getResourcePersistentAttribute().addAnnotation(index, JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
- joinColumn.initializeFromResource(joinColumnResource);
- this.fireItemAdded(SingleRelationshipMapping.SPECIFIED_JOIN_COLUMNS_LIST, index, joinColumn);
- if (oldDefaultJoinColumn != null) {
- this.firePropertyChanged(SingleRelationshipMapping.DEFAULT_JOIN_COLUMN, oldDefaultJoinColumn, null);
- }
- return joinColumn;
- }
-
- protected void addSpecifiedJoinColumn(int index, JavaJoinColumn joinColumn) {
- addItemToList(index, joinColumn, this.specifiedJoinColumns, SingleRelationshipMapping.SPECIFIED_JOIN_COLUMNS_LIST);
- }
-
- public void removeSpecifiedJoinColumn(JoinColumn joinColumn) {
- this.removeSpecifiedJoinColumn(this.specifiedJoinColumns.indexOf(joinColumn));
- }
-
- public void removeSpecifiedJoinColumn(int index) {
- JavaJoinColumn removedJoinColumn = this.specifiedJoinColumns.remove(index);
- if (!containsSpecifiedJoinColumns()) {
- //create the defaultJoinColumn now or this will happen during project update
- //after removing the join column from the resource model. That causes problems
- //in the UI because the change notifications end up in the wrong order.
- this.defaultJoinColumn = buildJoinColumn(new NullJoinColumn(getResourcePersistentAttribute()));
- }
- getResourcePersistentAttribute().removeAnnotation(index, JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
- fireItemRemoved(SingleRelationshipMapping.SPECIFIED_JOIN_COLUMNS_LIST, index, removedJoinColumn);
- if (this.defaultJoinColumn != null) {
- //fire change notification if a defaultJoinColumn was created above
- this.firePropertyChanged(SingleRelationshipMapping.DEFAULT_JOIN_COLUMN, null, this.defaultJoinColumn);
- }
- }
-
- protected void removeSpecifiedJoinColumn_(JavaJoinColumn joinColumn) {
- removeItemFromList(joinColumn, this.specifiedJoinColumns, SingleRelationshipMapping.SPECIFIED_JOIN_COLUMNS_LIST);
- }
-
- public void moveSpecifiedJoinColumn(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.specifiedJoinColumns, targetIndex, sourceIndex);
- getResourcePersistentAttribute().move(targetIndex, sourceIndex, JoinColumnsAnnotation.ANNOTATION_NAME);
- fireItemMoved(SingleRelationshipMapping.SPECIFIED_JOIN_COLUMNS_LIST, targetIndex, sourceIndex);
- }
-
- public Boolean getOptional() {
- return getSpecifiedOptional() == null ? getDefaultOptional() : getSpecifiedOptional();
- }
-
- public Boolean getDefaultOptional() {
- return Nullable.DEFAULT_OPTIONAL;
- }
-
- public Boolean getSpecifiedOptional() {
- return this.specifiedOptional;
- }
-
- public void setSpecifiedOptional(Boolean newSpecifiedOptional) {
- Boolean oldSpecifiedOptional = this.specifiedOptional;
- this.specifiedOptional = newSpecifiedOptional;
- setOptionalOnResourceModel(newSpecifiedOptional);
- firePropertyChanged(Nullable.SPECIFIED_OPTIONAL_PROPERTY, oldSpecifiedOptional, newSpecifiedOptional);
- }
-
- protected void setSpecifiedOptional_(Boolean newSpecifiedOptional) {
- Boolean oldSpecifiedOptional = this.specifiedOptional;
- this.specifiedOptional = newSpecifiedOptional;
- firePropertyChanged(Nullable.SPECIFIED_OPTIONAL_PROPERTY, oldSpecifiedOptional, newSpecifiedOptional);
- }
-
- protected abstract void setOptionalOnResourceModel(Boolean newOptional);
-
-
- @Override
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.initializeFromResource(resourcePersistentAttribute);
- this.initializeSpecifiedJoinColumns(resourcePersistentAttribute);
- this.initializeDefaultJoinColumn(resourcePersistentAttribute);
- }
-
- @Override
- protected void initialize(T relationshipMapping) {
- super.initialize(relationshipMapping);
- this.specifiedOptional = this.specifiedOptional(relationshipMapping);
- }
-
- protected void initializeSpecifiedJoinColumns(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- ListIterator<JavaResourceNode> annotations = resourcePersistentAttribute.annotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- this.specifiedJoinColumns.add(buildJoinColumn((JoinColumnAnnotation) annotations.next()));
- }
- }
-
- protected boolean shouldBuildDefaultJoinColumn() {
- return !containsSpecifiedJoinColumns() && isRelationshipOwner();
- }
-
- protected void initializeDefaultJoinColumn(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- if (!shouldBuildDefaultJoinColumn()) {
- return;
- }
- this.defaultJoinColumn = buildJoinColumn(new NullJoinColumn(resourcePersistentAttribute));
- }
-
-
- @Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.update(resourcePersistentAttribute);
- this.updateSpecifiedJoinColumns(resourcePersistentAttribute);
- this.updateDefaultJoinColumn(resourcePersistentAttribute);
- }
-
- @Override
- protected void update(T relationshipMapping) {
- super.update(relationshipMapping);
- this.setSpecifiedOptional_(this.specifiedOptional(relationshipMapping));
- }
-
- protected abstract Boolean specifiedOptional(T relationshipMapping);
-
-
- protected void updateSpecifiedJoinColumns(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- ListIterator<JavaJoinColumn> joinColumns = specifiedJoinColumns();
- ListIterator<JavaResourceNode> resourceJoinColumns = resourcePersistentAttribute.annotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-
- while (joinColumns.hasNext()) {
- JavaJoinColumn joinColumn = joinColumns.next();
- if (resourceJoinColumns.hasNext()) {
- joinColumn.update((JoinColumnAnnotation) resourceJoinColumns.next());
- }
- else {
- removeSpecifiedJoinColumn_(joinColumn);
- }
- }
-
- while (resourceJoinColumns.hasNext()) {
- addSpecifiedJoinColumn(specifiedJoinColumnsSize(), buildJoinColumn((JoinColumnAnnotation) resourceJoinColumns.next()));
- }
- }
-
- protected void updateDefaultJoinColumn(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- if (!shouldBuildDefaultJoinColumn()) {
- setDefaultJoinColumn(null);
- return;
- }
- if (getDefaultJoinColumn() == null) {
- this.setDefaultJoinColumn(buildJoinColumn(new NullJoinColumn(resourcePersistentAttribute)));
- }
- else {
- this.defaultJoinColumn.update(new NullJoinColumn(resourcePersistentAttribute));
- }
- }
-
- protected JavaJoinColumn buildJoinColumn(JoinColumnAnnotation joinColumnResource) {
- JavaJoinColumn joinColumn = getJpaFactory().buildJavaJoinColumn(this, createJoinColumnOwner());
- joinColumn.initializeFromResource(joinColumnResource);
- return joinColumn;
- }
-
- protected JavaJoinColumn.Owner createJoinColumnOwner() {
- return new JoinColumnOwner();
- }
-
- /**
- * eliminate any "container" types
- */
- @Override
- protected String defaultTargetEntity(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- if (resourcePersistentAttribute.typeIsContainer()) {
- return null;
- }
- return resourcePersistentAttribute.getQualifiedReferenceEntityTypeName();
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- for (JavaJoinColumn column : CollectionTools.iterable(this.joinColumns())) {
- result = column.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- return null;
- }
-
- //************* Validation **********************************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- if (addJoinColumnMessages()) {
- addJoinColumnMessages(messages, astRoot);
- }
- }
-
- //bug 192287 - do not want joinColumn validation errors on the non-owning side
- //of a bidirectional relationship. This is a low risk fix for RC3, but a better
- //solution would be to not have the default joinColumns on the non-owning side.
- //This would fix another bug that we show default joinColumns in this situation.
- protected boolean addJoinColumnMessages() {
- return (entityOwned() && isRelationshipOwner());
- }
-
- protected void addJoinColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
-
- for (Iterator<JavaJoinColumn> stream = this.joinColumns(); stream.hasNext();) {
- JavaJoinColumn joinColumn = stream.next();
- String table = joinColumn.getTable();
- boolean doContinue = joinColumn.connectionProfileIsActive();
-
- if (doContinue && this.getTypeMapping().tableNameIsInvalid(table)) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_TABLE,
- new String[] {table, joinColumn.getName()},
- joinColumn, joinColumn.getTableTextRange(astRoot))
- );
- doContinue = false;
- }
-
- if (doContinue && ! joinColumn.isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_NAME,
- new String[] {joinColumn.getName()},
- joinColumn, joinColumn.getNameTextRange(astRoot))
- );
- }
-
- if (doContinue && ! joinColumn.isReferencedColumnResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME,
- new String[] {joinColumn.getReferencedColumnName(), joinColumn.getName()},
- joinColumn, joinColumn.getReferencedColumnNameTextRange(astRoot))
- );
- }
- }
- }
-
-
- public class JoinColumnOwner implements JavaJoinColumn.Owner
- {
-
- public JoinColumnOwner() {
- super();
- }
-
- /**
- * by default, the join column is in the type mapping's primary table
- */
- public String getDefaultTableName() {
- return AbstractJavaSingleRelationshipMapping.this.getTypeMapping().getTableName();
- }
-
- public Entity getTargetEntity() {
- return AbstractJavaSingleRelationshipMapping.this.getResolvedTargetEntity();
- }
-
- public String getAttributeName() {
- return AbstractJavaSingleRelationshipMapping.this.getPersistentAttribute().getName();
- }
-
- public RelationshipMapping getRelationshipMapping() {
- return AbstractJavaSingleRelationshipMapping.this;
- }
-
- public boolean tableNameIsInvalid(String tableName) {
- return AbstractJavaSingleRelationshipMapping.this.getTypeMapping().tableNameIsInvalid(tableName);
- }
-
- /**
- * the join column can be on a secondary table
- */
- public boolean tableIsAllowed() {
- return true;
- }
-
- public TypeMapping getTypeMapping() {
- return AbstractJavaSingleRelationshipMapping.this.getTypeMapping();
- }
-
- public Table getDbTable(String tableName) {
- return getTypeMapping().getDbTable(tableName);
- }
-
- public Table getDbReferencedColumnTable() {
- Entity targetEntity = getTargetEntity();
- return (targetEntity == null) ? null : targetEntity.getPrimaryDbTable();
- }
-
- public boolean isVirtual(BaseJoinColumn joinColumn) {
- return AbstractJavaSingleRelationshipMapping.this.defaultJoinColumn == joinColumn;
- }
-
- public String getDefaultColumnName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return AbstractJavaSingleRelationshipMapping.this.getValidationTextRange(astRoot);
- }
-
- public int joinColumnsSize() {
- return AbstractJavaSingleRelationshipMapping.this.joinColumnsSize();
- }
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTable.java
deleted file mode 100644
index 6ce7369b2b..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTable.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Table;
-import org.eclipse.jpt.core.context.UniqueConstraint;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.TableAnnotation;
-import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.NameTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-public abstract class AbstractJavaTable extends AbstractJavaJpaContextNode implements UniqueConstraint.Owner
-{
-
- protected String specifiedName;
- protected String defaultName;
-
- protected String specifiedCatalog;
- protected String defaultCatalog;
-
- protected String specifiedSchema;
- protected String defaultSchema;
-
- protected final List<JavaUniqueConstraint> uniqueConstraints;
-
-
- protected AbstractJavaTable(JavaJpaContextNode parent) {
- super(parent);
- this.uniqueConstraints = new ArrayList<JavaUniqueConstraint>();
- }
-
- @Override
- public JavaJpaContextNode getParent() {
- return (JavaJpaContextNode) super.getParent();
- }
-
- /**
- * Return the java table resource, do not return null if the java annotation does not exist.
- * Use a null resource object instead of null.
- */
- protected abstract TableAnnotation getTableResource();
-
- /**
- * Return the fully qualified annotation name of the java table resource
- */
- protected abstract String getAnnotationName();
-
- public String getName() {
- return (this.getSpecifiedName() == null) ? getDefaultName() : this.getSpecifiedName();
- }
-
- public String getSpecifiedName() {
- return this.specifiedName;
- }
-
- public void setSpecifiedName(String newSpecifiedName) {
- String oldSpecifiedName = this.specifiedName;
- this.specifiedName = newSpecifiedName;
- getTableResource().setName(newSpecifiedName);
- firePropertyChanged(Table.SPECIFIED_NAME_PROPERTY, oldSpecifiedName, newSpecifiedName);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedName_(String newSpecifiedName) {
- String oldSpecifiedName = this.specifiedName;
- this.specifiedName = newSpecifiedName;
- firePropertyChanged(Table.SPECIFIED_NAME_PROPERTY, oldSpecifiedName, newSpecifiedName);
- }
-
- public String getDefaultName() {
- return this.defaultName;
- }
-
- public String getCatalog() {
- return (this.getSpecifiedCatalog() == null) ? getDefaultCatalog() : this.getSpecifiedCatalog();
- }
-
- public String getSpecifiedCatalog() {
- return this.specifiedCatalog;
- }
-
- public void setSpecifiedCatalog(String newSpecifiedCatalog) {
- String oldSpecifiedCatalog = this.specifiedCatalog;
- this.specifiedCatalog = newSpecifiedCatalog;
- getTableResource().setCatalog(newSpecifiedCatalog);
- firePropertyChanged(Table.SPECIFIED_CATALOG_PROPERTY, oldSpecifiedCatalog, newSpecifiedCatalog);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedCatalog_(String newSpecifiedCatalog) {
- String oldSpecifiedCatalog = this.specifiedCatalog;
- this.specifiedCatalog = newSpecifiedCatalog;
- firePropertyChanged(Table.SPECIFIED_CATALOG_PROPERTY, oldSpecifiedCatalog, newSpecifiedCatalog);
- }
-
- public String getDefaultCatalog() {
- return this.defaultCatalog;
- }
-
- public String getSchema() {
- return (this.getSpecifiedSchema() == null) ? getDefaultSchema() : this.getSpecifiedSchema();
- }
-
- public String getSpecifiedSchema() {
- return this.specifiedSchema;
- }
-
- public void setSpecifiedSchema(String newSpecifiedSchema) {
- String oldSpecifiedSchema = this.specifiedSchema;
- this.specifiedSchema = newSpecifiedSchema;
- getTableResource().setSchema(newSpecifiedSchema);
- firePropertyChanged(Table.SPECIFIED_SCHEMA_PROPERTY, oldSpecifiedSchema, newSpecifiedSchema);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedSchema_(String newSpecifiedSchema) {
- String oldSpecifiedSchema = this.specifiedSchema;
- this.specifiedSchema = newSpecifiedSchema;
- firePropertyChanged(Table.SPECIFIED_SCHEMA_PROPERTY, oldSpecifiedSchema, newSpecifiedSchema);
- }
-
- public String getDefaultSchema() {
- return this.defaultSchema;
- }
-
-
- // ********** unique constraints **********
-
- public ListIterator<JavaUniqueConstraint> uniqueConstraints() {
- return new CloneListIterator<JavaUniqueConstraint>(this.uniqueConstraints);
- }
-
- public int uniqueConstraintsSize() {
- return this.uniqueConstraints.size();
- }
-
- public JavaUniqueConstraint addUniqueConstraint(int index) {
- JavaUniqueConstraint uniqueConstraint = getJpaFactory().buildJavaUniqueConstraint(this, this);
- this.uniqueConstraints.add(index, uniqueConstraint);
- UniqueConstraintAnnotation uniqueConstraintAnnotation = this.getTableResource().addUniqueConstraint(index);
- uniqueConstraint.initialize(uniqueConstraintAnnotation);
- fireItemAdded(Table.UNIQUE_CONSTRAINTS_LIST, index, uniqueConstraint);
- return uniqueConstraint;
- }
-
- public void removeUniqueConstraint(UniqueConstraint uniqueConstraint) {
- this.removeUniqueConstraint(this.uniqueConstraints.indexOf(uniqueConstraint));
- }
-
- public void removeUniqueConstraint(int index) {
- JavaUniqueConstraint removedUniqueConstraint = this.uniqueConstraints.remove(index);
- this.getTableResource().removeUniqueConstraint(index);
- fireItemRemoved(Table.UNIQUE_CONSTRAINTS_LIST, index, removedUniqueConstraint);
- }
-
- public void moveUniqueConstraint(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.uniqueConstraints, targetIndex, sourceIndex);
- this.getTableResource().moveUniqueConstraint(targetIndex, sourceIndex);
- fireItemMoved(Table.UNIQUE_CONSTRAINTS_LIST, targetIndex, sourceIndex);
- }
-
- protected void addUniqueConstraint(int index, JavaUniqueConstraint uniqueConstraint) {
- addItemToList(index, uniqueConstraint, this.uniqueConstraints, Table.UNIQUE_CONSTRAINTS_LIST);
- }
-
- protected void removeUniqueConstraint_(JavaUniqueConstraint uniqueConstraint) {
- removeItemFromList(uniqueConstraint, this.uniqueConstraints, Table.UNIQUE_CONSTRAINTS_LIST);
- }
-
-
- // ********** Table implementation **********
-
- public TextRange getNameTextRange(CompilationUnit astRoot) {
- TextRange textRange = getTableResource().getNameTextRange(astRoot);
- return (textRange != null) ? textRange : this.getParent().getValidationTextRange(astRoot);
- }
-
- public boolean nameTouches(int pos, CompilationUnit astRoot) {
- return getTableResource().nameTouches(pos, astRoot);
- }
-
- public TextRange getSchemaTextRange(CompilationUnit astRoot) {
- TextRange textRange = getTableResource().getSchemaTextRange(astRoot);
- return (textRange != null) ? textRange : this.getParent().getValidationTextRange(astRoot);
- }
-
- public boolean schemaTouches(int pos, CompilationUnit astRoot) {
- return getTableResource().schemaTouches(pos, astRoot);
- }
-
- public TextRange getCatalogTextRange(CompilationUnit astRoot) {
- return getTableResource().getCatalogTextRange(astRoot);
- }
-
- public boolean catalogTouches(int pos, CompilationUnit astRoot) {
- return getTableResource().catalogTouches(pos, astRoot);
- }
-
- protected void setDefaultName(String newDefaultName) {
- String oldDefaultName = this.defaultName;
- this.defaultName = newDefaultName;
- firePropertyChanged(Table.DEFAULT_NAME_PROPERTY, oldDefaultName, newDefaultName);
- }
-
- protected void setDefaultCatalog(String newDefaultCatalog) {
- String oldDefaultCatalog = this.defaultCatalog;
- this.defaultCatalog = newDefaultCatalog;
- firePropertyChanged(Table.DEFAULT_CATALOG_PROPERTY, oldDefaultCatalog, newDefaultCatalog);
- }
-
- protected void setDefaultSchema(String newDefaultSchema) {
- String oldDefaultSchema = this.defaultSchema;
- this.defaultSchema = newDefaultSchema;
- firePropertyChanged(Table.DEFAULT_SCHEMA_PROPERTY, oldDefaultSchema, newDefaultSchema);
- }
-
-
-
- protected void initializeFromResource(TableAnnotation table) {
- this.defaultName = this.defaultName();
- this.defaultSchema = this.defaultSchema();
- this.defaultCatalog = this.defaultCatalog();
- this.specifiedName = table.getName();
- this.specifiedSchema = table.getSchema();
- this.specifiedCatalog = table.getCatalog();
- this.initializeUniqueConstraints(table);
- }
-
- protected void initializeUniqueConstraints(TableAnnotation table) {
- for (UniqueConstraintAnnotation uniqueConstraintAnnotation : CollectionTools.iterable(table.uniqueConstraints())) {
- this.uniqueConstraints.add(buildUniqueConstraint(uniqueConstraintAnnotation));
- }
- }
-
- protected void update(TableAnnotation table) {
- this.setSpecifiedName_(table.getName());
- this.setSpecifiedSchema_(table.getSchema());
- this.setSpecifiedCatalog_(table.getCatalog());
- this.setDefaultName(this.defaultName());
- this.setDefaultSchema(this.defaultSchema());
- this.setDefaultCatalog(this.defaultCatalog());
- this.updateUniqueConstraints(table);
- }
-
- protected abstract String defaultName();
-
- protected String defaultSchema() {
- if (getEntityMappings() != null) {
- return getEntityMappings().getSchema();
- }
- return getPersistenceUnit().getDefaultSchema();
- }
-
- protected String defaultCatalog() {
- if (getEntityMappings() != null) {
- return getEntityMappings().getCatalog();
- }
- return getPersistenceUnit().getDefaultCatalog();
- }
-
- protected void updateUniqueConstraints(TableAnnotation table) {
- ListIterator<JavaUniqueConstraint> uniqueConstraints = uniqueConstraints();
- ListIterator<UniqueConstraintAnnotation> resourceUniqueConstraints = table.uniqueConstraints();
-
- while (uniqueConstraints.hasNext()) {
- JavaUniqueConstraint uniqueConstraint = uniqueConstraints.next();
- if (resourceUniqueConstraints.hasNext()) {
- uniqueConstraint.update(resourceUniqueConstraints.next());
- }
- else {
- removeUniqueConstraint_(uniqueConstraint);
- }
- }
-
- while (resourceUniqueConstraints.hasNext()) {
- addUniqueConstraint(uniqueConstraintsSize(), buildUniqueConstraint(resourceUniqueConstraints.next()));
- }
- }
-
- protected JavaUniqueConstraint buildUniqueConstraint(UniqueConstraintAnnotation uniqueConstraintAnnotation) {
- JavaUniqueConstraint uniqueConstraint = getJpaFactory().buildJavaUniqueConstraint(this, this);
- uniqueConstraint.initialize(uniqueConstraintAnnotation);
- return uniqueConstraint;
- }
-
-
- //******************* UniqueConstraint.Owner implementation ******************
-
- public Iterator<String> candidateUniqueConstraintColumnNames() {
- org.eclipse.jpt.db.Table dbTable = getDbTable();
- if (dbTable != null) {
- return dbTable.columnNames();
- }
- return EmptyIterator.instance();
- }
-
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- TextRange textRange = getTableResource().getTextRange(astRoot);
- return (textRange != null) ? textRange : this.getParent().getValidationTextRange(astRoot);
- }
-
- public org.eclipse.jpt.db.Table getDbTable() {
- Schema schema = this.getDbSchema();
- return (schema == null) ? null : schema.tableNamed(this.getName());
- }
-
- public Schema getDbSchema() {
- return this.getDatabase().schemaNamed(this.getSchema());
- }
-
- public boolean hasResolvedSchema() {
- return this.getDbSchema() != null;
- }
-
- public boolean isResolved() {
- return this.getDbTable() != null;
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- for (JavaUniqueConstraint constraint : CollectionTools.iterable(this.uniqueConstraints())) {
- result = constraint.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- return null;
- }
-
- /**
- * called if the database is connected
- * name, schema, catalog
- */
- @Override
- public Iterator<String> connectedJavaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.connectedJavaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.nameTouches(pos, astRoot)) {
- return this.quotedCandidateNames(filter);
- }
- if (this.schemaTouches(pos, astRoot)) {
- return this.quotedCandidateSchemas(filter);
- }
- if (this.catalogTouches(pos, astRoot)) {
- return this.quotedCandidateCatalogs(filter);
- }
- return null;
- }
-
- private Iterator<String> candidateNames() {
- Schema dbSchema = this.getDbSchema();
- return (dbSchema != null) ? dbSchema.tableNames() : EmptyIterator.<String> instance();
- }
-
- private Iterator<String> candidateNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateNames(), filter);
- }
-
- private Iterator<String> quotedCandidateNames(Filter<String> filter) {
- return StringTools.quote(this.candidateNames(filter));
- }
-
- private Iterator<String> candidateSchemas() {
- return this.getDatabase().schemaNames();
- }
-
- private Iterator<String> candidateSchemas(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateSchemas(), filter);
- }
-
- private Iterator<String> quotedCandidateSchemas(Filter<String> filter) {
- return StringTools.quote(this.candidateSchemas(filter));
- }
-
- private Iterator<String> candidateCatalogs() {
- return this.getDatabase().catalogNames();
- }
-
- private Iterator<String> candidateCatalogs(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateCatalogs(), filter);
- }
-
- private Iterator<String> quotedCandidateCatalogs(Filter<String> filter) {
- return StringTools.quote(this.candidateCatalogs(filter));
- }
-
- public String getQualifiedName() {
- return NameTools.buildQualifiedDatabaseObjectName(this.getCatalog(), this.getSchema(), this.getName());
- }
-
- @Override
- public void toString(StringBuilder sb) {
- super.toString(sb);
- sb.append(getQualifiedName());
- }
-
- @Override
- public String displayString() {
- return getQualifiedName();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTypeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTypeMapping.java
deleted file mode 100644
index 5ae078e889..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTypeMapping.java
+++ /dev/null
@@ -1,129 +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.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.Table;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-
-public abstract class AbstractJavaTypeMapping extends AbstractJavaJpaContextNode
- implements JavaTypeMapping
-{
- protected JavaResourcePersistentType javaResourcePersistentType;
-
-
- protected AbstractJavaTypeMapping(JavaPersistentType parent) {
- super(parent);
- }
-
- protected JavaResourceNode getMappingResource() {
- return this.javaResourcePersistentType.getMappingAnnotation(getAnnotationName());
- }
-
- //***************** ITypeMapping implementation *****************
-
- public JavaPersistentType getPersistentType() {
- return (JavaPersistentType) getParent();
- }
-
- public String getTableName() {
- return null;
- }
-
- public org.eclipse.jpt.db.Table getPrimaryDbTable() {
- return null;
- }
-
- public org.eclipse.jpt.db.Table getDbTable(String tableName) {
- return null;
- }
-
- public Schema getDbSchema() {
- return null;
- }
-
- public boolean attributeMappingKeyAllowed(String attributeMappingKey) {
- return true;
- }
-
- public Iterator<Table> associatedTables() {
- return EmptyIterator.instance();
- }
-
- public Iterator<String> associatedTableNamesIncludingInherited() {
- return EmptyIterator.instance();
- }
-
- public Iterator<Table> associatedTablesIncludingInherited() {
- return EmptyIterator.instance();
- }
-
- public Iterator<JavaPersistentAttribute> overridableAttributes() {
- return EmptyIterator.instance();
- }
-
- public Iterator<PersistentAttribute> allOverridableAttributes() {
- return EmptyIterator.instance();
- }
-
- public Iterator<String> overridableAttributeNames() {
- return EmptyIterator.instance();
- }
-
- public Iterator<String> allOverridableAttributeNames() {
- return EmptyIterator.instance();
- }
-
- public Iterator<JavaPersistentAttribute> 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 boolean tableNameIsInvalid(String tableName) {
- return false;
- }
-
- //******************** updatating *********************
- public void initializeFromResource(JavaResourcePersistentType javaResourcePersistentType) {
- this.javaResourcePersistentType = javaResourcePersistentType;
- }
-
- public void update(JavaResourcePersistentType javaResourcePersistentType) {
- this.javaResourcePersistentType = javaResourcePersistentType;
- }
-
- //******************** validation *********************
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- TextRange textRange = this.getMappingResource().getTextRange(astRoot);
- return (textRange != null) ? textRange : this.getPersistentType().getValidationTextRange(astRoot);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAssociationOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAssociationOverride.java
deleted file mode 100644
index 3e7299264b..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAssociationOverride.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.BaseJoinColumn;
-import org.eclipse.jpt.core.context.AssociationOverride;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.RelationshipMapping;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.java.JavaAssociationOverride;
-import org.eclipse.jpt.core.context.java.JavaJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public class GenericJavaAssociationOverride extends AbstractJavaOverride
- implements JavaAssociationOverride
-{
-
- protected final List<JavaJoinColumn> specifiedJoinColumns;
-
- protected final List<JavaJoinColumn> defaultJoinColumns;
-
-
- public GenericJavaAssociationOverride(JavaJpaContextNode parent, AssociationOverride.Owner owner) {
- super(parent, owner);
- this.specifiedJoinColumns = new ArrayList<JavaJoinColumn>();
- this.defaultJoinColumns = new ArrayList<JavaJoinColumn>();
- }
-
- @Override
- public JavaAssociationOverride setVirtual(boolean virtual) {
- return (JavaAssociationOverride) super.setVirtual(virtual);
- }
-
- @Override
- protected AssociationOverrideAnnotation getOverrideResource() {
- return (AssociationOverrideAnnotation) super.getOverrideResource();
- }
-
- @Override
- public AssociationOverride.Owner getOwner() {
- return (AssociationOverride.Owner) super.getOwner();
- }
-
- public ListIterator<JavaJoinColumn> joinColumns() {
- return this.specifiedJoinColumns.isEmpty() ? this.defaultJoinColumns() : this.specifiedJoinColumns();
- }
-
- public int joinColumnsSize() {
- return this.specifiedJoinColumns.isEmpty() ? this.defaultJoinColumnsSize() : this.specifiedJoinColumnsSize();
- }
-
- public ListIterator<JavaJoinColumn> defaultJoinColumns() {
- return new CloneListIterator<JavaJoinColumn>(this.defaultJoinColumns);
- }
-
- public int defaultJoinColumnsSize() {
- return this.defaultJoinColumns.size();
- }
-
- public ListIterator<JavaJoinColumn> specifiedJoinColumns() {
- return new CloneListIterator<JavaJoinColumn>(this.specifiedJoinColumns);
- }
-
- public int specifiedJoinColumnsSize() {
- return this.specifiedJoinColumns.size();
- }
-
- public JavaJoinColumn addSpecifiedJoinColumn(int index) {
- JavaJoinColumn joinColumn = getJpaFactory().buildJavaJoinColumn(this, createJoinColumnOwner());
- this.specifiedJoinColumns.add(index, joinColumn);
- JoinColumnAnnotation joinColumnResource = getOverrideResource().addJoinColumn(index);
- joinColumn.initializeFromResource(joinColumnResource);
- this.fireItemAdded(AssociationOverride.SPECIFIED_JOIN_COLUMNS_LIST, index, joinColumn);
- return joinColumn;
- }
-
- protected JavaJoinColumn.Owner createJoinColumnOwner() {
- return new JoinColumnOwner();
- }
-
- protected void addSpecifiedJoinColumn(int index, JavaJoinColumn joinColumn) {
- addItemToList(index, joinColumn, this.specifiedJoinColumns, AssociationOverride.SPECIFIED_JOIN_COLUMNS_LIST);
- }
-
- public void removeSpecifiedJoinColumn(int index) {
- JavaJoinColumn removedJoinColumn = this.specifiedJoinColumns.remove(index);
- getOverrideResource().removeJoinColumn(index);
- fireItemRemoved(Entity.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST, index, removedJoinColumn);
- }
-
- protected void removeSpecifiedJoinColumn(JavaJoinColumn joinColumn) {
- removeItemFromList(joinColumn, this.specifiedJoinColumns, AssociationOverride.SPECIFIED_JOIN_COLUMNS_LIST);
- }
-
- public void moveSpecifiedJoinColumn(int targetIndex, int sourceIndex) {
- getOverrideResource().moveJoinColumn(targetIndex, sourceIndex);
- moveItemInList(targetIndex, sourceIndex, this.specifiedJoinColumns, AssociationOverride.SPECIFIED_JOIN_COLUMNS_LIST);
- }
-
- public boolean containsSpecifiedJoinColumns() {
- return !this.specifiedJoinColumns.isEmpty();
- }
-
-
- @Override
- protected Iterator<String> candidateNames() {
- return this.getOwner().getTypeMapping().allOverridableAssociationNames();
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- for (JavaJoinColumn column : CollectionTools.iterable(this.joinColumns())) {
- result = column.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- return null;
- }
-
- public void initializeFromResource(AssociationOverrideAnnotation associationOverride) {
- super.initializeFromResource(associationOverride);
- this.name = associationOverride.getName();
- initializeSpecifiedJoinColumns(associationOverride);
- }
-
- protected void initializeSpecifiedJoinColumns(AssociationOverrideAnnotation associationOverride) {
- ListIterator<JoinColumnAnnotation> annotations = associationOverride.joinColumns();
-
- while(annotations.hasNext()) {
- this.specifiedJoinColumns.add(createJoinColumn(annotations.next()));
- }
- }
-
- public void update(AssociationOverrideAnnotation associationOverride) {
- super.update(associationOverride);
- updateSpecifiedJoinColumns(associationOverride);
- }
-
- protected void updateSpecifiedJoinColumns(AssociationOverrideAnnotation associationOverride) {
- ListIterator<JavaJoinColumn> joinColumns = specifiedJoinColumns();
- ListIterator<JoinColumnAnnotation> resourceJoinColumns = associationOverride.joinColumns();
-
- while (joinColumns.hasNext()) {
- JavaJoinColumn joinColumn = joinColumns.next();
- if (resourceJoinColumns.hasNext()) {
- joinColumn.update(resourceJoinColumns.next());
- }
- else {
- removeSpecifiedJoinColumn(joinColumn);
- }
- }
-
- while (resourceJoinColumns.hasNext()) {
- addSpecifiedJoinColumn(specifiedJoinColumnsSize(), createJoinColumn(resourceJoinColumns.next()));
- }
- }
-
-
- protected JavaJoinColumn createJoinColumn(JoinColumnAnnotation joinColumnResource) {
- JavaJoinColumn joinColumn = getJpaFactory().buildJavaJoinColumn(this, createJoinColumnOwner());
- joinColumn.initializeFromResource(joinColumnResource);
- return joinColumn;
- }
-
-
- //******************** validation ********************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- addJoinColumnMessages(messages, astRoot);
- }
-
- protected void addJoinColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
- for (JavaJoinColumn joinColumn : CollectionTools.iterable(joinColumns())) {
- String table = joinColumn.getTable();
- boolean doContinue = connectionProfileIsActive();
-
- if (doContinue && getOwner().getTypeMapping().tableNameIsInvalid(table)) {
- if (isVirtual()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_TABLE,
- new String[] {getName(), table, joinColumn.getName()},
- joinColumn,
- joinColumn.getTableTextRange(astRoot))
- );
- }
- else {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_TABLE,
- new String[] {table, joinColumn.getName()},
- joinColumn,
- joinColumn.getTableTextRange(astRoot))
- );
- }
- doContinue = false;
- }
-
- if (doContinue && ! joinColumn.isResolved()) {
- if (isVirtual()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_NAME,
- new String[] {getName(), joinColumn.getName()},
- joinColumn,
- joinColumn.getNameTextRange(astRoot))
- );
- }
- else {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_NAME,
- new String[] {joinColumn.getName()},
- joinColumn,
- joinColumn.getNameTextRange(astRoot))
- );
- }
- }
-
- if (doContinue && ! joinColumn.isReferencedColumnResolved()) {
- if (isVirtual()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME,
- new String[] {getName(), joinColumn.getReferencedColumnName(), joinColumn.getName()},
- joinColumn,
- joinColumn.getReferencedColumnNameTextRange(astRoot))
- );
- }
- else {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME,
- new String[] {joinColumn.getReferencedColumnName(), joinColumn.getName()},
- joinColumn,
- joinColumn.getReferencedColumnNameTextRange(astRoot))
- );
- }
- }
- }
- }
- public class JoinColumnOwner implements JavaJoinColumn.Owner
- {
-
- public JoinColumnOwner() {
- super();
- }
-
- /**
- * by default, the join column is in the type mapping's primary table
- */
- public String getDefaultTableName() {
- return GenericJavaAssociationOverride.this.owner.getTypeMapping().getTableName();
- }
-
- public String getDefaultColumnName() {
- return null;
- }
-
- public Entity getTargetEntity() {
- RelationshipMapping relationshipMapping = getRelationshipMapping();
- return relationshipMapping == null ? null : relationshipMapping.getResolvedTargetEntity();
- }
-
- public String getAttributeName() {
- return GenericJavaAssociationOverride.this.getName();
- }
-
- public RelationshipMapping getRelationshipMapping() {
- return GenericJavaAssociationOverride.this.getOwner().getRelationshipMapping(GenericJavaAssociationOverride.this.getName());
- }
-
- public boolean tableNameIsInvalid(String tableName) {
- return getTypeMapping().tableNameIsInvalid(tableName);
- }
-
- /**
- * the join column can be on a secondary table
- */
- public boolean tableIsAllowed() {
- return true;
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public TypeMapping getTypeMapping() {
- return GenericJavaAssociationOverride.this.owner.getTypeMapping();
- }
-
- public Table getDbTable(String tableName) {
- return getTypeMapping().getDbTable(tableName);
- }
-
- public Table getDbReferencedColumnTable() {
- Entity targetEntity = getTargetEntity();
- return (targetEntity == null) ? null : targetEntity.getPrimaryDbTable();
- }
-
- public boolean isVirtual(BaseJoinColumn joinColumn) {
- return GenericJavaAssociationOverride.this.defaultJoinColumns.contains(joinColumn);
- }
-
- public int joinColumnsSize() {
- return GenericJavaAssociationOverride.this.joinColumnsSize();
- }
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAttributeOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAttributeOverride.java
deleted file mode 100644
index ac9fc986da..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAttributeOverride.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.ColumnMapping;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeOverride;
-import org.eclipse.jpt.core.context.java.JavaColumn;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaAttributeOverride extends AbstractJavaOverride
- implements JavaAttributeOverride
-{
-
- protected final JavaColumn column;
-
-
- public GenericJavaAttributeOverride(JavaJpaContextNode parent, AttributeOverride.Owner owner) {
- super(parent, owner);
- this.column = getJpaFactory().buildJavaColumn(this, this);
- }
-
- @Override
- public JavaAttributeOverride setVirtual(boolean virtual) {
- return (JavaAttributeOverride) super.setVirtual(virtual);
- }
-
- @Override
- protected AttributeOverrideAnnotation getOverrideResource() {
- return (AttributeOverrideAnnotation) super.getOverrideResource();
- }
-
- @Override
- public AttributeOverride.Owner getOwner() {
- return (AttributeOverride.Owner) super.getOwner();
- }
-
- public ColumnAnnotation getColumnResource() {
- return this.getOverrideResource().getNonNullColumn();
- }
-
- public String getDefaultColumnName() {
- ColumnMapping columnMapping = getColumnMapping();
- if (columnMapping == null) {
- return null;
- }
- return columnMapping.getColumn().getName();
- }
-
- public String getDefaultTableName() {
- ColumnMapping columnMapping = getColumnMapping();
- if (columnMapping == null) {
- return null;
- }
- String tableName = columnMapping.getColumn().getSpecifiedTable();
- if (tableName != null) {
- return tableName;
- }
- return getOwner().getTypeMapping().getTableName();
- }
-
- protected ColumnMapping getColumnMapping() {
- return getOwner().getColumnMapping(getName());
- }
-
- //************* IColumn.Owner implementation **************
- public TypeMapping getTypeMapping() {
- return this.getOwner().getTypeMapping();
- }
-
- public Table getDbTable(String tableName) {
- return this.getTypeMapping().getDbTable(tableName);
- }
-
- //************* IAttributeOverride implementation **************
-
- public JavaColumn getColumn() {
- return this.column;
- }
-
- //************* JavaOverride implementation **************
-
- @Override
- protected Iterator<String> candidateNames() {
- return this.getOwner().getTypeMapping().allOverridableAttributeNames();
- }
-
- //************* java resource model -> java context model **************
- public void initializeFromResource(AttributeOverrideAnnotation attributeOverrideResource) {
- super.initializeFromResource(attributeOverrideResource);
- this.column.initializeFromResource(this.getColumnResource());
- }
-
- public void update(AttributeOverrideAnnotation attributeOverrideResource) {
- super.update(attributeOverrideResource);
- this.column.update(this.getColumnResource());
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- result = this.getColumn().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- return null;
- }
-
-
- //******************** validation **********************
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- addColumnMessages(messages, astRoot);
- }
-
- protected void addColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
- String table = getColumn().getTable();
- boolean doContinue = connectionProfileIsActive();
-
- if (doContinue && getTypeMapping().tableNameIsInvalid(table)) {
- if (isVirtual()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_TABLE,
- new String[] {getName(), table, getColumn().getName()},
- getColumn(),
- getColumn().getTableTextRange(astRoot))
- );
- }
- else {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {table, getColumn().getName()},
- getColumn(),
- getColumn().getTableTextRange(astRoot))
- );
- }
- doContinue = false;
- }
-
- if (doContinue && ! getColumn().isResolved()) {
- if (isVirtual()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME,
- new String[] {getName(), getColumn().getName()},
- getColumn(),
- getColumn().getNameTextRange(astRoot))
- );
- }
- else {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {getColumn().getName()},
- getColumn(),
- getColumn().getNameTextRange(astRoot))
- );
- }
- }
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaBasicMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaBasicMapping.java
deleted file mode 100644
index 0c90960e2b..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaBasicMapping.java
+++ /dev/null
@@ -1,344 +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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.ColumnMapping;
-import org.eclipse.jpt.core.context.EnumType;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.Fetchable;
-import org.eclipse.jpt.core.context.Nullable;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.java.JavaColumn;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.EnumeratedAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.LobAnnotation;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaBasicMapping extends AbstractJavaAttributeMapping<BasicAnnotation> implements JavaBasicMapping
-{
- protected FetchType specifiedFetch;
-
- protected Boolean specifiedOptional;
-
- protected EnumType specifiedEnumerated;
-
- protected final JavaColumn column;
-
- protected boolean lob;
-
- protected TemporalType temporal;
-
- public GenericJavaBasicMapping(JavaPersistentAttribute parent) {
- super(parent);
- this.column = createJavaColumn();
- }
-
- protected JavaColumn createJavaColumn() {
- return getJpaFactory().buildJavaColumn(this, this);
- }
-
- @Override
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.initializeFromResource(resourcePersistentAttribute);
- this.column.initializeFromResource(this.getColumnResource());
- this.specifiedEnumerated = this.specifiedEnumerated(this.getEnumeratedResource());
- this.lob = this.lob(resourcePersistentAttribute);
- this.temporal = this.temporal(this.getTemporalResource());
- }
-
- @Override
- protected void initialize(BasicAnnotation basicResource) {
- this.specifiedFetch = this.specifiedFetchType(basicResource);
- this.specifiedOptional = this.specifiedOptional(basicResource);
- }
-
- protected EnumeratedAnnotation getEnumeratedResource() {
- return (EnumeratedAnnotation) getResourcePersistentAttribute().getNonNullAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
- }
-
- protected TemporalAnnotation getTemporalResource() {
- return (TemporalAnnotation) getResourcePersistentAttribute().getNonNullAnnotation(TemporalAnnotation.ANNOTATION_NAME);
- }
-
- public ColumnAnnotation getColumnResource() {
- return (ColumnAnnotation) getResourcePersistentAttribute().getNonNullAnnotation(ColumnAnnotation.ANNOTATION_NAME);
- }
-
- //************** IJavaAttributeMapping implementation ***************
- public String getKey() {
- return MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return BasicAnnotation.ANNOTATION_NAME;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.COLUMN,
- JPA.LOB,
- JPA.TEMPORAL,
- JPA.ENUMERATED);
- }
-
- public String getDefaultColumnName() {
- return getAttributeName();
- }
-
- public String getDefaultTableName() {
- return getTypeMapping().getTableName();
- }
-
- //************** IBasicMapping implementation ***************
-
- public JavaColumn getColumn() {
- return this.column;
- }
-
- public FetchType getFetch() {
- return (this.getSpecifiedFetch() == null) ? this.getDefaultFetch() : this.getSpecifiedFetch();
- }
-
- public FetchType getDefaultFetch() {
- return BasicMapping.DEFAULT_FETCH_TYPE;
- }
-
- public FetchType getSpecifiedFetch() {
- return this.specifiedFetch;
- }
-
- public void setSpecifiedFetch(FetchType newSpecifiedFetch) {
- FetchType oldFetch = this.specifiedFetch;
- this.specifiedFetch = newSpecifiedFetch;
- this.getMappingResource().setFetch(FetchType.toJavaResourceModel(newSpecifiedFetch));
- firePropertyChanged(Fetchable.SPECIFIED_FETCH_PROPERTY, oldFetch, newSpecifiedFetch);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedFetch_(FetchType newSpecifiedFetch) {
- FetchType oldFetch = this.specifiedFetch;
- this.specifiedFetch = newSpecifiedFetch;
- firePropertyChanged(Fetchable.SPECIFIED_FETCH_PROPERTY, oldFetch, newSpecifiedFetch);
- }
-
- public Boolean getOptional() {
- return (this.getSpecifiedOptional() == null) ? this.getDefaultOptional() : this.getSpecifiedOptional();
- }
-
- public Boolean getDefaultOptional() {
- return Nullable.DEFAULT_OPTIONAL;
- }
-
- public Boolean getSpecifiedOptional() {
- return this.specifiedOptional;
- }
-
- public void setSpecifiedOptional(Boolean newSpecifiedOptional) {
- Boolean oldOptional = this.specifiedOptional;
- this.specifiedOptional = newSpecifiedOptional;
- this.getMappingResource().setOptional(newSpecifiedOptional);
- firePropertyChanged(Nullable.SPECIFIED_OPTIONAL_PROPERTY, oldOptional, newSpecifiedOptional);
- }
-
- protected void setSpecifiedOptional_(Boolean newSpecifiedOptional) {
- Boolean oldOptional = this.specifiedOptional;
- this.specifiedOptional = newSpecifiedOptional;
- firePropertyChanged(Nullable.SPECIFIED_OPTIONAL_PROPERTY, oldOptional, newSpecifiedOptional);
- }
-
- public boolean isLob() {
- return this.lob;
- }
-
- public void setLob(boolean newLob) {
- boolean oldLob = this.lob;
- this.lob = newLob;
- if (newLob) {
- if (lobResource(getResourcePersistentAttribute()) == null) {
- getResourcePersistentAttribute().addAnnotation(LobAnnotation.ANNOTATION_NAME);
- }
- }
- else {
- if (lobResource(getResourcePersistentAttribute()) != null) {
- getResourcePersistentAttribute().removeAnnotation(LobAnnotation.ANNOTATION_NAME);
- }
- }
- firePropertyChanged(BasicMapping.LOB_PROPERTY, oldLob, newLob);
- }
-
- public TemporalType getTemporal() {
- return this.temporal;
- }
-
- public void setTemporal(TemporalType newTemporal) {
- TemporalType oldTemporal = this.temporal;
- this.temporal = newTemporal;
- this.getTemporalResource().setValue(TemporalType.toJavaResourceModel(newTemporal));
- firePropertyChanged(ColumnMapping.TEMPORAL_PROPERTY, oldTemporal, newTemporal);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setTemporal_(TemporalType newTemporal) {
- TemporalType oldTemporal = this.temporal;
- this.temporal = newTemporal;
- firePropertyChanged(ColumnMapping.TEMPORAL_PROPERTY, oldTemporal, newTemporal);
- }
-
- public EnumType getEnumerated() {
- return (this.getSpecifiedEnumerated() == null) ? this.getDefaultEnumerated() : this.getSpecifiedEnumerated();
- }
-
- public EnumType getDefaultEnumerated() {
- return BasicMapping.DEFAULT_ENUMERATED;
- }
-
- public EnumType getSpecifiedEnumerated() {
- return this.specifiedEnumerated;
- }
-
- public void setSpecifiedEnumerated(EnumType newSpecifiedEnumerated) {
- EnumType oldEnumerated = this.specifiedEnumerated;
- this.specifiedEnumerated = newSpecifiedEnumerated;
- this.getEnumeratedResource().setValue(EnumType.toJavaResourceModel(newSpecifiedEnumerated));
- firePropertyChanged(BasicMapping.SPECIFIED_ENUMERATED_PROPERTY, oldEnumerated, newSpecifiedEnumerated);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedEnumerated_(EnumType newSpecifiedEnumerated) {
- EnumType oldEnumerated = this.specifiedEnumerated;
- this.specifiedEnumerated = newSpecifiedEnumerated;
- firePropertyChanged(BasicMapping.SPECIFIED_ENUMERATED_PROPERTY, oldEnumerated, newSpecifiedEnumerated);
- }
-
- @Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.update(resourcePersistentAttribute);
- this.column.update(this.getColumnResource());
- this.setSpecifiedEnumerated_(this.specifiedEnumerated(this.getEnumeratedResource()));
- this.setLob(this.lob(resourcePersistentAttribute));
- this.setTemporal_(this.temporal(this.getTemporalResource()));
- }
-
- @Override
- protected void update(BasicAnnotation basicResource) {
- this.setSpecifiedFetch_(this.specifiedFetchType(basicResource));
- this.setSpecifiedOptional_(this.specifiedOptional(basicResource));
- }
-
- protected FetchType specifiedFetchType(BasicAnnotation basic) {
- return FetchType.fromJavaResourceModel(basic.getFetch());
- }
-
- protected Boolean specifiedOptional(BasicAnnotation basic) {
- return basic.getOptional();
- }
-
- protected EnumType specifiedEnumerated(EnumeratedAnnotation enumerated) {
- return EnumType.fromJavaResourceModel(enumerated.getValue());
- }
-
- protected boolean lob(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- return lobResource(resourcePersistentAttribute) != null;
- }
-
- protected LobAnnotation lobResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- return (LobAnnotation) resourcePersistentAttribute.getAnnotation(LobAnnotation.ANNOTATION_NAME);
- }
-
- protected TemporalType temporal(TemporalAnnotation temporal) {
- return TemporalType.fromJavaResourceModel(temporal.getValue());
- }
-
-
- @Override
- public boolean isOverridableAttributeMapping() {
- return true;
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- result = this.getColumn().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- return null;
- }
-
- // ************** Validation *************************************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages ,astRoot);
-
- addColumnMessages(messages, astRoot);
- }
-
- protected void addColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
- JavaColumn column = this.getColumn();
- String table = column.getTable();
- boolean doContinue = entityOwned() && column.connectionProfileIsActive();
-
- if (doContinue && this.getTypeMapping().tableNameIsInvalid(table)) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {table, column.getName()},
- column, column.getTableTextRange(astRoot))
- );
- doContinue = false;
- }
-
- if (doContinue && ! column.isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {column.getName()},
- column, column.getNameTextRange(astRoot))
- );
- }
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaColumn.java
deleted file mode 100644
index 031a7717bc..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaColumn.java
+++ /dev/null
@@ -1,154 +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.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.java.JavaColumn;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-public class GenericJavaColumn extends AbstractJavaBaseColumn<ColumnAnnotation> implements JavaColumn
-{
-
- protected Integer specifiedLength;
-
- protected Integer specifiedPrecision;
-
- protected Integer specifiedScale;
-
- public GenericJavaColumn(JavaJpaContextNode parent, JavaColumn.Owner owner) {
- super(parent, owner);
- }
-
- @Override
- public void initializeFromResource(ColumnAnnotation column) {
- super.initializeFromResource(column);
- this.specifiedLength = this.specifiedLength(column);
- this.specifiedPrecision = this.specifiedPrecision(column);
- this.specifiedScale = this.specifiedScale(column);
- }
-
- @Override
- public JavaColumn.Owner getOwner() {
- return (JavaColumn.Owner) super.getOwner();
- }
-
- @Override
- protected ColumnAnnotation getColumnResource() {
- return this.getOwner().getColumnResource();
- }
-
- public Integer getLength() {
- return (this.getSpecifiedLength() == null) ? getDefaultLength() : this.getSpecifiedLength();
- }
-
- public Integer getDefaultLength() {
- return Column.DEFAULT_LENGTH;
- }
-
- public Integer getSpecifiedLength() {
- return this.specifiedLength;
- }
-
- public void setSpecifiedLength(Integer newSpecifiedLength) {
- Integer oldSpecifiedLength = this.specifiedLength;
- this.specifiedLength = newSpecifiedLength;
- getColumnResource().setLength(newSpecifiedLength);
- firePropertyChanged(SPECIFIED_LENGTH_PROPERTY, oldSpecifiedLength, newSpecifiedLength);
- }
-
- protected void setSpecifiedLength_(Integer newSpecifiedLength) {
- Integer oldSpecifiedLength = this.specifiedLength;
- this.specifiedLength = newSpecifiedLength;
- firePropertyChanged(SPECIFIED_LENGTH_PROPERTY, oldSpecifiedLength, newSpecifiedLength);
- }
-
- public Integer getPrecision() {
- return (this.getSpecifiedPrecision() == null) ? getDefaultPrecision() : this.getSpecifiedPrecision();
- }
-
- public Integer getDefaultPrecision() {
- return Column.DEFAULT_PRECISION;
- }
-
- public Integer getSpecifiedPrecision() {
- return this.specifiedPrecision;
- }
-
- public void setSpecifiedPrecision(Integer newSpecifiedPrecision) {
- Integer oldSpecifiedPrecision = this.specifiedPrecision;
- this.specifiedPrecision = newSpecifiedPrecision;
- getColumnResource().setPrecision(newSpecifiedPrecision);
- firePropertyChanged(SPECIFIED_PRECISION_PROPERTY, oldSpecifiedPrecision, newSpecifiedPrecision);
- }
-
- protected void setSpecifiedPrecision_(Integer newSpecifiedPrecision) {
- Integer oldSpecifiedPrecision = this.specifiedPrecision;
- this.specifiedPrecision = newSpecifiedPrecision;
- firePropertyChanged(SPECIFIED_PRECISION_PROPERTY, oldSpecifiedPrecision, newSpecifiedPrecision);
- }
-
- public Integer getScale() {
- return (this.getSpecifiedScale() == null) ? getDefaultScale() : this.getSpecifiedScale();
- }
-
- public Integer getDefaultScale() {
- return Column.DEFAULT_SCALE;
- }
-
- public Integer getSpecifiedScale() {
- return this.specifiedScale;
- }
-
- public void setSpecifiedScale(Integer newSpecifiedScale) {
- Integer oldSpecifiedScale = this.specifiedScale;
- this.specifiedScale = newSpecifiedScale;
- getColumnResource().setScale(newSpecifiedScale);
- firePropertyChanged(SPECIFIED_SCALE_PROPERTY, oldSpecifiedScale, newSpecifiedScale);
- }
-
- protected void setSpecifiedScale_(Integer newSpecifiedScale) {
- Integer oldSpecifiedScale = this.specifiedScale;
- this.specifiedScale = newSpecifiedScale;
- firePropertyChanged(SPECIFIED_SCALE_PROPERTY, oldSpecifiedScale, newSpecifiedScale);
- }
-
- @Override
- public boolean tableIsAllowed() {
- return true;
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- TextRange textRange = getColumnResource().getTextRange(astRoot);
- return (textRange != null) ? textRange : this.getOwner().getValidationTextRange(astRoot);
- }
-
- @Override
- public void update(ColumnAnnotation column) {
- super.update(column);
- this.setSpecifiedLength_(this.specifiedLength(column));
- this.setSpecifiedPrecision_(this.specifiedPrecision(column));
- this.setSpecifiedScale_(this.specifiedScale(column));
- }
-
- protected Integer specifiedLength(ColumnAnnotation column) {
- return column.getLength();
- }
-
- protected Integer specifiedPrecision(ColumnAnnotation column) {
- return column.getPrecision();
- }
-
- protected Integer specifiedScale(ColumnAnnotation column) {
- return column.getScale();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaDiscriminatorColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaDiscriminatorColumn.java
deleted file mode 100644
index e983bd18f5..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaDiscriminatorColumn.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.DiscriminatorColumn;
-import org.eclipse.jpt.core.context.DiscriminatorType;
-import org.eclipse.jpt.core.context.java.JavaDiscriminatorColumn;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaNamedColumn;
-import org.eclipse.jpt.core.resource.java.DiscriminatorColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-
-public class GenericJavaDiscriminatorColumn extends AbstractJavaNamedColumn<DiscriminatorColumnAnnotation>
- implements JavaDiscriminatorColumn
-{
-
- protected DiscriminatorType specifiedDiscriminatorType;
-
- protected Integer specifiedLength;
-
- protected JavaResourcePersistentMember persistenceResource;
-
- public GenericJavaDiscriminatorColumn(JavaEntity parent, JavaNamedColumn.Owner owner) {
- super(parent, owner);
- }
-
- public void initializeFromResource(JavaResourcePersistentMember persistentResource) {
- this.persistenceResource = persistentResource;
- this.initializeFromResource(this.getColumnResource());
- }
-
- @Override
- public void initializeFromResource(DiscriminatorColumnAnnotation column) {
- super.initializeFromResource(column);
- this.specifiedDiscriminatorType = this.discriminatorType(column);
- this.specifiedLength = this.length(column);
- }
-
- protected JavaEntity getJavaEntity() {
- return (JavaEntity) super.getParent();
- }
-
- @Override
- protected DiscriminatorColumnAnnotation getColumnResource() {
- return (DiscriminatorColumnAnnotation) this.persistenceResource.getNonNullAnnotation(DiscriminatorColumnAnnotation.ANNOTATION_NAME);
- }
-
- public DiscriminatorType getDiscriminatorType() {
- return (this.getSpecifiedDiscriminatorType() == null) ? this.getDefaultDiscriminatorType() : this.getSpecifiedDiscriminatorType();
- }
-
- public DiscriminatorType getDefaultDiscriminatorType() {
- return DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE;
- }
-
- public DiscriminatorType getSpecifiedDiscriminatorType() {
- return this.specifiedDiscriminatorType;
- }
-
- public void setSpecifiedDiscriminatorType(DiscriminatorType newSpecifiedDiscriminatorType) {
- DiscriminatorType oldDiscriminatorType = this.specifiedDiscriminatorType;
- this.specifiedDiscriminatorType = newSpecifiedDiscriminatorType;
- getColumnResource().setDiscriminatorType(DiscriminatorType.toJavaResourceModel(newSpecifiedDiscriminatorType));
- firePropertyChanged(DiscriminatorColumn.SPECIFIED_DISCRIMINATOR_TYPE_PROPERTY, oldDiscriminatorType, newSpecifiedDiscriminatorType);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedDiscriminatorType_(DiscriminatorType newSpecifiedDiscriminatorType) {
- DiscriminatorType oldDiscriminatorType = this.specifiedDiscriminatorType;
- this.specifiedDiscriminatorType = newSpecifiedDiscriminatorType;
- firePropertyChanged(DiscriminatorColumn.SPECIFIED_DISCRIMINATOR_TYPE_PROPERTY, oldDiscriminatorType, newSpecifiedDiscriminatorType);
- }
-
- public Integer getLength() {
- return (this.getSpecifiedLength() == null) ? this.getDefaultLength() : this.getSpecifiedLength();
- }
-
- public Integer getDefaultLength() {
- return DiscriminatorColumn.DEFAULT_LENGTH;
- }
-
- public Integer getSpecifiedLength() {
- return this.specifiedLength;
- }
-
- public void setSpecifiedLength(Integer newSpecifiedLength) {
- Integer oldSpecifiedLength = this.specifiedLength;
- this.specifiedLength = newSpecifiedLength;
- getColumnResource().setLength(newSpecifiedLength);
- firePropertyChanged(DiscriminatorColumn.SPECIFIED_LENGTH_PROPERTY, oldSpecifiedLength, newSpecifiedLength);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedLength_(Integer newSpecifiedLength) {
- Integer oldSpecifiedLength = this.specifiedLength;
- this.specifiedLength = newSpecifiedLength;
- firePropertyChanged(DiscriminatorColumn.SPECIFIED_LENGTH_PROPERTY, oldSpecifiedLength, newSpecifiedLength);
- }
-
- @Override
- protected String getTableName() {
- return getJavaEntity().getTableName();
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- TextRange textRange = getColumnResource().getTextRange(astRoot);
- return (textRange != null) ? textRange : this.getOwner().getValidationTextRange(astRoot);
- }
-
-
- // ********** java annotations -> persistence model **********
-
- public void update(JavaResourcePersistentMember persistentResource) {
- this.persistenceResource = persistentResource;
- this.update(this.getColumnResource());
- }
-
- @Override
- public void update(DiscriminatorColumnAnnotation discriminatorColumn) {
- super.update(discriminatorColumn);
- this.setSpecifiedDiscriminatorType_(this.discriminatorType(discriminatorColumn));
- this.setSpecifiedLength_(this.length(discriminatorColumn));
- }
-
- protected DiscriminatorType discriminatorType(DiscriminatorColumnAnnotation discriminatorColumn) {
- return DiscriminatorType.fromJavaResourceModel(discriminatorColumn.getDiscriminatorType());
- }
-
- protected Integer length(DiscriminatorColumnAnnotation discriminatorColumn) {
- return discriminatorColumn.getLength();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddable.java
deleted file mode 100644
index 21d2bcab97..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddable.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaEmbeddable;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.resource.java.EmbeddableAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-
-public class GenericJavaEmbeddable extends AbstractJavaTypeMapping implements JavaEmbeddable
-{
- public GenericJavaEmbeddable(JavaPersistentType parent) {
- super(parent);
- }
-
- public String getKey() {
- return MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return EmbeddableAnnotation.ANNOTATION_NAME;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return EmptyIterator.instance();
- }
-
- public boolean isMapped() {
- return true;
- }
-
- @Override
- public boolean attributeMappingKeyAllowed(String attributeMappingKey) {
- return attributeMappingKey == MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY || attributeMappingKey == MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY;
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddedIdMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddedIdMapping.java
deleted file mode 100644
index 4ae4b5648f..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddedIdMapping.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-
-
-public class GenericJavaEmbeddedIdMapping extends AbstractJavaBaseEmbeddedMapping<EmbeddedIdAnnotation>
- implements JavaEmbeddedIdMapping
-{
-
- public GenericJavaEmbeddedIdMapping(JavaPersistentAttribute parent) {
- super(parent);
- }
-
- //****************** IJavaAttributeMapping implemenation *******************
-
- public String getKey() {
- return MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return EmbeddedIdAnnotation.ANNOTATION_NAME;
- }
-
- @Override
- public boolean isIdMapping() {
- return true;
- }
-} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddedMapping.java
deleted file mode 100644
index b0fe9c987b..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEmbeddedMapping.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-
-
-public class GenericJavaEmbeddedMapping extends AbstractJavaBaseEmbeddedMapping<EmbeddedAnnotation> implements JavaEmbeddedMapping
-{
- public GenericJavaEmbeddedMapping(JavaPersistentAttribute parent) {
- super(parent);
- }
-
- //****************** IJavaAttributeMapping implemenation *******************
-
- public String getKey() {
- return MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return EmbeddedAnnotation.ANNOTATION_NAME;
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEntity.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEntity.java
deleted file mode 100644
index 9faaa496ef..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEntity.java
+++ /dev/null
@@ -1,1963 +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.java;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AssociationOverride;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BaseJoinColumn;
-import org.eclipse.jpt.core.context.BaseOverride;
-import org.eclipse.jpt.core.context.ColumnMapping;
-import org.eclipse.jpt.core.context.DiscriminatorColumn;
-import org.eclipse.jpt.core.context.DiscriminatorType;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.Generator;
-import org.eclipse.jpt.core.context.IdClass;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.NamedNativeQuery;
-import org.eclipse.jpt.core.context.NamedQuery;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.context.PrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.Query;
-import org.eclipse.jpt.core.context.QueryHolder;
-import org.eclipse.jpt.core.context.RelationshipMapping;
-import org.eclipse.jpt.core.context.SecondaryTable;
-import org.eclipse.jpt.core.context.Table;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.java.JavaAssociationOverride;
-import org.eclipse.jpt.core.context.java.JavaAttributeOverride;
-import org.eclipse.jpt.core.context.java.JavaBaseJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaDiscriminatorColumn;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaGenerator;
-import org.eclipse.jpt.core.context.java.JavaNamedColumn;
-import org.eclipse.jpt.core.context.java.JavaNamedNativeQuery;
-import org.eclipse.jpt.core.context.java.JavaNamedQuery;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaQuery;
-import org.eclipse.jpt.core.context.java.JavaSecondaryTable;
-import org.eclipse.jpt.core.context.java.JavaSequenceGenerator;
-import org.eclipse.jpt.core.context.java.JavaTable;
-import org.eclipse.jpt.core.context.java.JavaTableGenerator;
-import org.eclipse.jpt.core.internal.resource.java.NullAssociationOverride;
-import org.eclipse.jpt.core.internal.resource.java.NullPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AssociationOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.DiscriminatorValueAnnotation;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-import org.eclipse.jpt.core.resource.java.IdClassAnnotation;
-import org.eclipse.jpt.core.resource.java.InheritanceAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueriesAnnotation;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.NamedQueriesAnnotation;
-import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumns;
-import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTablesAnnotation;
-import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementListIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEntity
-{
- protected EntityAnnotation entityResource;
-
- protected String specifiedName;
-
- protected String defaultName;
-
- protected final JavaTable table;
-
- protected final List<JavaSecondaryTable> specifiedSecondaryTables;
-
- protected final List<JavaPrimaryKeyJoinColumn> specifiedPrimaryKeyJoinColumns;
-
- protected JavaPrimaryKeyJoinColumn defaultPrimaryKeyJoinColumn;
-
- protected InheritanceType specifiedInheritanceStrategy;
-
- protected InheritanceType defaultInheritanceStrategy;
-
- protected String defaultDiscriminatorValue;
-
- protected boolean discriminatorValueAllowed;
-
- protected String specifiedDiscriminatorValue;
-
- protected final JavaDiscriminatorColumn discriminatorColumn;
-
- protected JavaSequenceGenerator sequenceGenerator;
-
- protected JavaTableGenerator tableGenerator;
-
- protected final List<JavaAttributeOverride> specifiedAttributeOverrides;
-
- protected final List<JavaAttributeOverride> virtualAttributeOverrides;
-
- protected final List<JavaAssociationOverride> specifiedAssociationOverrides;
-
- protected final List<JavaAssociationOverride> virtualAssociationOverrides;
-
- protected final List<JavaNamedQuery> namedQueries;
-
- protected final List<JavaNamedNativeQuery> namedNativeQueries;
-
- protected String idClass;
-
-
- public GenericJavaEntity(JavaPersistentType parent) {
- super(parent);
- this.table = getJpaFactory().buildJavaTable(this);
- this.discriminatorColumn = buildJavaDiscriminatorColumn();
- this.specifiedSecondaryTables = new ArrayList<JavaSecondaryTable>();
- this.specifiedPrimaryKeyJoinColumns = new ArrayList<JavaPrimaryKeyJoinColumn>();
- this.specifiedAttributeOverrides = new ArrayList<JavaAttributeOverride>();
- this.virtualAttributeOverrides = new ArrayList<JavaAttributeOverride>();
- this.namedQueries = new ArrayList<JavaNamedQuery>();
- this.namedNativeQueries = new ArrayList<JavaNamedNativeQuery>();
- this.specifiedAssociationOverrides = new ArrayList<JavaAssociationOverride>();
- this.virtualAssociationOverrides = new ArrayList<JavaAssociationOverride>();
- }
-
- protected JavaBaseJoinColumn.Owner createPrimaryKeyJoinColumnOwner() {
- return new PrimaryKeyJoinColumnOwner();
- }
-
- protected JavaDiscriminatorColumn buildJavaDiscriminatorColumn() {
- return getJpaFactory().buildJavaDiscriminatorColumn(this, buildDiscriminatorColumnOwner());
- }
-
- protected JavaNamedColumn.Owner buildDiscriminatorColumnOwner() {
- return new JavaNamedColumn.Owner(){
- public org.eclipse.jpt.db.Table getDbTable(String tableName) {
- return GenericJavaEntity.this.getDbTable(tableName);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return GenericJavaEntity.this.getValidationTextRange(astRoot);
- }
-
- public TypeMapping getTypeMapping() {
- return GenericJavaEntity.this;
- }
-
- public String getDefaultColumnName() {
- return DiscriminatorColumn.DEFAULT_NAME;
- }
- };
- }
-
- @Override
- public void initializeFromResource(JavaResourcePersistentType resourcePersistentType) {
- super.initializeFromResource(resourcePersistentType);
- this.entityResource = (EntityAnnotation) resourcePersistentType.getMappingAnnotation(EntityAnnotation.ANNOTATION_NAME);
-
- this.specifiedName = this.specifiedName(this.entityResource);
- this.defaultName = this.defaultName(resourcePersistentType);
- this.defaultInheritanceStrategy = this.defaultInheritanceStrategy();
- this.specifiedInheritanceStrategy = this.specifiedInheritanceStrategy(getInheritanceResource());
- this.specifiedDiscriminatorValue = this.getDiscriminatorValueResource().getValue();
- this.defaultDiscriminatorValue = this.javaDefaultDiscriminatorValue();
- this.discriminatorValueAllowed = this.discriminatorValueIsAllowed(resourcePersistentType);
- this.discriminatorColumn.initializeFromResource(resourcePersistentType);
- this.table.initializeFromResource(resourcePersistentType);
- this.initializeSecondaryTables(resourcePersistentType);
- this.initializeTableGenerator(resourcePersistentType);
- this.initializeSequenceGenerator(resourcePersistentType);
- this.initializePrimaryKeyJoinColumns(resourcePersistentType);
- this.initializeDefaultPrimaryKeyJoinColumn(resourcePersistentType);
- this.initializeSpecifiedAttributeOverrides(resourcePersistentType);
- this.initializeVirtualAttributeOverrides(resourcePersistentType);
- this.initializeSpecifiedAssociationOverrides(resourcePersistentType);
- this.initializeDefaultAssociationOverrides(resourcePersistentType);
- this.initializeNamedQueries(resourcePersistentType);
- this.initializeNamedNativeQueries(resourcePersistentType);
- this.initializeIdClass(resourcePersistentType);
- this.updatePersistenceUnitGeneratorsAndQueries();
- }
-
- protected void initializeSecondaryTables(JavaResourcePersistentType resourcePersistentType) {
- ListIterator<JavaResourceNode> annotations = resourcePersistentType.annotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- this.specifiedSecondaryTables.add(buildSecondaryTable((SecondaryTableAnnotation) annotations.next()));
- }
- }
-
- protected void initializeTableGenerator(JavaResourcePersistentType resourcePersistentType) {
- TableGeneratorAnnotation tableGeneratorResource = tableGenerator(resourcePersistentType);
- if (tableGeneratorResource != null) {
- this.tableGenerator = buildTableGenerator(tableGeneratorResource);
- }
- }
-
- protected void initializeSequenceGenerator(JavaResourcePersistentType resourcePersistentType) {
- SequenceGeneratorAnnotation sequenceGeneratorResource = sequenceGenerator(resourcePersistentType);
- if (sequenceGeneratorResource != null) {
- this.sequenceGenerator = buildSequenceGenerator(sequenceGeneratorResource);
- }
- }
-
- protected void initializePrimaryKeyJoinColumns(JavaResourcePersistentType resourcePersistentType) {
- ListIterator<JavaResourceNode> annotations = resourcePersistentType.annotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumns.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- this.specifiedPrimaryKeyJoinColumns.add(buildPrimaryKeyJoinColumn((PrimaryKeyJoinColumnAnnotation) annotations.next()));
- }
- }
-
- protected boolean shouldBuildDefaultPrimaryKeyJoinColumn() {
- return !containsSpecifiedPrimaryKeyJoinColumns();
- }
-
- protected void initializeDefaultPrimaryKeyJoinColumn(JavaResourcePersistentType persistentTypeResource) {
- if (!shouldBuildDefaultPrimaryKeyJoinColumn()) {
- return;
- }
- this.defaultPrimaryKeyJoinColumn = buildPrimaryKeyJoinColumn(new NullPrimaryKeyJoinColumn(persistentTypeResource));
- }
-
- protected void initializeSpecifiedAttributeOverrides(JavaResourcePersistentType persistentTypeResource) {
- ListIterator<JavaResourceNode> annotations = persistentTypeResource.annotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- this.specifiedAttributeOverrides.add(buildAttributeOverride((AttributeOverrideAnnotation) annotations.next()));
- }
- }
-
- protected void initializeVirtualAttributeOverrides(JavaResourcePersistentType persistentTypeResource) {
- for (PersistentAttribute persistentAttribute : CollectionTools.iterable(allOverridableAttributes())) {
- JavaAttributeOverride attributeOverride = getAttributeOverrideNamed(persistentAttribute.getName());
- if (attributeOverride == null) {
- this.virtualAttributeOverrides.add(buildVirtualAttributeOverride(persistentTypeResource, persistentAttribute));
- }
- }
- }
-
- protected void initializeSpecifiedAssociationOverrides(JavaResourcePersistentType resourcePersistentType) {
- ListIterator<JavaResourceNode> annotations = resourcePersistentType.annotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- this.specifiedAssociationOverrides.add(buildAssociationOverride((AssociationOverrideAnnotation) annotations.next()));
- }
- }
-
- protected void initializeDefaultAssociationOverrides(JavaResourcePersistentType resourcePersistentType) {
- for (Iterator<String> i = allOverridableAssociationNames(); i.hasNext(); ) {
- String associationName = i.next();
- JavaAssociationOverride associationOverride = getAssociationOverrideNamed(associationName);
- if (associationOverride == null) {
- this.virtualAssociationOverrides.add(buildAssociationOverride(new NullAssociationOverride(resourcePersistentType, associationName)));
- }
- }
- }
-
- protected void initializeNamedQueries(JavaResourcePersistentType resourcePersistentType) {
- ListIterator<JavaResourceNode> annotations = resourcePersistentType.annotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- this.namedQueries.add(buildNamedQuery((NamedQueryAnnotation) annotations.next()));
- }
- }
-
- protected void initializeNamedNativeQueries(JavaResourcePersistentType resourcePersistentType) {
- ListIterator<JavaResourceNode> annotations = resourcePersistentType.annotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- this.namedNativeQueries.add(buildNamedNativeQuery((NamedNativeQueryAnnotation) annotations.next()));
- }
- }
-
- //query for the inheritance resource every time on setters.
- //call one setter and the inheritanceResource could change.
- //You could call more than one setter before this object has received any notification
- //from the java resource model
- protected InheritanceAnnotation getInheritanceResource() {
- return (InheritanceAnnotation) this.javaResourcePersistentType.getNonNullAnnotation(InheritanceAnnotation.ANNOTATION_NAME);
- }
-
- protected DiscriminatorValueAnnotation getDiscriminatorValueResource() {
- return (DiscriminatorValueAnnotation) this.javaResourcePersistentType.getNonNullAnnotation(DiscriminatorValueAnnotation.ANNOTATION_NAME);
- }
-
- protected void initializeIdClass(JavaResourcePersistentType typeResource) {
- IdClassAnnotation idClassResource = (IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- if (idClassResource != null) {
- this.idClass = idClassResource.getValue();
- }
- }
-
- //****************** ITypeMapping implemenation *******************
-
- public String getKey() {
- return MappingKeys.ENTITY_TYPE_MAPPING_KEY;
- }
-
- public boolean isMapped() {
- return true;
- }
-
- @Override
- public String getTableName() {
- return getTable().getName();
- }
-
- @Override
- public org.eclipse.jpt.db.Table getPrimaryDbTable() {
- return getTable().getDbTable();
- }
-
- @Override
- public org.eclipse.jpt.db.Table getDbTable(String tableName) {
- for (Iterator<Table> stream = this.associatedTablesIncludingInherited(); stream.hasNext();) {
- org.eclipse.jpt.db.Table dbTable = stream.next().getDbTable();
- if (dbTable != null && dbTable.matchesShortJavaClassName(tableName)) {
- return dbTable;
- }
- }
- return null;
- }
-
- @Override
- public Schema getDbSchema() {
- return getTable().getDbSchema();
- }
-
-
- //****************** IJavaTypeMapping implemenation *******************
-
- public String getAnnotationName() {
- return EntityAnnotation.ANNOTATION_NAME;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.TABLE,
- JPA.SECONDARY_TABLE,
- JPA.SECONDARY_TABLES,
- JPA.PRIMARY_KEY_JOIN_COLUMN,
- JPA.PRIMARY_KEY_JOIN_COLUMNS,
- JPA.ID_CLASS,
- JPA.INHERITANCE,
- JPA.DISCRIMINATOR_VALUE,
- JPA.DISCRIMINATOR_COLUMN,
- JPA.SEQUENCE_GENERATOR,
- JPA.TABLE_GENERATOR,
- JPA.NAMED_QUERY,
- JPA.NAMED_QUERIES,
- JPA.NAMED_NATIVE_QUERY,
- JPA.NAMED_NATIVE_QUERIES,
- JPA.SQL_RESULT_SET_MAPPING,
- JPA.EXCLUDE_DEFAULT_LISTENERS,
- JPA.EXCLUDE_SUPERCLASS_LISTENERS,
- JPA.ENTITY_LISTENERS,
- JPA.PRE_PERSIST,
- JPA.POST_PERSIST,
- JPA.PRE_REMOVE,
- JPA.POST_REMOVE,
- JPA.PRE_UPDATE,
- JPA.POST_UPDATE,
- JPA.POST_LOAD,
- JPA.ATTRIBUTE_OVERRIDE,
- JPA.ATTRIBUTE_OVERRIDES,
- JPA.ASSOCIATION_OVERRIDE,
- JPA.ASSOCIATION_OVERRIDES);
- }
-
- //****************** IEntity implemenation *******************
-
- public String getName() {
- return (this.getSpecifiedName() == null) ? this.getDefaultName() : this.getSpecifiedName();
- }
-
- public String getSpecifiedName() {
- return this.specifiedName;
- }
-
- public void setSpecifiedName(String newSpecifiedName) {
- String oldSpecifiedName = this.specifiedName;
- this.specifiedName = newSpecifiedName;
- this.entityResource.setName(newSpecifiedName);
- firePropertyChanged(Entity.SPECIFIED_NAME_PROPERTY, oldSpecifiedName, newSpecifiedName);
- }
-
- protected void setSpecifiedName_(String newSpecifiedName) {
- String oldSpecifiedName = this.specifiedName;
- this.specifiedName = newSpecifiedName;
- firePropertyChanged(Entity.SPECIFIED_NAME_PROPERTY, oldSpecifiedName, newSpecifiedName);
- }
-
- public String getDefaultName() {
- return this.defaultName;
- }
-
- protected/*private-protected*/ void setDefaultName(String newDefaultName) {
- String oldDefaultName = this.defaultName;
- this.defaultName = newDefaultName;
- firePropertyChanged(Entity.DEFAULT_NAME_PROPERTY, oldDefaultName, newDefaultName);
- }
-
- public JavaTable getTable() {
- return this.table;
- }
-
- public ListIterator<JavaSecondaryTable> specifiedSecondaryTables() {
- return new CloneListIterator<JavaSecondaryTable>(this.specifiedSecondaryTables);
- }
-
- public int specifiedSecondaryTablesSize() {
- return this.specifiedSecondaryTables.size();
- }
-
- public JavaSecondaryTable addSpecifiedSecondaryTable(int index) {
- JavaSecondaryTable secondaryTable = getJpaFactory().buildJavaSecondaryTable(this);
- this.specifiedSecondaryTables.add(index, secondaryTable);
- SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) this.javaResourcePersistentType.addAnnotation(index, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
- secondaryTable.initializeFromResource(secondaryTableResource);
- fireItemAdded(Entity.SPECIFIED_SECONDARY_TABLES_LIST, index, secondaryTable);
- return secondaryTable;
- }
-
- protected void addSpecifiedSecondaryTable(int index, JavaSecondaryTable secondaryTable) {
- addItemToList(index, secondaryTable, this.specifiedSecondaryTables, Entity.SPECIFIED_SECONDARY_TABLES_LIST);
- }
-
- public void removeSpecifiedSecondaryTable(SecondaryTable secondaryTable) {
- this.removeSpecifiedSecondaryTable(this.specifiedSecondaryTables.indexOf(secondaryTable));
- }
-
- public void removeSpecifiedSecondaryTable(int index) {
- JavaSecondaryTable removedSecondaryTable = this.specifiedSecondaryTables.remove(index);
- this.javaResourcePersistentType.removeAnnotation(index, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
- fireItemRemoved(Entity.SPECIFIED_SECONDARY_TABLES_LIST, index, removedSecondaryTable);
- }
-
- protected void removeSpecifiedSecondaryTable_(JavaSecondaryTable secondaryTable) {
- removeItemFromList(secondaryTable, this.specifiedSecondaryTables, Entity.SPECIFIED_SECONDARY_TABLES_LIST);
- }
-
- public void moveSpecifiedSecondaryTable(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.specifiedSecondaryTables, targetIndex, sourceIndex);
- this.javaResourcePersistentType.move(targetIndex, sourceIndex, SecondaryTablesAnnotation.ANNOTATION_NAME);
- fireItemMoved(Entity.SPECIFIED_SECONDARY_TABLES_LIST, targetIndex, sourceIndex);
- }
-
- public ListIterator<JavaSecondaryTable> secondaryTables() {
- return specifiedSecondaryTables();
- }
-
- public int secondaryTablesSize() {
- return specifiedSecondaryTablesSize();
- }
-
- public InheritanceType getInheritanceStrategy() {
- return (this.getSpecifiedInheritanceStrategy() == null) ? this.getDefaultInheritanceStrategy() : this.getSpecifiedInheritanceStrategy();
- }
-
- public InheritanceType getDefaultInheritanceStrategy() {
- return this.defaultInheritanceStrategy;
- }
-
- protected void setDefaultInheritanceStrategy(InheritanceType newInheritanceType) {
- InheritanceType oldInheritanceType = this.defaultInheritanceStrategy;
- this.defaultInheritanceStrategy = newInheritanceType;
- firePropertyChanged(DEFAULT_INHERITANCE_STRATEGY_PROPERTY, oldInheritanceType, newInheritanceType);
- }
-
- public InheritanceType getSpecifiedInheritanceStrategy() {
- return this.specifiedInheritanceStrategy;
- }
-
- public void setSpecifiedInheritanceStrategy(InheritanceType newInheritanceType) {
- InheritanceType oldInheritanceType = this.specifiedInheritanceStrategy;
- this.specifiedInheritanceStrategy = newInheritanceType;
- getInheritanceResource().setStrategy(InheritanceType.toJavaResourceModel(newInheritanceType));
- firePropertyChanged(SPECIFIED_INHERITANCE_STRATEGY_PROPERTY, oldInheritanceType, newInheritanceType);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedInheritanceStrategy_(InheritanceType newInheritanceType) {
- InheritanceType oldInheritanceType = this.specifiedInheritanceStrategy;
- this.specifiedInheritanceStrategy = newInheritanceType;
- firePropertyChanged(SPECIFIED_INHERITANCE_STRATEGY_PROPERTY, oldInheritanceType, newInheritanceType);
- }
-
- public JavaDiscriminatorColumn getDiscriminatorColumn() {
- return this.discriminatorColumn;
- }
-
- public String getDefaultDiscriminatorValue() {
- return this.defaultDiscriminatorValue;
- }
-
- protected void setDefaultDiscriminatorValue(String newDefaultDiscriminatorValue) {
- String oldDefaultDiscriminatorValue = this.defaultDiscriminatorValue;
- this.defaultDiscriminatorValue = newDefaultDiscriminatorValue;
- firePropertyChanged(DEFAULT_DISCRIMINATOR_VALUE_PROPERTY, oldDefaultDiscriminatorValue, newDefaultDiscriminatorValue);
- }
-
- public String getSpecifiedDiscriminatorValue() {
- return this.specifiedDiscriminatorValue;
- }
-
- public void setSpecifiedDiscriminatorValue(String newSpecifiedDiscriminatorValue) {
- String oldSpecifiedDiscriminatorValue = this.specifiedDiscriminatorValue;
- this.specifiedDiscriminatorValue = newSpecifiedDiscriminatorValue;
- getDiscriminatorValueResource().setValue(newSpecifiedDiscriminatorValue);
- firePropertyChanged(SPECIFIED_DISCRIMINATOR_VALUE_PROPERTY, oldSpecifiedDiscriminatorValue, newSpecifiedDiscriminatorValue);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setSpecifiedDiscriminatorValue_(String newSpecifiedDiscriminatorValue) {
- String oldSpecifiedDiscriminatorValue = this.specifiedDiscriminatorValue;
- this.specifiedDiscriminatorValue = newSpecifiedDiscriminatorValue;
- firePropertyChanged(SPECIFIED_DISCRIMINATOR_VALUE_PROPERTY, oldSpecifiedDiscriminatorValue, newSpecifiedDiscriminatorValue);
- }
-
- public String getDiscriminatorValue() {
- return (this.getSpecifiedDiscriminatorValue() == null) ? getDefaultDiscriminatorValue() : this.getSpecifiedDiscriminatorValue();
- }
-
- public boolean isDiscriminatorValueAllowed() {
- return this.discriminatorValueAllowed;
- }
-
- protected void setDiscriminatorValueAllowed(boolean newDiscriminatorValueAllowed) {
- boolean oldDiscriminatorValueAllowed = this.discriminatorValueAllowed;
- this.discriminatorValueAllowed = newDiscriminatorValueAllowed;
- firePropertyChanged(Entity.DISCRIMINATOR_VALUE_ALLOWED_PROPERTY, oldDiscriminatorValueAllowed, newDiscriminatorValueAllowed);
- }
-
- public JavaTableGenerator addTableGenerator() {
- if (getTableGenerator() != null) {
- throw new IllegalStateException("tableGenerator already exists");
- }
- this.tableGenerator = getJpaFactory().buildJavaTableGenerator(this);
- TableGeneratorAnnotation tableGeneratorResource = (TableGeneratorAnnotation) this.javaResourcePersistentType.addAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME);
- this.tableGenerator.initializeFromResource(tableGeneratorResource);
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, null, this.tableGenerator);
- return this.tableGenerator;
- }
-
- public void removeTableGenerator() {
- if (getTableGenerator() == null) {
- throw new IllegalStateException("tableGenerator does not exist, cannot be removed");
- }
- JavaTableGenerator oldTableGenerator = this.tableGenerator;
- this.tableGenerator = null;
- this.javaResourcePersistentType.removeAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME);
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, oldTableGenerator, null);
- }
-
- public JavaTableGenerator getTableGenerator() {
- return this.tableGenerator;
- }
-
- protected void setTableGenerator(JavaTableGenerator newTableGenerator) {
- JavaTableGenerator oldTableGenerator = this.tableGenerator;
- this.tableGenerator = newTableGenerator;
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, oldTableGenerator, newTableGenerator);
- }
-
- public JavaSequenceGenerator addSequenceGenerator() {
- if (getSequenceGenerator() != null) {
- throw new IllegalStateException("sequenceGenerator already exists");
- }
- this.sequenceGenerator = getJpaFactory().buildJavaSequenceGenerator(this);
- SequenceGeneratorAnnotation sequenceGeneratorResource = (SequenceGeneratorAnnotation) this.javaResourcePersistentType.addAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME);
- this.sequenceGenerator.initializeFromResource(sequenceGeneratorResource);
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, null, this.sequenceGenerator);
- return this.sequenceGenerator;
- }
-
- public void removeSequenceGenerator() {
- if (getSequenceGenerator() == null) {
- throw new IllegalStateException("sequenceGenerator does not exist, cannot be removed");
- }
- JavaSequenceGenerator oldSequenceGenerator = this.sequenceGenerator;
- this.sequenceGenerator = null;
- this.javaResourcePersistentType.removeAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME);
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, oldSequenceGenerator,null);
- }
-
- public JavaSequenceGenerator getSequenceGenerator() {
- return this.sequenceGenerator;
- }
-
- protected void setSequenceGenerator(JavaSequenceGenerator newSequenceGenerator) {
- JavaSequenceGenerator oldSequenceGenerator = this.sequenceGenerator;
- this.sequenceGenerator = newSequenceGenerator;
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, oldSequenceGenerator, newSequenceGenerator);
- }
-
- @SuppressWarnings("unchecked")
- protected Iterator<JavaGenerator> generators() {
- return new CompositeIterator<JavaGenerator>(
- (getSequenceGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getSequenceGenerator()),
- (getTableGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getTableGenerator()));
- }
-
- public ListIterator<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns() {
- return this.containsSpecifiedPrimaryKeyJoinColumns() ? this.specifiedPrimaryKeyJoinColumns() : this.defaultPrimaryKeyJoinColumns();
- }
-
- public int primaryKeyJoinColumnsSize() {
- return this.containsSpecifiedPrimaryKeyJoinColumns() ? this.specifiedPrimaryKeyJoinColumnsSize() : this.defaultPrimaryKeyJoinColumnsSize();
- }
-
- public ListIterator<JavaPrimaryKeyJoinColumn> specifiedPrimaryKeyJoinColumns() {
- return new CloneListIterator<JavaPrimaryKeyJoinColumn>(this.specifiedPrimaryKeyJoinColumns);
- }
-
- public int specifiedPrimaryKeyJoinColumnsSize() {
- return this.specifiedPrimaryKeyJoinColumns.size();
- }
-
- public boolean containsSpecifiedPrimaryKeyJoinColumns() {
- return !this.specifiedPrimaryKeyJoinColumns.isEmpty();
- }
-
- public JavaPrimaryKeyJoinColumn getDefaultPrimaryKeyJoinColumn() {
- return this.defaultPrimaryKeyJoinColumn;
- }
-
- protected void setDefaultPrimaryKeyJoinColumn(JavaPrimaryKeyJoinColumn newPkJoinColumn) {
- JavaPrimaryKeyJoinColumn oldPkJoinColumn = this.defaultPrimaryKeyJoinColumn;
- this.defaultPrimaryKeyJoinColumn = newPkJoinColumn;
- firePropertyChanged(Entity.DEFAULT_PRIMARY_KEY_JOIN_COLUMN, oldPkJoinColumn, newPkJoinColumn);
- }
-
- protected ListIterator<JavaPrimaryKeyJoinColumn> defaultPrimaryKeyJoinColumns() {
- if (this.defaultPrimaryKeyJoinColumn != null) {
- return new SingleElementListIterator<JavaPrimaryKeyJoinColumn>(this.defaultPrimaryKeyJoinColumn);
- }
- return EmptyListIterator.instance();
- }
-
- protected int defaultPrimaryKeyJoinColumnsSize() {
- return (this.defaultPrimaryKeyJoinColumn == null) ? 0 : 1;
- }
-
- public JavaPrimaryKeyJoinColumn addSpecifiedPrimaryKeyJoinColumn(int index) {
- JavaPrimaryKeyJoinColumn oldDefaultPkJoinColumn = this.getDefaultPrimaryKeyJoinColumn();
- if (oldDefaultPkJoinColumn != null) {
- //null the default join column now if one already exists.
- //if one does not exist, there is already a specified join column.
- //Remove it now so that it doesn't get removed during an update and
- //cause change notifications to be sent to the UI in the wrong order
- this.defaultPrimaryKeyJoinColumn = null;
- }
- JavaPrimaryKeyJoinColumn primaryKeyJoinColumn = getJpaFactory().buildJavaPrimaryKeyJoinColumn(this, createPrimaryKeyJoinColumnOwner());
- this.specifiedPrimaryKeyJoinColumns.add(index, primaryKeyJoinColumn);
- PrimaryKeyJoinColumnAnnotation pkJoinColumnResource = (PrimaryKeyJoinColumnAnnotation) this.javaResourcePersistentType.addAnnotation(index, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumns.ANNOTATION_NAME);
- primaryKeyJoinColumn.initializeFromResource(pkJoinColumnResource);
- this.fireItemAdded(Entity.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST, index, primaryKeyJoinColumn);
- if (oldDefaultPkJoinColumn != null) {
- this.firePropertyChanged(Entity.DEFAULT_PRIMARY_KEY_JOIN_COLUMN, oldDefaultPkJoinColumn, null);
- }
- return primaryKeyJoinColumn;
- }
-
- protected void addSpecifiedPrimaryKeyJoinColumn(int index, JavaPrimaryKeyJoinColumn primaryKeyJoinColumn) {
- addItemToList(index, primaryKeyJoinColumn, this.specifiedPrimaryKeyJoinColumns, Entity.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST);
- }
-
- public void removeSpecifiedPrimaryKeyJoinColumn(PrimaryKeyJoinColumn primaryKeyJoinColumn) {
- removeSpecifiedPrimaryKeyJoinColumn(this.specifiedPrimaryKeyJoinColumns.indexOf(primaryKeyJoinColumn));
- }
-
- public void removeSpecifiedPrimaryKeyJoinColumn(int index) {
- JavaPrimaryKeyJoinColumn removedPrimaryKeyJoinColumn = this.specifiedPrimaryKeyJoinColumns.remove(index);
- if (!containsSpecifiedPrimaryKeyJoinColumns()) {
- //create the defaultJoinColumn now or this will happen during project update
- //after removing the join column from the resource model. That causes problems
- //in the UI because the change notifications end up in the wrong order.
- this.defaultPrimaryKeyJoinColumn = buildPrimaryKeyJoinColumn(new NullPrimaryKeyJoinColumn(this.javaResourcePersistentType));
- }
- this.javaResourcePersistentType.removeAnnotation(index, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumns.ANNOTATION_NAME);
- fireItemRemoved(Entity.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST, index, removedPrimaryKeyJoinColumn);
- if (this.defaultPrimaryKeyJoinColumn != null) {
- //fire change notification if a defaultJoinColumn was created above
- this.firePropertyChanged(Entity.DEFAULT_PRIMARY_KEY_JOIN_COLUMN, null, this.defaultPrimaryKeyJoinColumn);
- }
- }
-
- protected void removeSpecifiedPrimaryKeyJoinColumn_(JavaPrimaryKeyJoinColumn primaryKeyJoinColumn) {
- removeItemFromList(primaryKeyJoinColumn, this.specifiedPrimaryKeyJoinColumns, Entity.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST);
- }
-
- public void moveSpecifiedPrimaryKeyJoinColumn(int targetIndex, int sourceIndex) {
- this.javaResourcePersistentType.move(targetIndex, sourceIndex, PrimaryKeyJoinColumns.ANNOTATION_NAME);
- moveItemInList(targetIndex, sourceIndex, this.specifiedPrimaryKeyJoinColumns, Entity.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST);
- }
-
- @SuppressWarnings("unchecked")
- public ListIterator<JavaAttributeOverride> attributeOverrides() {
- return new CompositeListIterator<JavaAttributeOverride>(specifiedAttributeOverrides(), virtualAttributeOverrides());
- }
-
- public int attributeOverridesSize() {
- return this.specifiedAttributeOverridesSize() + this.virtualAttributeOverridesSize();
- }
-
- public ListIterator<JavaAttributeOverride> virtualAttributeOverrides() {
- return new CloneListIterator<JavaAttributeOverride>(this.virtualAttributeOverrides);
- }
-
- public int virtualAttributeOverridesSize() {
- return this.virtualAttributeOverrides.size();
- }
-
- public ListIterator<JavaAttributeOverride> specifiedAttributeOverrides() {
- return new CloneListIterator<JavaAttributeOverride>(this.specifiedAttributeOverrides);
- }
-
- public int specifiedAttributeOverridesSize() {
- return this.specifiedAttributeOverrides.size();
- }
-
- protected JavaAttributeOverride addSpecifiedAttributeOverride(int index) {
- JavaAttributeOverride attributeOverride = getJpaFactory().buildJavaAttributeOverride(this, createAttributeOverrideOwner());
- this.specifiedAttributeOverrides.add(index, attributeOverride);
- AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) this.javaResourcePersistentType.addAnnotation(index, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
- attributeOverride.initializeFromResource(attributeOverrideResource);
- this.fireItemAdded(Entity.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, attributeOverride);
- return attributeOverride;
- }
-
- protected JavaAttributeOverride setAttributeOverrideVirtual(boolean virtual, JavaAttributeOverride attributeOverride) {
- // Add a new attribute override
- if (virtual) {
- return setAttributeOverrideVirtual(attributeOverride);
- }
- return setAttributeOverrideSpecified(attributeOverride);
- }
-
- protected JavaAttributeOverride setAttributeOverrideVirtual(JavaAttributeOverride attributeOverride) {
- int index = this.specifiedAttributeOverrides.indexOf(attributeOverride);
- this.specifiedAttributeOverrides.remove(index);
- String attributeOverrideName = attributeOverride.getName();
- //add the virtual attribute override so that I can control the order that change notification is sent.
- //otherwise when we remove the annotation from java we will get an update and add the attribute override
- //during the udpate. This causes the UI to be flaky, since change notification might not occur in the correct order
- JavaAttributeOverride virtualAttributeOverride = null;
- if (attributeOverrideName != null) {
- for (PersistentAttribute persistentAttribute : CollectionTools.iterable(allOverridableAttributes())) {
- if (persistentAttribute.getName().equals(attributeOverrideName)) {
- //store the virtualAttributeOverride so we can fire change notification later
- virtualAttributeOverride = buildVirtualAttributeOverride(this.javaResourcePersistentType, persistentAttribute);
- this.virtualAttributeOverrides.add(virtualAttributeOverride);
- break;
- }
- }
- }
-
- this.javaResourcePersistentType.removeAnnotation(index, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
- fireItemRemoved(Entity.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, attributeOverride);
-
- if (virtualAttributeOverride != null) {
- fireItemAdded(Entity.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST, virtualAttributeOverridesSize() - 1, virtualAttributeOverride);
- }
- return virtualAttributeOverride;
- }
-
- protected JavaAttributeOverride setAttributeOverrideSpecified(JavaAttributeOverride oldAttributeOverride) {
- int index = specifiedAttributeOverridesSize();
- JavaAttributeOverride newAttributeOverride = getJpaFactory().buildJavaAttributeOverride(this, createAttributeOverrideOwner());
- this.specifiedAttributeOverrides.add(index, newAttributeOverride);
-
- AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) this.javaResourcePersistentType.addAnnotation(index, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
- newAttributeOverride.initializeFromResource(attributeOverrideResource);
-
- int defaultIndex = this.virtualAttributeOverrides.indexOf(oldAttributeOverride);
- this.virtualAttributeOverrides.remove(defaultIndex);
-
- newAttributeOverride.setName(oldAttributeOverride.getName());
- newAttributeOverride.getColumn().setSpecifiedName(oldAttributeOverride.getColumn().getName());
-
- this.fireItemRemoved(Entity.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST, defaultIndex, oldAttributeOverride);
- this.fireItemAdded(Entity.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, newAttributeOverride);
-
- return newAttributeOverride;
- }
-
- protected AttributeOverride.Owner createAttributeOverrideOwner() {
- return new AttributeOverrideOwner();
- }
-
- protected void addSpecifiedAttributeOverride(int index, JavaAttributeOverride attributeOverride) {
- addItemToList(index, attributeOverride, this.specifiedAttributeOverrides, Entity.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST);
- }
-
- protected void removeSpecifiedAttributeOverride_(JavaAttributeOverride attributeOverride) {
- removeItemFromList(attributeOverride, this.specifiedAttributeOverrides, Entity.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST);
- }
-
- public void moveSpecifiedAttributeOverride(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.specifiedAttributeOverrides, targetIndex, sourceIndex);
- this.javaResourcePersistentType.move(targetIndex, sourceIndex, AttributeOverridesAnnotation.ANNOTATION_NAME);
- fireItemMoved(Entity.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, targetIndex, sourceIndex);
- }
-
- protected void addVirtualAttributeOverride(JavaAttributeOverride attributeOverride) {
- addItemToList(attributeOverride, this.virtualAttributeOverrides, Entity.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST);
- }
-
- protected void removeVirtualAttributeOverride(JavaAttributeOverride attributeOverride) {
- removeItemFromList(attributeOverride, this.virtualAttributeOverrides, Entity.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST);
- }
-
- public JavaAttributeOverride getAttributeOverrideNamed(String name) {
- return (JavaAttributeOverride) getOverrideNamed(name, attributeOverrides());
- }
-
- public boolean containsAttributeOverride(String name) {
- return containsOverride(name, attributeOverrides());
- }
-
- public boolean containsDefaultAttributeOverride(String name) {
- return containsOverride(name, virtualAttributeOverrides());
- }
-
- public boolean containsSpecifiedAttributeOverride(String name) {
- return containsOverride(name, specifiedAttributeOverrides());
- }
-
- public JavaAssociationOverride getAssociationOverrideNamed(String name) {
- return (JavaAssociationOverride) getOverrideNamed(name, associationOverrides());
- }
-
- public boolean containsAssociationOverride(String name) {
- return containsOverride(name, associationOverrides());
- }
-
- public boolean containsSpecifiedAssociationOverride(String name) {
- return containsOverride(name, specifiedAssociationOverrides());
- }
-
- public boolean containsDefaultAssociationOverride(String name) {
- return containsOverride(name, virtualAssociationOverrides());
- }
-
- private BaseOverride getOverrideNamed(String name, ListIterator<? extends BaseOverride> overrides) {
- for (BaseOverride override : CollectionTools.iterable(overrides)) {
- String overrideName = override.getName();
- if (overrideName == null && name == null) {
- return override;
- }
- if (overrideName != null && overrideName.equals(name)) {
- return override;
- }
- }
- return null;
- }
-
- private boolean containsOverride(String name, ListIterator<? extends BaseOverride> overrides) {
- return getOverrideNamed(name, overrides) != null;
- }
-
-
- @SuppressWarnings("unchecked")
- public ListIterator<JavaAssociationOverride> associationOverrides() {
- return new CompositeListIterator<JavaAssociationOverride>(specifiedAssociationOverrides(), virtualAssociationOverrides());
- }
-
- public int associationOverridesSize() {
- return this.specifiedAssociationOverridesSize() + this.virtualAssociationOverridesSize();
- }
-
- public ListIterator<JavaAssociationOverride> virtualAssociationOverrides() {
- return new CloneListIterator<JavaAssociationOverride>(this.virtualAssociationOverrides);
- }
-
- public int virtualAssociationOverridesSize() {
- return this.virtualAssociationOverrides.size();
- }
-
- public ListIterator<JavaAssociationOverride> specifiedAssociationOverrides() {
- return new CloneListIterator<JavaAssociationOverride>(this.specifiedAssociationOverrides);
- }
-
- public int specifiedAssociationOverridesSize() {
- return this.specifiedAssociationOverrides.size();
- }
-
- public JavaAssociationOverride addSpecifiedAssociationOverride(int index) {
- JavaAssociationOverride associationOverride = getJpaFactory().buildJavaAssociationOverride(this, createAssociationOverrideOwner());
- this.specifiedAssociationOverrides.add(index, associationOverride);
- AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) this.javaResourcePersistentType.addAnnotation(index, AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
- associationOverride.initializeFromResource(associationOverrideResource);
- this.fireItemAdded(Entity.SPECIFIED_ASSOCIATION_OVERRIDES_LIST, index, associationOverride);
- return associationOverride;
- }
-
- protected AssociationOverride.Owner createAssociationOverrideOwner() {
- return new AssociationOverrideOwner();
- }
-
- protected void addSpecifiedAssociationOverride(int index, JavaAssociationOverride associationOverride) {
- addItemToList(index, associationOverride, this.specifiedAssociationOverrides, Entity.SPECIFIED_ASSOCIATION_OVERRIDES_LIST);
- }
-
- protected void removeSpecifiedAssociationOverride_(JavaAssociationOverride associationOverride) {
- removeItemFromList(associationOverride, this.specifiedAssociationOverrides, Entity.SPECIFIED_ASSOCIATION_OVERRIDES_LIST);
- }
-
- public void moveSpecifiedAssociationOverride(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.specifiedAssociationOverrides, targetIndex, sourceIndex);
- this.javaResourcePersistentType.move(targetIndex, sourceIndex, AssociationOverridesAnnotation.ANNOTATION_NAME);
- fireItemMoved(Entity.SPECIFIED_ASSOCIATION_OVERRIDES_LIST, targetIndex, sourceIndex);
- }
-
- protected JavaAssociationOverride setAssociationOverrideVirtual(boolean virtual, JavaAssociationOverride associationOverride) {
- // Add a new attribute override
- if (virtual) {
- return setAssociationOverrideVirtual(associationOverride);
- }
- return setAssociationOverrideSpecified(associationOverride);
- }
-
- protected JavaAssociationOverride setAssociationOverrideVirtual(JavaAssociationOverride associationOverride) {
- int index = this.specifiedAssociationOverrides.indexOf(associationOverride);
- this.specifiedAssociationOverrides.remove(index);
- String associationOverrideName = associationOverride.getName();
- //add the virtual attribute override so that I can control the order that change notification is sent.
- //otherwise when we remove the annotation from java we will get an update and add the attribute override
- //during the udpate. This causes the UI to be flaky, since change notification might not occur in the correct order
- JavaAssociationOverride virtualAssociationOverride = null;
- if (associationOverrideName != null) {
- for (PersistentAttribute persistentAttribute : CollectionTools.iterable(allOverridableAssociations())) {
- if (persistentAttribute.getName().equals(associationOverrideName)) {
- //store the virtualAssociationOverride so we can fire change notification later
- virtualAssociationOverride = buildAssociationOverride(new NullAssociationOverride(this.javaResourcePersistentType, associationOverrideName));
- this.virtualAssociationOverrides.add(virtualAssociationOverride);
- break;
- }
- }
- }
-
- this.javaResourcePersistentType.removeAnnotation(index, AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
- fireItemRemoved(Entity.SPECIFIED_ASSOCIATION_OVERRIDES_LIST, index, associationOverride);
-
- if (virtualAssociationOverride != null) {
- fireItemAdded(Entity.VIRTUAL_ASSOCIATION_OVERRIDES_LIST, virtualAssociationOverridesSize() - 1, virtualAssociationOverride);
- }
- return virtualAssociationOverride;
- }
-
- protected JavaAssociationOverride setAssociationOverrideSpecified(JavaAssociationOverride oldAssociationOverride) {
- int index = specifiedAssociationOverridesSize();
- JavaAssociationOverride newAssociationOverride = getJpaFactory().buildJavaAssociationOverride(this, createAssociationOverrideOwner());
- this.specifiedAssociationOverrides.add(index, newAssociationOverride);
-
- AssociationOverrideAnnotation attributeOverrideResource = (AssociationOverrideAnnotation) this.javaResourcePersistentType.addAnnotation(index, AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
- newAssociationOverride.initializeFromResource(attributeOverrideResource);
-
- int virtualIndex = this.virtualAssociationOverrides.indexOf(oldAssociationOverride);
- this.virtualAssociationOverrides.remove(virtualIndex);
-
- newAssociationOverride.setName(oldAssociationOverride.getName());
-
- this.fireItemRemoved(Entity.VIRTUAL_ASSOCIATION_OVERRIDES_LIST, virtualIndex, oldAssociationOverride);
- this.fireItemAdded(Entity.SPECIFIED_ASSOCIATION_OVERRIDES_LIST, index, newAssociationOverride);
-
- return newAssociationOverride;
- }
-
- protected void addVirtualAssociationOverride(JavaAssociationOverride associationOverride) {
- addItemToList(associationOverride, this.virtualAssociationOverrides, Entity.VIRTUAL_ASSOCIATION_OVERRIDES_LIST);
- }
-
- protected void removeVirtualAssociationOverride(JavaAssociationOverride associationOverride) {
- removeItemFromList(associationOverride, this.virtualAssociationOverrides, Entity.VIRTUAL_ASSOCIATION_OVERRIDES_LIST);
- }
-
- public ListIterator<JavaNamedQuery> namedQueries() {
- return new CloneListIterator<JavaNamedQuery>(this.namedQueries);
- }
-
- public int namedQueriesSize() {
- return this.namedQueries.size();
- }
-
- public JavaNamedQuery addNamedQuery(int index) {
- JavaNamedQuery namedQuery = getJpaFactory().buildJavaNamedQuery(this);
- this.namedQueries.add(index, namedQuery);
- NamedQueryAnnotation namedQueryAnnotation = (NamedQueryAnnotation) this.javaResourcePersistentType.addAnnotation(index, NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
- namedQuery.initializeFromResource(namedQueryAnnotation);
- fireItemAdded(QueryHolder.NAMED_QUERIES_LIST, index, namedQuery);
- return namedQuery;
- }
-
- protected void addNamedQuery(int index, JavaNamedQuery namedQuery) {
- addItemToList(index, namedQuery, this.namedQueries, QueryHolder.NAMED_QUERIES_LIST);
- }
-
- public void removeNamedQuery(NamedQuery namedQuery) {
- removeNamedQuery(this.namedQueries.indexOf(namedQuery));
- }
-
- public void removeNamedQuery(int index) {
- JavaNamedQuery removedNamedQuery = this.namedQueries.remove(index);
- this.javaResourcePersistentType.removeAnnotation(index, NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
- fireItemRemoved(QueryHolder.NAMED_QUERIES_LIST, index, removedNamedQuery);
- }
-
- protected void removeNamedQuery_(JavaNamedQuery namedQuery) {
- removeItemFromList(namedQuery, this.namedQueries, QueryHolder.NAMED_QUERIES_LIST);
- }
-
- public void moveNamedQuery(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.namedQueries, targetIndex, sourceIndex);
- this.javaResourcePersistentType.move(targetIndex, sourceIndex, NamedQueriesAnnotation.ANNOTATION_NAME);
- fireItemMoved(QueryHolder.NAMED_QUERIES_LIST, targetIndex, sourceIndex);
- }
-
- public ListIterator<JavaNamedNativeQuery> namedNativeQueries() {
- return new CloneListIterator<JavaNamedNativeQuery>(this.namedNativeQueries);
- }
-
- public int namedNativeQueriesSize() {
- return this.namedNativeQueries.size();
- }
-
- public JavaNamedNativeQuery addNamedNativeQuery(int index) {
- JavaNamedNativeQuery namedNativeQuery = getJpaFactory().buildJavaNamedNativeQuery(this);
- this.namedNativeQueries.add(index, namedNativeQuery);
- NamedNativeQueryAnnotation namedNativeQueryAnnotation = (NamedNativeQueryAnnotation) this.javaResourcePersistentType.addAnnotation(index, NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
- namedNativeQuery.initializeFromResource(namedNativeQueryAnnotation);
- fireItemAdded(QueryHolder.NAMED_NATIVE_QUERIES_LIST, index, namedNativeQuery);
- return namedNativeQuery;
- }
-
- protected void addNamedNativeQuery(int index, JavaNamedNativeQuery namedNativeQuery) {
- addItemToList(index, namedNativeQuery, this.namedNativeQueries, QueryHolder.NAMED_NATIVE_QUERIES_LIST);
- }
-
- public void removeNamedNativeQuery(NamedNativeQuery namedNativeQuery) {
- this.removeNamedNativeQuery(this.namedNativeQueries.indexOf(namedNativeQuery));
- }
-
- public void removeNamedNativeQuery(int index) {
- JavaNamedNativeQuery removedNamedNativeQuery = this.namedNativeQueries.remove(index);
- this.javaResourcePersistentType.removeAnnotation(index, NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
- fireItemRemoved(QueryHolder.NAMED_NATIVE_QUERIES_LIST, index, removedNamedNativeQuery);
- }
-
- protected void removeNamedNativeQuery_(JavaNamedNativeQuery namedNativeQuery) {
- removeItemFromList(namedNativeQuery, this.namedNativeQueries, QueryHolder.NAMED_NATIVE_QUERIES_LIST);
- }
-
- public void moveNamedNativeQuery(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.namedNativeQueries, targetIndex, sourceIndex);
- this.javaResourcePersistentType.move(targetIndex, sourceIndex, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
- fireItemMoved(QueryHolder.NAMED_NATIVE_QUERIES_LIST, targetIndex, sourceIndex);
- }
-
- @SuppressWarnings("unchecked")
- protected Iterator<JavaQuery> queries() {
- return new CompositeIterator<JavaQuery>(this.namedNativeQueries(), this.namedQueries());
- }
-
- public String getIdClass() {
- return this.idClass;
- }
-
- public void setIdClass(String newIdClass) {
- String oldIdClass = this.idClass;
- this.idClass = newIdClass;
- if (newIdClass != oldIdClass) {
- if (newIdClass != null) {
- if (getIdClassResource() == null) {
- addIdClassResource();
- }
- getIdClassResource().setValue(newIdClass);
- }
- else {
- removeIdClassResource();
- }
- }
- firePropertyChanged(IdClass.ID_CLASS_PROPERTY, oldIdClass, newIdClass);
- }
-
- protected void setIdClass_(String newIdClass) {
- String oldIdClass = this.idClass;
- this.idClass = newIdClass;
- firePropertyChanged(IdClass.ID_CLASS_PROPERTY, oldIdClass, newIdClass);
- }
-
- protected IdClassAnnotation getIdClassResource() {
- return (IdClassAnnotation) this.javaResourcePersistentType.getAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- }
-
- protected void addIdClassResource() {
- this.javaResourcePersistentType.addAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- }
-
- protected void removeIdClassResource() {
- this.javaResourcePersistentType.removeAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- }
-
- public Entity getParentEntity() {
- for (Iterator<PersistentType> i = getPersistentType().inheritanceHierarchy(); i.hasNext();) {
- TypeMapping typeMapping = i.next().getMapping();
- if (typeMapping != this && typeMapping instanceof Entity) {
- return (Entity) typeMapping;
- }
- }
- return this;
- }
-
- public Entity getRootEntity() {
- Entity rootEntity = this;
- for (Iterator<PersistentType> i = getPersistentType().inheritanceHierarchy(); i.hasNext();) {
- PersistentType persistentType = i.next();
- if (persistentType.getMapping() instanceof Entity) {
- rootEntity = (Entity) persistentType.getMapping();
- }
- }
- return rootEntity;
- }
-
- public String getPrimaryKeyColumnName() {
- return getPrimaryKeyColumnName(getPersistentType().allAttributes());
- }
-
- //copied in GenericOrmEntity to avoid an API change for fixing bug 229423 in RC1
- public String getPrimaryKeyColumnName(Iterator<PersistentAttribute> attributes) {
- String pkColumnName = null;
- for (Iterator<PersistentAttribute> stream = attributes; stream.hasNext();) {
- PersistentAttribute attribute = stream.next();
- String name = attribute.getPrimaryKeyColumnName();
- if (name != null) {
- //if the attribute is a primary key then we need to check if there is an attribute override
- //and use its column name instead (bug 229423)
- AttributeOverride attributeOverride = getAttributeOverrideNamed(attribute.getName());
- if (attributeOverride != null) {
- name = attributeOverride.getColumn().getName();
- }
- }
- if (pkColumnName == null) {
- pkColumnName = name;
- }
- else if (name != null) {
- // if we encounter a composite primary key, return null
- return null;
- }
- }
- // if we encounter only a single primary key column name, return it
- return pkColumnName;
- }
-
- @Override
- public boolean tableNameIsInvalid(String tableName) {
- return !CollectionTools.contains(this.associatedTableNamesIncludingInherited(), tableName);
- }
-
- @Override
- public Iterator<Table> associatedTables() {
- return new CompositeIterator<Table>(this.getTable(), this.secondaryTables());
- }
-
- @Override
- public Iterator<Table> associatedTablesIncludingInherited() {
- return new CompositeIterator<Table>(new TransformationIterator<TypeMapping, Iterator<Table>>(this.inheritanceHierarchy()) {
- @Override
- protected Iterator<Table> transform(TypeMapping mapping) {
- return new FilteringIterator<Table, Table>(mapping.associatedTables()) {
- @Override
- protected boolean accept(Table o) {
- return true;
- //TODO
- //filtering these out so as to avoid the duplicate table, root and children share the same table
- //return !(o instanceof SingleTableInheritanceChildTableImpl);
- }
- };
- }
- });
- }
-
- @Override
- public Iterator<String> associatedTableNamesIncludingInherited() {
- return this.nonNullTableNames(this.associatedTablesIncludingInherited());
- }
-
- protected Iterator<String> nonNullTableNames(Iterator<Table> tables) {
- return new FilteringIterator<String, String>(this.tableNames(tables)) {
- @Override
- protected boolean accept(String o) {
- return o != null;
- }
- };
- }
-
- protected Iterator<String> tableNames(Iterator<Table> tables) {
- return new TransformationIterator<Table, String>(tables) {
- @Override
- protected String transform(Table t) {
- return t.getName();
- }
- };
- }
-
- /**
- * Return an iterator of Entities, each which inherits from the one before,
- * and terminates at the root entity (or at the point of cyclicity).
- */
- protected Iterator<TypeMapping> inheritanceHierarchy() {
- return new TransformationIterator<PersistentType, TypeMapping>(getPersistentType().inheritanceHierarchy()) {
- @Override
- protected TypeMapping transform(PersistentType type) {
- return type.getMapping();
- }
- };
- }
-
- @Override
- public Iterator<String> allOverridableAttributeNames() {
- return new CompositeIterator<String>(new TransformationIterator<TypeMapping, Iterator<String>>(this.inheritanceHierarchy()) {
- @Override
- protected Iterator<String> transform(TypeMapping mapping) {
- return mapping.overridableAttributeNames();
- }
- });
- }
-
-
- @Override
- public Iterator<PersistentAttribute> allOverridableAttributes() {
- return new CompositeIterator<PersistentAttribute>(new TransformationIterator<TypeMapping, Iterator<PersistentAttribute>>(this.inheritanceHierarchy()) {
- @Override
- protected Iterator<PersistentAttribute> transform(TypeMapping mapping) {
- return mapping.overridableAttributes();
- }
- });
- }
-
- @Override
- public Iterator<PersistentAttribute> allOverridableAssociations() {
- return new CompositeIterator<PersistentAttribute>(new TransformationIterator<TypeMapping, Iterator<PersistentAttribute>>(this.inheritanceHierarchy()) {
- @Override
- protected Iterator<PersistentAttribute> transform(TypeMapping mapping) {
- return mapping.overridableAssociations();
- }
- });
- }
-
- @Override
- public Iterator<String> allOverridableAssociationNames() {
- return new CompositeIterator<String>(new TransformationIterator<TypeMapping, Iterator<String>>(this.inheritanceHierarchy()) {
- @Override
- protected Iterator<String> transform(TypeMapping mapping) {
- return mapping.overridableAssociationNames();
- }
- });
- }
-
- @Override
- public void update(JavaResourcePersistentType resourcePersistentType) {
- super.update(resourcePersistentType);
- this.entityResource = (EntityAnnotation) resourcePersistentType.getMappingAnnotation(EntityAnnotation.ANNOTATION_NAME);
-
- this.setSpecifiedName_(this.specifiedName(this.entityResource));
- this.setDefaultName(this.defaultName(resourcePersistentType));
-
- this.updateInheritance(getInheritanceResource());
- this.updateDiscriminatorColumn(resourcePersistentType);
- this.updateDiscriminatorValue(getDiscriminatorValueResource());
- this.setDiscriminatorValueAllowed(discriminatorValueIsAllowed(resourcePersistentType));
- this.updateTable(resourcePersistentType);
- this.updateSecondaryTables(resourcePersistentType);
- this.updateTableGenerator(resourcePersistentType);
- this.updateSequenceGenerator(resourcePersistentType);
- this.updateSpecifiedPrimaryKeyJoinColumns(resourcePersistentType);
- this.updateDefaultPrimaryKeyJoinColumn(resourcePersistentType);
- this.updateSpecifiedAttributeOverrides(resourcePersistentType);
- this.updateVirtualAttributeOverrides(resourcePersistentType);
- this.updateSpecifiedAssociationOverrides(resourcePersistentType);
- this.updateVirtualAssociationOverrides(resourcePersistentType);
- this.updateNamedQueries(resourcePersistentType);
- this.updateNamedNativeQueries(resourcePersistentType);
- this.updateIdClass(resourcePersistentType);
- this.updatePersistenceUnitGeneratorsAndQueries();
- }
-
- protected String specifiedName(EntityAnnotation entityResource) {
- return entityResource.getName();
- }
-
- protected String defaultName(JavaResourcePersistentType persistentTypeResource) {
- return persistentTypeResource.getName();
- }
-
- protected void updateTable(JavaResourcePersistentType persistentTypeResource) {
- getTable().update(persistentTypeResource);
- }
-
- protected void updateInheritance(InheritanceAnnotation inheritanceResource) {
- this.setSpecifiedInheritanceStrategy_(this.specifiedInheritanceStrategy(inheritanceResource));
- this.setDefaultInheritanceStrategy(this.defaultInheritanceStrategy());
- }
-
- protected InheritanceType specifiedInheritanceStrategy(InheritanceAnnotation inheritanceResource) {
- return InheritanceType.fromJavaResourceModel(inheritanceResource.getStrategy());
- }
-
- protected InheritanceType defaultInheritanceStrategy() {
- if (getRootEntity() == this) {
- return InheritanceType.SINGLE_TABLE;
- }
- return getRootEntity().getInheritanceStrategy();
- }
-
- protected void updateDiscriminatorColumn(JavaResourcePersistentType persistentTypeResource) {
- getDiscriminatorColumn().update(persistentTypeResource);
- }
-
- protected void updateDiscriminatorValue(DiscriminatorValueAnnotation discriminatorValueResource) {
- this.setSpecifiedDiscriminatorValue_(discriminatorValueResource.getValue());
- this.setDefaultDiscriminatorValue(this.javaDefaultDiscriminatorValue());
- }
-
- /**
- * From the Spec:
- * If the DiscriminatorValue annotation is not specified, a
- * provider-specific function to generate a value representing
- * the entity type is used for the value of the discriminator
- * column. If the DiscriminatorType is STRING, the discriminator
- * value default is the entity name.
- *
- * TODO extension point for provider-specific function?
- */
- protected String javaDefaultDiscriminatorValue() {
- if (this.javaResourcePersistentType.isAbstract()) {
- return null;
- }
- if (this.getDiscriminatorType() != DiscriminatorType.STRING) {
- return null;
- }
- return this.getName();
- }
-
- protected DiscriminatorType getDiscriminatorType() {
- return this.getDiscriminatorColumn().getDiscriminatorType();
- }
-
- protected boolean discriminatorValueIsAllowed(JavaResourcePersistentType persistentTypeResource) {
- return !persistentTypeResource.isAbstract();
- }
-
- protected void updateSecondaryTables(JavaResourcePersistentType persistentTypeResource) {
- ListIterator<JavaSecondaryTable> secondaryTables = specifiedSecondaryTables();
- ListIterator<JavaResourceNode> resourceSecondaryTables = persistentTypeResource.annotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-
- while (secondaryTables.hasNext()) {
- JavaSecondaryTable secondaryTable = secondaryTables.next();
- if (resourceSecondaryTables.hasNext()) {
- secondaryTable.update((SecondaryTableAnnotation) resourceSecondaryTables.next());
- }
- else {
- removeSpecifiedSecondaryTable_(secondaryTable);
- }
- }
-
- while (resourceSecondaryTables.hasNext()) {
- addSpecifiedSecondaryTable(specifiedSecondaryTablesSize(), buildSecondaryTable((SecondaryTableAnnotation) resourceSecondaryTables.next()));
- }
- }
-
- protected JavaSecondaryTable buildSecondaryTable(SecondaryTableAnnotation secondaryTableResource) {
- JavaSecondaryTable secondaryTable = getJpaFactory().buildJavaSecondaryTable(this);
- secondaryTable.initializeFromResource(secondaryTableResource);
- return secondaryTable;
- }
-
- protected void updateTableGenerator(JavaResourcePersistentType persistentTypeResource) {
- TableGeneratorAnnotation tableGeneratorResource = tableGenerator(persistentTypeResource);
- if (tableGeneratorResource == null) {
- if (getTableGenerator() != null) {
- setTableGenerator(null);
- }
- }
- else {
- if (getTableGenerator() == null) {
- setTableGenerator(buildTableGenerator(tableGeneratorResource));
- }
- else {
- getTableGenerator().update(tableGeneratorResource);
- }
- }
- }
-
- protected JavaTableGenerator buildTableGenerator(TableGeneratorAnnotation tableGeneratorResource) {
- JavaTableGenerator tableGenerator = getJpaFactory().buildJavaTableGenerator(this);
- tableGenerator.initializeFromResource(tableGeneratorResource);
- return tableGenerator;
- }
-
- protected TableGeneratorAnnotation tableGenerator(JavaResourcePersistentType persistentTypeResource) {
- return (TableGeneratorAnnotation) persistentTypeResource.getAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME);
- }
-
- protected void updateSequenceGenerator(JavaResourcePersistentType persistentTypeResource) {
- SequenceGeneratorAnnotation sequenceGeneratorResource = sequenceGenerator(persistentTypeResource);
- if (sequenceGeneratorResource == null) {
- if (getSequenceGenerator() != null) {
- setSequenceGenerator(null);
- }
- }
- else {
- if (getSequenceGenerator() == null) {
- setSequenceGenerator(buildSequenceGenerator(sequenceGeneratorResource));
- }
- else {
- getSequenceGenerator().update(sequenceGeneratorResource);
- }
- }
- }
-
- protected JavaSequenceGenerator buildSequenceGenerator(SequenceGeneratorAnnotation sequenceGeneratorResource) {
- JavaSequenceGenerator sequenceGenerator = getJpaFactory().buildJavaSequenceGenerator(this);
- sequenceGenerator.initializeFromResource(sequenceGeneratorResource);
- return sequenceGenerator;
- }
-
- protected SequenceGeneratorAnnotation sequenceGenerator(JavaResourcePersistentType persistentTypeResource) {
- return (SequenceGeneratorAnnotation) persistentTypeResource.getAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME);
- }
-
-
- protected void updateSpecifiedPrimaryKeyJoinColumns(JavaResourcePersistentType persistentTypeResource) {
- ListIterator<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns = specifiedPrimaryKeyJoinColumns();
- ListIterator<JavaResourceNode> resourcePrimaryKeyJoinColumns = persistentTypeResource.annotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumns.ANNOTATION_NAME);
-
- while (primaryKeyJoinColumns.hasNext()) {
- JavaPrimaryKeyJoinColumn primaryKeyJoinColumn = primaryKeyJoinColumns.next();
- if (resourcePrimaryKeyJoinColumns.hasNext()) {
- primaryKeyJoinColumn.update((PrimaryKeyJoinColumnAnnotation) resourcePrimaryKeyJoinColumns.next());
- }
- else {
- removeSpecifiedPrimaryKeyJoinColumn_(primaryKeyJoinColumn);
- }
- }
-
- while (resourcePrimaryKeyJoinColumns.hasNext()) {
- addSpecifiedPrimaryKeyJoinColumn(specifiedPrimaryKeyJoinColumnsSize(), buildPrimaryKeyJoinColumn((PrimaryKeyJoinColumnAnnotation) resourcePrimaryKeyJoinColumns.next()));
- }
- }
-
- protected JavaPrimaryKeyJoinColumn buildPrimaryKeyJoinColumn(PrimaryKeyJoinColumnAnnotation primaryKeyJoinColumnResource) {
- JavaPrimaryKeyJoinColumn primaryKeyJoinColumn = getJpaFactory().buildJavaPrimaryKeyJoinColumn(this, createPrimaryKeyJoinColumnOwner());
- primaryKeyJoinColumn.initializeFromResource(primaryKeyJoinColumnResource);
- return primaryKeyJoinColumn;
- }
-
- protected void updateDefaultPrimaryKeyJoinColumn(JavaResourcePersistentType persistentTypeResource) {
- if (!shouldBuildDefaultPrimaryKeyJoinColumn()) {
- setDefaultPrimaryKeyJoinColumn(null);
- return;
- }
- if (getDefaultPrimaryKeyJoinColumn() == null) {
- this.setDefaultPrimaryKeyJoinColumn(buildPrimaryKeyJoinColumn(new NullPrimaryKeyJoinColumn(this.javaResourcePersistentType)));
- }
- else {
- this.defaultPrimaryKeyJoinColumn.update(new NullPrimaryKeyJoinColumn(persistentTypeResource));
- }
- }
-
- protected void updateSpecifiedAttributeOverrides(JavaResourcePersistentType persistentTypeResource) {
- ListIterator<JavaAttributeOverride> attributeOverrides = specifiedAttributeOverrides();
- ListIterator<JavaResourceNode> resourceAttributeOverrides = persistentTypeResource.annotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-
- while (attributeOverrides.hasNext()) {
- JavaAttributeOverride attributeOverride = attributeOverrides.next();
- if (resourceAttributeOverrides.hasNext()) {
- attributeOverride.update((AttributeOverrideAnnotation) resourceAttributeOverrides.next());
- }
- else {
- removeSpecifiedAttributeOverride_(attributeOverride);
- }
- }
-
- while (resourceAttributeOverrides.hasNext()) {
- addSpecifiedAttributeOverride(specifiedAttributeOverridesSize(), buildAttributeOverride((AttributeOverrideAnnotation) resourceAttributeOverrides.next()));
- }
- }
-
- protected JavaAttributeOverride buildAttributeOverride(AttributeOverrideAnnotation attributeOverrideResource) {
- JavaAttributeOverride attributeOverride = getJpaFactory().buildJavaAttributeOverride(this, createAttributeOverrideOwner());
- attributeOverride.initializeFromResource(attributeOverrideResource);
- return attributeOverride;
- }
-
- protected JavaAttributeOverride buildVirtualAttributeOverride(JavaResourcePersistentType resourcePersistentType, PersistentAttribute attribute) {
- return buildAttributeOverride(buildVirtualAttributeOverrideResource(resourcePersistentType, attribute));
- }
-
- protected VirtualAttributeOverride buildVirtualAttributeOverrideResource(JavaResourcePersistentType resourcePersistentType, PersistentAttribute attribute) {
- ColumnMapping columnMapping = (ColumnMapping) attribute.getMapping();
- return new VirtualAttributeOverride(resourcePersistentType, attribute.getName(), columnMapping.getColumn());
- }
-
- protected void updateVirtualAttributeOverrides(JavaResourcePersistentType resourcePersistentType) {
- for (PersistentAttribute persistentAttribute : CollectionTools.iterable(allOverridableAttributes())) {
- JavaAttributeOverride attributeOverride = getAttributeOverrideNamed(persistentAttribute.getName());
- if (attributeOverride == null) {
- addVirtualAttributeOverride(buildVirtualAttributeOverride(resourcePersistentType, persistentAttribute));
- }
- else if (attributeOverride.isVirtual()) {
- attributeOverride.update(buildVirtualAttributeOverrideResource(resourcePersistentType, persistentAttribute));
- }
- }
-
- Collection<String> attributeNames = CollectionTools.collection(allOverridableAttributeNames());
-
- //remove any default mappings that are not included in the attributeNames collection
- for (JavaAttributeOverride attributeOverride : CollectionTools.iterable(virtualAttributeOverrides())) {
- if (!attributeNames.contains(attributeOverride.getName())
- || containsSpecifiedAttributeOverride(attributeOverride.getName())) {
- removeVirtualAttributeOverride(attributeOverride);
- }
- }
- }
-
- protected void updateSpecifiedAssociationOverrides(JavaResourcePersistentType resourcePersistentType) {
- ListIterator<JavaAssociationOverride> associationOverrides = specifiedAssociationOverrides();
- ListIterator<JavaResourceNode> resourceAssociationOverrides = resourcePersistentType.annotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-
- while (associationOverrides.hasNext()) {
- JavaAssociationOverride associationOverride = associationOverrides.next();
- if (resourceAssociationOverrides.hasNext()) {
- associationOverride.update((AssociationOverrideAnnotation) resourceAssociationOverrides.next());
- }
- else {
- removeSpecifiedAssociationOverride_(associationOverride);
- }
- }
-
- while (resourceAssociationOverrides.hasNext()) {
- addSpecifiedAssociationOverride(specifiedAssociationOverridesSize(), buildAssociationOverride((AssociationOverrideAnnotation) resourceAssociationOverrides.next()));
- }
- }
-
- protected JavaAssociationOverride buildAssociationOverride(AssociationOverrideAnnotation associationOverrideResource) {
- JavaAssociationOverride associationOverride = getJpaFactory().buildJavaAssociationOverride(this, createAssociationOverrideOwner());
- associationOverride.initializeFromResource(associationOverrideResource);
- return associationOverride;
- }
-
- protected void updateVirtualAssociationOverrides(JavaResourcePersistentType resourcePersistentType) {
- for (Iterator<String> i = allOverridableAssociationNames(); i.hasNext(); ) {
- String associationName = i.next();
- JavaAssociationOverride associationOverride = getAssociationOverrideNamed(associationName);
- if (associationOverride == null) {
- associationOverride = buildAssociationOverride(new NullAssociationOverride(resourcePersistentType, associationName));
- addVirtualAssociationOverride(associationOverride);
- }
- else if (associationOverride.isVirtual()) {
- associationOverride.update(new NullAssociationOverride(resourcePersistentType, associationName));
- }
- }
-
- Collection<String> associationNames = CollectionTools.collection(allOverridableAssociationNames());
-
- //remove any default mappings that are not included in the associationNames collection
- for (JavaAssociationOverride associationOverride : CollectionTools.iterable(virtualAssociationOverrides())) {
- if (!associationNames.contains(associationOverride.getName())
- || containsSpecifiedAssociationOverride(associationOverride.getName())) {
- removeVirtualAssociationOverride(associationOverride);
- }
- }
- }
-
- protected void updateNamedQueries(JavaResourcePersistentType resourcePersistentType) {
- ListIterator<JavaNamedQuery> namedQueries = namedQueries();
- ListIterator<JavaResourceNode> resourceNamedQueries = resourcePersistentType.annotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-
- while (namedQueries.hasNext()) {
- JavaNamedQuery namedQuery = namedQueries.next();
- if (resourceNamedQueries.hasNext()) {
- namedQuery.update((NamedQueryAnnotation) resourceNamedQueries.next());
- }
- else {
- removeNamedQuery_(namedQuery);
- }
- }
-
- while (resourceNamedQueries.hasNext()) {
- addNamedQuery(namedQueriesSize(), buildNamedQuery((NamedQueryAnnotation) resourceNamedQueries.next()));
- }
- }
-
- protected void updateNamedNativeQueries(JavaResourcePersistentType resourcePersistentType) {
- ListIterator<JavaNamedNativeQuery> namedNativeQueries = namedNativeQueries();
- ListIterator<JavaResourceNode> resourceNamedNativeQueries = resourcePersistentType.annotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-
- while (namedNativeQueries.hasNext()) {
- JavaNamedNativeQuery namedQuery = namedNativeQueries.next();
- if (resourceNamedNativeQueries.hasNext()) {
- namedQuery.update((NamedNativeQueryAnnotation) resourceNamedNativeQueries.next());
- }
- else {
- removeNamedNativeQuery_(namedQuery);
- }
- }
-
- while (resourceNamedNativeQueries.hasNext()) {
- addNamedNativeQuery(namedNativeQueriesSize(), buildNamedNativeQuery((NamedNativeQueryAnnotation) resourceNamedNativeQueries.next()));
- }
- }
-
-
- protected JavaNamedQuery buildNamedQuery(NamedQueryAnnotation namedQueryResource) {
- JavaNamedQuery namedQuery = getJpaFactory().buildJavaNamedQuery(this);
- namedQuery.initializeFromResource(namedQueryResource);
- return namedQuery;
- }
-
- protected JavaNamedNativeQuery buildNamedNativeQuery(NamedNativeQueryAnnotation namedNativeQueryResource) {
- JavaNamedNativeQuery namedNativeQuery = getJpaFactory().buildJavaNamedNativeQuery(this);
- namedNativeQuery.initializeFromResource(namedNativeQueryResource);
- return namedNativeQuery;
- }
-
- protected void updateIdClass(JavaResourcePersistentType resourcePersistentType) {
- IdClassAnnotation idClass = (IdClassAnnotation) resourcePersistentType.getAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- if (idClass != null) {
- setIdClass_(idClass.getValue());
- }
- else {
- setIdClass_(null);
- }
- }
-
- protected void updatePersistenceUnitGeneratorsAndQueries() {
- if (getTableGenerator() != null) {
- getPersistenceUnit().addGenerator(getTableGenerator());
- }
-
- if (getSequenceGenerator() != null) {
- getPersistenceUnit().addGenerator(getSequenceGenerator());
- }
-
- for (Query query : CollectionTools.iterable(namedQueries())) {
- getPersistenceUnit().addQuery(query);
- }
-
- for (Query query : CollectionTools.iterable(namedNativeQueries())) {
- getPersistenceUnit().addQuery(query);
- }
- }
-
-
- //******************** Code Completion *************************
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- result = this.getTable().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- for (JavaSecondaryTable sTable : CollectionTools.iterable(this.secondaryTables())) {
- result = sTable.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- for (JavaPrimaryKeyJoinColumn column : CollectionTools.iterable(this.primaryKeyJoinColumns())) {
- result = column.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- for (JavaAttributeOverride override : CollectionTools.iterable(this.attributeOverrides())) {
- result = override.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- for (JavaAssociationOverride override : CollectionTools.iterable(this.associationOverrides())) {
- result = override.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- result = this.getDiscriminatorColumn().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.getTableGenerator() != null) {
- result = this.getTableGenerator().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- if (this.getSequenceGenerator() != null) {
- result = this.getSequenceGenerator().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- return null;
- }
-
-
- //********** Validation ********************************************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- getTable().addToMessages(messages, astRoot);
- addIdMessages(messages, astRoot);
- addGeneratorMessages(messages, astRoot);
- addQueryMessages(messages, astRoot);
-
- for (Iterator<JavaSecondaryTable> stream = this.specifiedSecondaryTables(); stream.hasNext();) {
- stream.next().addToMessages(messages, astRoot);
- }
-
- for (Iterator<JavaAttributeOverride> stream = this.attributeOverrides(); stream.hasNext();) {
- stream.next().addToMessages(messages, astRoot);
- }
-
- for (Iterator<JavaAssociationOverride> stream = this.associationOverrides(); stream.hasNext();) {
- stream.next().addToMessages(messages, astRoot);
- }
-
- }
-
- protected void addIdMessages(List<IMessage> messages, CompilationUnit astRoot) {
- addNoIdMessage(messages, astRoot);
- }
-
- protected void addNoIdMessage(List<IMessage> messages, CompilationUnit astRoot) {
- if (entityHasNoId()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.ENTITY_NO_ID,
- new String[] {this.getName()},
- this, this.getValidationTextRange(astRoot))
- );
- }
- }
-
- private boolean entityHasNoId() {
- return ! this.entityHasId();
- }
-
- private boolean entityHasId() {
- for (Iterator<PersistentAttribute> stream = getPersistentType().allAttributes(); stream.hasNext(); ) {
- if (stream.next().isIdAttribute()) {
- return true;
- }
- }
- return false;
- }
-
- protected void addGeneratorMessages(List<IMessage> messages, CompilationUnit astRoot) {
- List<Generator> masterList = CollectionTools.list(getPersistenceUnit().allGenerators());
-
- for (Iterator<JavaGenerator> stream = this.generators(); stream.hasNext() ; ) {
- JavaGenerator current = stream.next();
- masterList.remove(current);
-
- for (Generator each : masterList) {
- if (! each.overrides(current) && each.getName() != null && each.getName().equals(current.getName())) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.GENERATOR_DUPLICATE_NAME,
- new String[] {current.getName()},
- current,
- current.getNameTextRange(astRoot))
- );
- }
- }
-
- masterList.add(current);
- }
- }
-
- protected void addQueryMessages(List<IMessage> messages, CompilationUnit astRoot) {
- List<Query> masterList = CollectionTools.list(getPersistenceUnit().allQueries());
-
- for (Iterator<JavaQuery> stream = this.queries(); stream.hasNext() ; ) {
- JavaQuery current = stream.next();
- masterList.remove(current);
-
- for (Query each : masterList) {
- if (! each.overrides(current) && each.getName() != null && each.getName().equals(current.getName())) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.QUERY_DUPLICATE_NAME,
- new String[] {current.getName()},
- current,
- current.getNameTextRange(astRoot))
- );
- }
- }
-
- masterList.add(current);
- }
- }
-
- class PrimaryKeyJoinColumnOwner implements JavaBaseJoinColumn.Owner
- {
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return GenericJavaEntity.this.getValidationTextRange(astRoot);
- }
-
- public TypeMapping getTypeMapping() {
- return GenericJavaEntity.this;
- }
-
- public org.eclipse.jpt.db.Table getDbTable(String tableName) {
- return GenericJavaEntity.this.getDbTable(tableName);
- }
-
- public org.eclipse.jpt.db.Table getDbReferencedColumnTable() {
- Entity parentEntity = GenericJavaEntity.this.getParentEntity();
- return (parentEntity == null) ? null : parentEntity.getPrimaryDbTable();
- }
-
- public int joinColumnsSize() {
- return GenericJavaEntity.this.primaryKeyJoinColumnsSize();
- }
-
- public boolean isVirtual(BaseJoinColumn joinColumn) {
- return GenericJavaEntity.this.defaultPrimaryKeyJoinColumn == joinColumn;
- }
-
- public String getDefaultColumnName() {
- if (joinColumnsSize() != 1) {
- return null;
- }
- return GenericJavaEntity.this.getParentEntity().getPrimaryKeyColumnName();
- }
- }
-
- class AttributeOverrideOwner implements AttributeOverride.Owner {
-
- public ColumnMapping getColumnMapping(String attributeName) {
- if (attributeName == null) {
- return null;
- }
- for (Iterator<PersistentAttribute> stream = getPersistentType().allAttributes(); stream.hasNext();) {
- PersistentAttribute persAttribute = stream.next();
- if (attributeName.equals(persAttribute.getName())) {
- if (persAttribute.getMapping() instanceof ColumnMapping) {
- return (ColumnMapping) persAttribute.getMapping();
- }
- }
- }
- return null;
- }
-
- public boolean isVirtual(BaseOverride override) {
- return GenericJavaEntity.this.virtualAttributeOverrides.contains(override);
- }
-
- public BaseOverride setVirtual(boolean virtual, BaseOverride attributeOverride) {
- return GenericJavaEntity.this.setAttributeOverrideVirtual(virtual, (JavaAttributeOverride) attributeOverride);
- }
-
- public TypeMapping getTypeMapping() {
- return GenericJavaEntity.this;
- }
-
- public TextRange validationTextRange(CompilationUnit astRoot) {
- // TODO Auto-generated method stub
- return null;
- }
- }
-
- class AssociationOverrideOwner implements AssociationOverride.Owner {
-
- public RelationshipMapping getRelationshipMapping(String attributeName) {
- if (attributeName == null) {
- return null;
- }
- for (Iterator<PersistentAttribute> stream = getPersistentType().allAttributes(); stream.hasNext();) {
- PersistentAttribute persAttribute = stream.next();
- if (attributeName.equals(persAttribute.getName())) {
- if (persAttribute.getMapping() instanceof RelationshipMapping) {
- return (RelationshipMapping) persAttribute.getMapping();
- }
- }
- }
- return null;
- }
-
- public boolean isVirtual(BaseOverride override) {
- return GenericJavaEntity.this.virtualAssociationOverrides.contains(override);
- }
-
- public BaseOverride setVirtual(boolean virtual, BaseOverride attributeOverride) {
- return GenericJavaEntity.this.setAssociationOverrideVirtual(virtual, (JavaAssociationOverride) attributeOverride);
- }
-
- public TypeMapping getTypeMapping() {
- return GenericJavaEntity.this;
- }
-
- public TextRange validationTextRange(CompilationUnit astRoot) {
- // TODO Auto-generated method stub
- return null;
- }
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaGeneratedValue.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaGeneratedValue.java
deleted file mode 100644
index 7db737a10f..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaGeneratedValue.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.GeneratedValue;
-import org.eclipse.jpt.core.context.GenerationType;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaGeneratedValue;
-import org.eclipse.jpt.core.resource.java.GeneratedValueAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-
-public class GenericJavaGeneratedValue extends AbstractJavaJpaContextNode implements JavaGeneratedValue
-{
- protected GenerationType strategy;
-
- protected String generator;
-
- protected String defaultGenerator;
-
- protected GeneratedValueAnnotation generatedValueResource;
-
- public GenericJavaGeneratedValue(JavaAttributeMapping parent) {
- super(parent);
- }
-
- public void initializeFromResource(GeneratedValueAnnotation generatedValue) {
- this.generatedValueResource = generatedValue;
- this.strategy = this.strategy(generatedValue);
- this.generator = this.generator(generatedValue);
- }
-
- public GenerationType getStrategy() {
- return (this.getSpecifiedStrategy() == null) ? this.getDefaultStrategy() : this.getSpecifiedStrategy();
- }
-
- public GenerationType getDefaultStrategy() {
- return GeneratedValue.DEFAULT_STRATEGY;
- }
-
- public GenerationType getSpecifiedStrategy() {
- return this.strategy;
- }
-
- public void setSpecifiedStrategy(GenerationType newStrategy) {
- GenerationType oldStrategy = this.strategy;
- this.strategy = newStrategy;
- this.generatedValueResource.setStrategy(GenerationType.toJavaResourceModel(newStrategy));
- firePropertyChanged(GeneratedValue.SPECIFIED_STRATEGY_PROPERTY, oldStrategy, newStrategy);
- }
-
- protected void setSpecifiedStrategy_(GenerationType newStrategy) {
- GenerationType oldStrategy = this.strategy;
- this.strategy = newStrategy;
- firePropertyChanged(GeneratedValue.SPECIFIED_STRATEGY_PROPERTY, oldStrategy, newStrategy);
- }
-
- public String getGenerator() {
- return (this.getSpecifiedGenerator() == null) ? this.getDefaultGenerator() : this.getSpecifiedGenerator();
- }
-
- public String getSpecifiedGenerator() {
- return this.generator;
- }
-
- public String getDefaultGenerator() {
- return this.defaultGenerator;
- }
-
- public void setSpecifiedGenerator(String newGenerator) {
- String oldGenerator = this.generator;
- this.generator = newGenerator;
- this.generatedValueResource.setGenerator(newGenerator);
- firePropertyChanged(GeneratedValue.SPECIFIED_GENERATOR_PROPERTY, oldGenerator, newGenerator);
- }
-
- protected void setSpecifiedGenerator_(String newGenerator) {
- String oldGenerator = this.generator;
- this.generator = newGenerator;
- firePropertyChanged(GeneratedValue.SPECIFIED_GENERATOR_PROPERTY, oldGenerator, newGenerator);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.generatedValueResource.getTextRange(astRoot);
- }
-
- public TextRange getGeneratorTextRange(CompilationUnit astRoot) {
- return this.generatedValueResource.getGeneratorTextRange(astRoot);
- }
-
- // ********** resource model -> java context model **********
-
- public void update(GeneratedValueAnnotation generatedValue) {
- this.generatedValueResource = generatedValue;
- this.setSpecifiedStrategy_(this.strategy(generatedValue));
- this.setSpecifiedGenerator_(this.generator(generatedValue));
- }
-
- protected GenerationType strategy(GeneratedValueAnnotation generatedValue) {
- return GenerationType.fromJavaResourceModel(generatedValue.getStrategy());
- }
-
- protected String generator(GeneratedValueAnnotation generatedValue) {
- return generatedValue.getGenerator();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaIdMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaIdMapping.java
deleted file mode 100644
index 0dcec6455b..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaIdMapping.java
+++ /dev/null
@@ -1,475 +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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.ColumnMapping;
-import org.eclipse.jpt.core.context.Generator;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.java.JavaColumn;
-import org.eclipse.jpt.core.context.java.JavaGeneratedValue;
-import org.eclipse.jpt.core.context.java.JavaGenerator;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaSequenceGenerator;
-import org.eclipse.jpt.core.context.java.JavaTableGenerator;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.GeneratedValueAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotation> implements JavaIdMapping
-{
- protected final JavaColumn column;
-
- protected JavaGeneratedValue generatedValue;
-
- protected TemporalType temporal;
-
- protected JavaTableGenerator tableGenerator;
-
- protected JavaSequenceGenerator sequenceGenerator;
-
- public GenericJavaIdMapping(JavaPersistentAttribute parent) {
- super(parent);
- this.column = createJavaColumn();
- }
-
- protected JavaColumn createJavaColumn() {
- return getJpaFactory().buildJavaColumn(this, this);
- }
-
- @Override
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.initializeFromResource(resourcePersistentAttribute);
- this.column.initializeFromResource(this.getColumnResource());
- this.temporal = this.temporal(this.getTemporalResource());
- this.initializeTableGenerator(resourcePersistentAttribute);
- this.initializeSequenceGenerator(resourcePersistentAttribute);
- this.initializeGeneratedValue(resourcePersistentAttribute);
- this.updatePersistenceUnitGenerators();
- }
-
- protected void initializeTableGenerator(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- TableGeneratorAnnotation tableGeneratorResource = tableGenerator(resourcePersistentAttribute);
- if (tableGeneratorResource != null) {
- this.tableGenerator = getJpaFactory().buildJavaTableGenerator(this);
- this.tableGenerator.initializeFromResource(tableGeneratorResource);
- }
- }
-
- protected void initializeSequenceGenerator(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- SequenceGeneratorAnnotation sequenceGeneratorResource = sequenceGenerator(resourcePersistentAttribute);
- if (sequenceGeneratorResource != null) {
- this.sequenceGenerator = getJpaFactory().buildJavaSequenceGenerator(this);
- this.sequenceGenerator.initializeFromResource(sequenceGeneratorResource);
- }
- }
-
- protected void initializeGeneratedValue(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- GeneratedValueAnnotation generatedValueResource = generatedValue(resourcePersistentAttribute);
- if (generatedValueResource != null) {
- this.generatedValue = getJpaFactory().buildJavaGeneratedValue(this);
- this.generatedValue.initializeFromResource(generatedValueResource);
- }
- }
-
- protected TemporalAnnotation getTemporalResource() {
- return (TemporalAnnotation) getResourcePersistentAttribute().getNonNullAnnotation(TemporalAnnotation.ANNOTATION_NAME);
- }
-
- public ColumnAnnotation getColumnResource() {
- return (ColumnAnnotation) getResourcePersistentAttribute().getNonNullAnnotation(ColumnAnnotation.ANNOTATION_NAME);
- }
-
- //************** IJavaAttributeMapping implementation ***************
-
- public String getKey() {
- return MappingKeys.ID_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return IdAnnotation.ANNOTATION_NAME;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.COLUMN,
- JPA.GENERATED_VALUE,
- JPA.TEMPORAL,
- JPA.TABLE_GENERATOR,
- JPA.SEQUENCE_GENERATOR);
- }
-
- public String getDefaultColumnName() {
- return getAttributeName();
- }
-
- public String getDefaultTableName() {
- return getTypeMapping().getTableName();
- }
-
- //************** IIdMapping implementation ***************
-
- public JavaColumn getColumn() {
- return this.column;
- }
-
- public TemporalType getTemporal() {
- return this.temporal;
- }
-
- public void setTemporal(TemporalType newTemporal) {
- TemporalType oldTemporal = this.temporal;
- this.temporal = newTemporal;
- this.getTemporalResource().setValue(TemporalType.toJavaResourceModel(newTemporal));
- firePropertyChanged(ColumnMapping.TEMPORAL_PROPERTY, oldTemporal, newTemporal);
- }
-
- /**
- * internal setter used only for updating from the resource model.
- * There were problems with InvalidThreadAccess exceptions in the UI
- * when you set a value from the UI and the annotation doesn't exist yet.
- * Adding the annotation causes an update to occur and then the exception.
- */
- protected void setTemporal_(TemporalType newTemporal) {
- TemporalType oldTemporal = this.temporal;
- this.temporal = newTemporal;
- firePropertyChanged(ColumnMapping.TEMPORAL_PROPERTY, oldTemporal, newTemporal);
- }
-
- public JavaGeneratedValue addGeneratedValue() {
- if (getGeneratedValue() != null) {
- throw new IllegalStateException("gemeratedValue already exists");
- }
- this.generatedValue = getJpaFactory().buildJavaGeneratedValue(this);
- GeneratedValueAnnotation generatedValueResource = (GeneratedValueAnnotation) getResourcePersistentAttribute().addAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME);
- this.generatedValue.initializeFromResource(generatedValueResource);
- firePropertyChanged(GENERATED_VALUE_PROPERTY, null, this.generatedValue);
- return this.generatedValue;
- }
-
- public void removeGeneratedValue() {
- if (getGeneratedValue() == null) {
- throw new IllegalStateException("gemeratedValue does not exist, cannot be removed");
- }
- JavaGeneratedValue oldGeneratedValue = this.generatedValue;
- this.generatedValue = null;
- getResourcePersistentAttribute().removeAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME);
- firePropertyChanged(GENERATED_VALUE_PROPERTY, oldGeneratedValue, null);
- }
-
- public JavaGeneratedValue getGeneratedValue() {
- return this.generatedValue;
- }
-
- protected void setGeneratedValue(JavaGeneratedValue newGeneratedValue) {
- JavaGeneratedValue oldGeneratedValue = this.generatedValue;
- this.generatedValue = newGeneratedValue;
- firePropertyChanged(GENERATED_VALUE_PROPERTY, oldGeneratedValue, newGeneratedValue);
- }
-
- public JavaTableGenerator addTableGenerator() {
- if (getTableGenerator() != null) {
- throw new IllegalStateException("tableGenerator already exists");
- }
- this.tableGenerator = getJpaFactory().buildJavaTableGenerator(this);
- TableGeneratorAnnotation tableGeneratorResource = (TableGeneratorAnnotation) getResourcePersistentAttribute().addAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME);
- this.tableGenerator.initializeFromResource(tableGeneratorResource);
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, null, this.tableGenerator);
- return this.tableGenerator;
- }
-
- public void removeTableGenerator() {
- if (getTableGenerator() == null) {
- throw new IllegalStateException("tableGenerator does not exist, cannot be removed");
- }
- JavaTableGenerator oldTableGenerator = this.tableGenerator;
- this.tableGenerator = null;
- getResourcePersistentAttribute().removeAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME);
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, oldTableGenerator, null);
- }
-
- public JavaTableGenerator getTableGenerator() {
- return this.tableGenerator;
- }
-
- protected void setTableGenerator(JavaTableGenerator newTableGenerator) {
- JavaTableGenerator oldTableGenerator = this.tableGenerator;
- this.tableGenerator = newTableGenerator;
- firePropertyChanged(TABLE_GENERATOR_PROPERTY, oldTableGenerator, newTableGenerator);
- }
-
- public JavaSequenceGenerator addSequenceGenerator() {
- if (getSequenceGenerator() != null) {
- throw new IllegalStateException("sequenceGenerator already exists");
- }
-
- this.sequenceGenerator = getJpaFactory().buildJavaSequenceGenerator(this);
- SequenceGeneratorAnnotation sequenceGeneratorResource = (SequenceGeneratorAnnotation) getResourcePersistentAttribute().addAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME);
- this.sequenceGenerator.initializeFromResource(sequenceGeneratorResource);
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, null, this.sequenceGenerator);
- return this.sequenceGenerator;
- }
-
- public void removeSequenceGenerator() {
- if (getSequenceGenerator() == null) {
- throw new IllegalStateException("sequenceGenerator does not exist, cannot be removed");
- }
- JavaSequenceGenerator oldSequenceGenerator = this.sequenceGenerator;
- this.sequenceGenerator = null;
- getResourcePersistentAttribute().removeAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME);
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, oldSequenceGenerator, null);
- }
-
- public JavaSequenceGenerator getSequenceGenerator() {
- return this.sequenceGenerator;
- }
-
- protected void setSequenceGenerator(JavaSequenceGenerator newSequenceGenerator) {
- JavaSequenceGenerator oldSequenceGenerator = this.sequenceGenerator;
- this.sequenceGenerator = newSequenceGenerator;
- firePropertyChanged(SEQUENCE_GENERATOR_PROPERTY, oldSequenceGenerator, newSequenceGenerator);
- }
-
- @SuppressWarnings("unchecked")
- protected Iterator<JavaGenerator> generators() {
- return new CompositeIterator<JavaGenerator>(
- (getSequenceGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getSequenceGenerator()),
- (getTableGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getTableGenerator()));
- }
-
- @Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.update(resourcePersistentAttribute);
- this.column.update(this.getColumnResource());
- this.setTemporal_(this.temporal(this.getTemporalResource()));
- this.updateTableGenerator(resourcePersistentAttribute);
- this.updateSequenceGenerator(resourcePersistentAttribute);
- this.updateGeneratedValue(resourcePersistentAttribute);
- this.updatePersistenceUnitGenerators();
- }
-
- protected TemporalType temporal(TemporalAnnotation temporal) {
- return TemporalType.fromJavaResourceModel(temporal.getValue());
- }
-
- protected void updateTableGenerator(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- TableGeneratorAnnotation tableGeneratorResource = tableGenerator(resourcePersistentAttribute);
- if (tableGeneratorResource == null) {
- if (getTableGenerator() != null) {
- setTableGenerator(null);
- }
- }
- else {
- if (getTableGenerator() == null) {
- setTableGenerator(getJpaFactory().buildJavaTableGenerator(this));
- getTableGenerator().initializeFromResource(tableGeneratorResource);
- }
- else {
- getTableGenerator().update(tableGeneratorResource);
- }
- }
- }
-
- protected void updateSequenceGenerator(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- SequenceGeneratorAnnotation sequenceGeneratorResource = sequenceGenerator(resourcePersistentAttribute);
- if (sequenceGeneratorResource == null) {
- if (getSequenceGenerator() != null) {
- setSequenceGenerator(null);
- }
- }
- else {
- if (getSequenceGenerator() == null) {
- setSequenceGenerator(getJpaFactory().buildJavaSequenceGenerator(this));
- getSequenceGenerator().initializeFromResource(sequenceGeneratorResource);
- }
- else {
- getSequenceGenerator().update(sequenceGeneratorResource);
- }
- }
- }
-
- protected void updateGeneratedValue(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- GeneratedValueAnnotation generatedValueResource = generatedValue(resourcePersistentAttribute);
- if (generatedValueResource == null) {
- if (getGeneratedValue() != null) {
- setGeneratedValue(null);
- }
- }
- else {
- if (getGeneratedValue() == null) {
- setGeneratedValue(getJpaFactory().buildJavaGeneratedValue(this));
- getGeneratedValue().initializeFromResource(generatedValueResource);
- }
- else {
- getGeneratedValue().update(generatedValueResource);
- }
- }
- }
-
- protected TableGeneratorAnnotation tableGenerator(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- return (TableGeneratorAnnotation) resourcePersistentAttribute.getAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME);
- }
-
- protected SequenceGeneratorAnnotation sequenceGenerator(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- return (SequenceGeneratorAnnotation) resourcePersistentAttribute.getAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME);
- }
-
- protected GeneratedValueAnnotation generatedValue(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- return (GeneratedValueAnnotation) resourcePersistentAttribute.getAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME);
- }
-
- protected void updatePersistenceUnitGenerators() {
- if (getTableGenerator() != null) {
- getPersistenceUnit().addGenerator(getTableGenerator());
- }
-
- if (getSequenceGenerator() != null) {
- getPersistenceUnit().addGenerator(getSequenceGenerator());
- }
- }
-
-
- // *************************************************************************
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- result = this.getColumn().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- return null;
- }
-
- @Override
- public String getPrimaryKeyColumnName() {
- return this.getColumn().getName();
- }
-
- @Override
- public boolean isOverridableAttributeMapping() {
- return true;
- }
-
- @Override
- public boolean isIdMapping() {
- return true;
- }
-
- //*********** Validation ************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- addColumnMessages(messages, astRoot);
- addGeneratedValueMessages(messages, astRoot);
- addGeneratorMessages(messages, astRoot);
- }
-
- protected void addColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
- JavaColumn column = this.getColumn();
- String table = column.getTable();
- boolean doContinue = entityOwned() && column.connectionProfileIsActive();
-
- if (doContinue && this.getTypeMapping().tableNameIsInvalid(table)) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {table, column.getName()},
- column, column.getTableTextRange(astRoot))
- );
- doContinue = false;
- }
-
- if (doContinue && ! column.isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {column.getName()},
- column, column.getNameTextRange(astRoot))
- );
- }
- }
-
- protected void addGeneratedValueMessages(List<IMessage> messages, CompilationUnit astRoot) {
- JavaGeneratedValue generatedValue = this.getGeneratedValue();
- if (generatedValue == null) {
- return;
- }
- String generatorName = generatedValue.getGenerator();
- if (generatorName == null) {
- return;
- }
-
- for (Generator nextMasterGenerator : CollectionTools.iterable(getPersistenceUnit().allGenerators())) {
- if (generatorName.equals(nextMasterGenerator.getName())) {
- return;
- }
- }
-
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.ID_MAPPING_UNRESOLVED_GENERATOR_NAME,
- new String[] {generatorName},
- this,
- generatedValue.getGeneratorTextRange(astRoot))
- );
- }
-
- protected void addGeneratorMessages(List<IMessage> messages, CompilationUnit astRoot) {
- List<Generator> masterList = CollectionTools.list(getPersistenceUnit().allGenerators());
-
- for (Iterator<JavaGenerator> stream = this.generators(); stream.hasNext() ; ) {
- JavaGenerator current = stream.next();
- masterList.remove(current);
-
- for (Generator each : masterList) {
- if (! each.overrides(current) && each.getName() != null && each.getName().equals(current.getName())) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.GENERATOR_DUPLICATE_NAME,
- new String[] {current.getName()},
- current,
- current.getNameTextRange(astRoot))
- );
- }
- }
-
- masterList.add(current);
- }
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinColumn.java
deleted file mode 100644
index 35d5029cef..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinColumn.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.BaseJoinColumn;
-import org.eclipse.jpt.core.context.RelationshipMapping;
-import org.eclipse.jpt.core.context.java.JavaJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.internal.context.MappingTools;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-
-public class GenericJavaJoinColumn extends AbstractJavaBaseColumn<JoinColumnAnnotation> implements JavaJoinColumn
-{
-
- protected String specifiedReferencedColumnName;
-
- protected String defaultReferencedColumnName;
-
- protected JoinColumnAnnotation joinColumn;
-
- public GenericJavaJoinColumn(JavaJpaContextNode parent, JavaJoinColumn.Owner owner) {
- super(parent, owner);
- }
-
- @Override
- protected JoinColumnAnnotation getColumnResource() {
- return this.joinColumn;
- }
-
- public String getReferencedColumnName() {
- return (this.specifiedReferencedColumnName == null) ? this.defaultReferencedColumnName : this.specifiedReferencedColumnName;
- }
-
- public String getSpecifiedReferencedColumnName() {
- return this.specifiedReferencedColumnName;
- }
-
- public void setSpecifiedReferencedColumnName(String newSpecifiedReferencedColumnName) {
- String oldSpecifiedReferencedColumnName = this.specifiedReferencedColumnName;
- this.specifiedReferencedColumnName = newSpecifiedReferencedColumnName;
- this.joinColumn.setReferencedColumnName(newSpecifiedReferencedColumnName);
- firePropertyChanged(BaseJoinColumn.SPECIFIED_REFERENCED_COLUMN_NAME_PROPERTY, oldSpecifiedReferencedColumnName, newSpecifiedReferencedColumnName);
- }
-
- protected void setSpecifiedReferencedColumnName_(String newSpecifiedReferencedColumnName) {
- String oldSpecifiedReferencedColumnName = this.specifiedReferencedColumnName;
- this.specifiedReferencedColumnName = newSpecifiedReferencedColumnName;
- firePropertyChanged(BaseJoinColumn.SPECIFIED_REFERENCED_COLUMN_NAME_PROPERTY, oldSpecifiedReferencedColumnName, newSpecifiedReferencedColumnName);
- }
-
- public String getDefaultReferencedColumnName() {
- return this.defaultReferencedColumnName;
- }
-
- protected void setDefaultReferencedColumnName(String newDefaultReferencedColumnName) {
- String oldDefaultReferencedColumnName = this.defaultReferencedColumnName;
- this.defaultReferencedColumnName = newDefaultReferencedColumnName;
- firePropertyChanged(BaseJoinColumn.DEFAULT_REFERENCED_COLUMN_NAME_PROPERTY, oldDefaultReferencedColumnName, newDefaultReferencedColumnName);
- }
-
-
- @Override
- public JavaJoinColumn.Owner getOwner() {
- return (JavaJoinColumn.Owner) super.getOwner();
- }
-
- public boolean isVirtual() {
- return getOwner().isVirtual(this);
- }
-
- public Table getDbReferencedColumnTable() {
- return getOwner().getDbReferencedColumnTable();
- }
-
- public Column getDbReferencedColumn() {
- Table table = this.getDbReferencedColumnTable();
- return (table == null) ? null : table.columnNamed(this.getReferencedColumnName());
- }
-
- @Override
- public boolean tableIsAllowed() {
- return this.getOwner().tableIsAllowed();
- }
-
- public boolean referencedColumnNameTouches(int pos, CompilationUnit astRoot) {
- return getColumnResource().referencedColumnNameTouches(pos, astRoot);
- }
-
- private Iterator<String> candidateReferencedColumnNames() {
- Table table = this.getOwner().getDbReferencedColumnTable();
- return (table != null) ? table.columnNames() : EmptyIterator.<String> instance();
- }
-
- private Iterator<String> candidateReferencedColumnNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateReferencedColumnNames(), filter);
- }
-
- private Iterator<String> quotedCandidateReferencedColumnNames(Filter<String> filter) {
- return StringTools.quote(this.candidateReferencedColumnNames(filter));
- }
-
- @Override
- public Iterator<String> connectedJavaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.connectedJavaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.referencedColumnNameTouches(pos, astRoot)) {
- return this.quotedCandidateReferencedColumnNames(filter);
- }
- return null;
- }
-
- public boolean isReferencedColumnResolved() {
- return getDbReferencedColumn() != null;
- }
-
- public TextRange getReferencedColumnNameTextRange(CompilationUnit astRoot) {
- TextRange textRange = getColumnResource().getReferencedColumnNameTextRange(astRoot);
- return (textRange != null) ? textRange : getOwner().getValidationTextRange(astRoot);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void initializeFromResource(JoinColumnAnnotation joinColumn) {
- this.joinColumn = joinColumn;
- super.initializeFromResource(joinColumn);
- this.specifiedReferencedColumnName = joinColumn.getReferencedColumnName();
- this.defaultReferencedColumnName = this.defaultReferencedColumnName();
- }
-
- @Override
- public void update(JoinColumnAnnotation joinColumn) {
- this.joinColumn = joinColumn;
- super.update(joinColumn);
- this.setSpecifiedReferencedColumnName_(joinColumn.getReferencedColumnName());
- this.setDefaultReferencedColumnName(this.defaultReferencedColumnName());
- }
-
- @Override
- protected String defaultName() {
- RelationshipMapping relationshipMapping = getOwner().getRelationshipMapping();
- if (relationshipMapping == null) {
- return null;
- }
- if (!getOwner().getRelationshipMapping().isRelationshipOwner()) {
- return null;
- }
- return MappingTools.buildJoinColumnDefaultName(this);
- }
-
- protected String defaultReferencedColumnName() {
- RelationshipMapping relationshipMapping = getOwner().getRelationshipMapping();
- if (relationshipMapping == null) {
- return null;
- }
- if (!getOwner().getRelationshipMapping().isRelationshipOwner()) {
- return null;
- }
- return MappingTools.buildJoinColumnDefaultReferencedColumnName(this);
- }
-
- @Override
- protected String defaultTable() {
- RelationshipMapping relationshipMapping = getOwner().getRelationshipMapping();
- if (relationshipMapping == null) {
- return null;
- }
- if (!getOwner().getRelationshipMapping().isRelationshipOwner()) {
- return null;
- }
- return super.defaultTable();
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinTable.java
deleted file mode 100644
index b759f0e36f..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinTable.java
+++ /dev/null
@@ -1,739 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.BaseJoinColumn;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.JoinTable;
-import org.eclipse.jpt.core.context.NonOwningMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.RelationshipMapping;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.java.JavaJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaJoinTable;
-import org.eclipse.jpt.core.context.java.JavaRelationshipMapping;
-import org.eclipse.jpt.core.internal.context.MappingTools;
-import org.eclipse.jpt.core.internal.resource.java.NullJoinColumn;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JoinTableAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementListIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public class GenericJavaJoinTable extends AbstractJavaTable implements JavaJoinTable
-{
- protected final List<JavaJoinColumn> specifiedJoinColumns;
-
- protected JavaJoinColumn defaultJoinColumn;
-
- protected final List<JavaJoinColumn> specifiedInverseJoinColumns;
-
- protected JavaJoinColumn defaultInverseJoinColumn;
-
- protected JavaResourcePersistentAttribute attributeResource;
-
- public GenericJavaJoinTable(JavaRelationshipMapping parent) {
- super(parent);
- this.specifiedJoinColumns = new ArrayList<JavaJoinColumn>();
- this.specifiedInverseJoinColumns = new ArrayList<JavaJoinColumn>();
- }
-
- @Override
- public JavaRelationshipMapping getParent() {
- return (JavaRelationshipMapping) super.getParent();
- }
-
- //******************* AbstractJavaTable implementation *****************
-
- @Override
- protected String getAnnotationName() {
- return JoinTableAnnotation.ANNOTATION_NAME;
- }
-
- /**
- * Default join table name from the JPA spec:
- * The concatenated names of the two associated primary
- * entity tables, separated by a underscore.
- *
- * [owning table name]_[target table name]
- */
- @Override
- protected String defaultName() {
- return MappingTools.buildJoinTableDefaultName(getRelationshipMapping());
- }
-
- @Override
- protected String defaultCatalog() {
- if (!getRelationshipMapping().isRelationshipOwner()) {
- return null;
- }
- return super.defaultCatalog();
- }
-
- @Override
- protected String defaultSchema() {
- if (!getRelationshipMapping().isRelationshipOwner()) {
- return null;
- }
- return super.defaultSchema();
- }
-
- @Override
- protected JoinTableAnnotation getTableResource() {
- return (JoinTableAnnotation) this.attributeResource.getNonNullAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
- }
-
- /**
- * Return the join table java resource, null if the annotation does not exist.
- * Use tableResource() if you want a non null implementation
- */
- protected JoinTableAnnotation getJoinTableResource() {
- return (JoinTableAnnotation) this.attributeResource.getAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
- }
-
- protected void addJoinTableResource() {
- this.attributeResource.addAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
- }
-
-
- //******************* IJoinTable implementation *****************
-
- public ListIterator<JavaJoinColumn> joinColumns() {
- return this.containsSpecifiedJoinColumns() ? this.specifiedJoinColumns() : this.defaultJoinColumns();
- }
-
- public int joinColumnsSize() {
- return this.containsSpecifiedJoinColumns() ? this.specifiedJoinColumnsSize() : this.defaultJoinColumnsSize();
- }
-
- public JavaJoinColumn getDefaultJoinColumn() {
- return this.defaultJoinColumn;
- }
-
- protected void setDefaultJoinColumn(JavaJoinColumn newJoinColumn) {
- JavaJoinColumn oldJoinColumn = this.defaultJoinColumn;
- this.defaultJoinColumn = newJoinColumn;
- firePropertyChanged(JoinTable.DEFAULT_JOIN_COLUMN, oldJoinColumn, newJoinColumn);
- }
-
- protected ListIterator<JavaJoinColumn> defaultJoinColumns() {
- if (this.defaultJoinColumn != null) {
- return new SingleElementListIterator<JavaJoinColumn>(this.defaultJoinColumn);
- }
- return EmptyListIterator.instance();
- }
-
- protected int defaultJoinColumnsSize() {
- return (this.defaultJoinColumn == null) ? 0 : 1;
- }
-
- public ListIterator<JavaJoinColumn> specifiedJoinColumns() {
- return new CloneListIterator<JavaJoinColumn>(this.specifiedJoinColumns);
- }
-
- public int specifiedJoinColumnsSize() {
- return this.specifiedJoinColumns.size();
- }
-
- public boolean containsSpecifiedJoinColumns() {
- return !this.specifiedJoinColumns.isEmpty();
- }
-
- public JavaJoinColumn addSpecifiedJoinColumn(int index) {
- JoinColumn oldDefaultJoinColumn = this.getDefaultJoinColumn();
- if (oldDefaultJoinColumn != null) {
- //null the default join column now if one already exists.
- //if one does not exist, there is already a specified join column.
- //Remove it now so that it doesn't get removed during an update and
- //cause change notifications to be sent to the UI in the wrong order
- this.defaultJoinColumn = null;
- }
- if (getJoinTableResource() == null) {
- //Add the JoinTable before creating the specifiedJoinColumn.
- //Otherwise we will remove it and create another during an update
- //from the java resource model
- addJoinTableResource();
- }
- JavaJoinColumn joinColumn = getJpaFactory().buildJavaJoinColumn(this, createJoinColumnOwner());
- this.specifiedJoinColumns.add(index, joinColumn);
- JoinColumnAnnotation joinColumnResource = this.getTableResource().addJoinColumn(index);
- joinColumn.initializeFromResource(joinColumnResource);
- this.fireItemAdded(JoinTable.SPECIFIED_JOIN_COLUMNS_LIST, index, joinColumn);
- if (oldDefaultJoinColumn != null) {
- this.firePropertyChanged(JoinTable.DEFAULT_JOIN_COLUMN, oldDefaultJoinColumn, null);
- }
- return joinColumn;
- }
-
- protected void addSpecifiedJoinColumn(int index, JavaJoinColumn joinColumn) {
- addItemToList(index, joinColumn, this.specifiedJoinColumns, JoinTable.SPECIFIED_JOIN_COLUMNS_LIST);
- }
-
- public void removeSpecifiedJoinColumn(JoinColumn joinColumn) {
- this.removeSpecifiedJoinColumn(this.specifiedJoinColumns.indexOf(joinColumn));
- }
-
- public void removeSpecifiedJoinColumn(int index) {
- JavaJoinColumn removedJoinColumn = this.specifiedJoinColumns.remove(index);
- if (!containsSpecifiedJoinColumns()) {
- //create the defaultJoinColumn now or this will happen during project update
- //after removing the join column from the resource model. That causes problems
- //in the UI because the change notifications end up in the wrong order.
- this.defaultJoinColumn = buildJoinColumn(new NullJoinColumn(getTableResource()));
- }
- this.getTableResource().removeJoinColumn(index);
- fireItemRemoved(JoinTable.SPECIFIED_JOIN_COLUMNS_LIST, index, removedJoinColumn);
- if (this.defaultJoinColumn != null) {
- //fire change notification if a defaultJoinColumn was created above
- this.firePropertyChanged(JoinTable.DEFAULT_JOIN_COLUMN, null, this.defaultJoinColumn);
- }
- }
-
- protected void removeSpecifiedJoinColumn_(JavaJoinColumn joinColumn) {
- removeItemFromList(joinColumn, this.specifiedJoinColumns, JoinTable.SPECIFIED_JOIN_COLUMNS_LIST);
- }
-
- public void moveSpecifiedJoinColumn(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.specifiedJoinColumns, targetIndex, sourceIndex);
- this.getTableResource().moveJoinColumn(targetIndex, sourceIndex);
- fireItemMoved(JoinTable.SPECIFIED_JOIN_COLUMNS_LIST, targetIndex, sourceIndex);
- }
-
- public ListIterator<JavaJoinColumn> inverseJoinColumns() {
- return this.containsSpecifiedInverseJoinColumns() ? this.specifiedInverseJoinColumns() : this.defaultInverseJoinColumns();
- }
-
- public int inverseJoinColumnsSize() {
- return this.containsSpecifiedInverseJoinColumns() ? this.specifiedInverseJoinColumnsSize() : this.defaultInverseJoinColumnsSize();
- }
-
- public JavaJoinColumn getDefaultInverseJoinColumn() {
- return this.defaultInverseJoinColumn;
- }
-
- protected void setDefaultInverseJoinColumn(JavaJoinColumn newInverseJoinColumn) {
- JavaJoinColumn oldInverseJoinColumn = this.defaultInverseJoinColumn;
- this.defaultInverseJoinColumn = newInverseJoinColumn;
- firePropertyChanged(JoinTable.DEFAULT_INVERSE_JOIN_COLUMN, oldInverseJoinColumn, newInverseJoinColumn);
- }
-
- protected ListIterator<JavaJoinColumn> defaultInverseJoinColumns() {
- if (this.defaultInverseJoinColumn != null) {
- return new SingleElementListIterator<JavaJoinColumn>(this.defaultInverseJoinColumn);
- }
- return EmptyListIterator.instance();
- }
-
- protected int defaultInverseJoinColumnsSize() {
- return (this.defaultInverseJoinColumn == null) ? 0 : 1;
- }
-
- public ListIterator<JavaJoinColumn> specifiedInverseJoinColumns() {
- return new CloneListIterator<JavaJoinColumn>(this.specifiedInverseJoinColumns);
- }
-
- public int specifiedInverseJoinColumnsSize() {
- return this.specifiedInverseJoinColumns.size();
- }
-
- public boolean containsSpecifiedInverseJoinColumns() {
- return !this.specifiedInverseJoinColumns.isEmpty();
- }
-
- public JavaJoinColumn addSpecifiedInverseJoinColumn(int index) {
- JoinColumn oldDefaultInverseJoinColumn = this.getDefaultInverseJoinColumn();
- if (oldDefaultInverseJoinColumn != null) {
- //null the default join column now if one already exists.
- //if one does not exist, there is already a specified join column.
- //Remove it now so that it doesn't get removed during an update and
- //cause change notifications to be sent to the UI in the wrong order
- this.defaultInverseJoinColumn = null;
- }
- if (getJoinTableResource() == null) {
- //Add the JoinTable before creating the specifiedJoinColumn.
- //Otherwise we will remove it and create another during an update
- //from the java resource model
- addJoinTableResource();
- }
- JavaJoinColumn inverseJoinColumn = getJpaFactory().buildJavaJoinColumn(this, createInverseJoinColumnOwner());
- this.specifiedInverseJoinColumns.add(index, inverseJoinColumn);
- JoinColumnAnnotation joinColumnResource = this.getTableResource().addInverseJoinColumn(index);
- inverseJoinColumn.initializeFromResource(joinColumnResource);
- this.fireItemAdded(JoinTable.SPECIFIED_INVERSE_JOIN_COLUMNS_LIST, index, inverseJoinColumn);
- if (oldDefaultInverseJoinColumn != null) {
- this.firePropertyChanged(JoinTable.DEFAULT_INVERSE_JOIN_COLUMN, oldDefaultInverseJoinColumn, null);
- }
- return inverseJoinColumn;
- }
-
- protected void addSpecifiedInverseJoinColumn(int index, JavaJoinColumn inverseJoinColumn) {
- addItemToList(index, inverseJoinColumn, this.specifiedInverseJoinColumns, JoinTable.SPECIFIED_INVERSE_JOIN_COLUMNS_LIST);
- }
-
- public void removeSpecifiedInverseJoinColumn(JoinColumn inverseJoinColumn) {
- this.removeSpecifiedInverseJoinColumn(this.specifiedInverseJoinColumns.indexOf(inverseJoinColumn));
- }
-
- public void removeSpecifiedInverseJoinColumn(int index) {
- JavaJoinColumn removedJoinColumn = this.specifiedInverseJoinColumns.remove(index);
- if (!containsSpecifiedInverseJoinColumns()) {
- //create the defaultJoinColumn now or this will happen during project update
- //after removing the join column from the resource model. That causes problems
- //in the UI because the change notifications end up in the wrong order.
- this.defaultInverseJoinColumn = buildInverseJoinColumn(new NullJoinColumn(getTableResource()));
- }
- this.getTableResource().removeInverseJoinColumn(index);
- fireItemRemoved(JoinTable.SPECIFIED_INVERSE_JOIN_COLUMNS_LIST, index, removedJoinColumn);
- if (this.defaultInverseJoinColumn != null) {
- //fire change notification if a defaultJoinColumn was created above
- this.firePropertyChanged(JoinTable.DEFAULT_INVERSE_JOIN_COLUMN, null, this.defaultInverseJoinColumn);
- }
- }
-
- protected void removeSpecifiedInverseJoinColumn_(JavaJoinColumn joinColumn) {
- removeItemFromList(joinColumn, this.specifiedInverseJoinColumns, JoinTable.SPECIFIED_INVERSE_JOIN_COLUMNS_LIST);
- }
-
- public void moveSpecifiedInverseJoinColumn(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.specifiedInverseJoinColumns, targetIndex, sourceIndex);
- this.getTableResource().moveInverseJoinColumn(targetIndex, sourceIndex);
- fireItemMoved(JoinTable.SPECIFIED_INVERSE_JOIN_COLUMNS_LIST, targetIndex, sourceIndex);
- }
-
-
- public RelationshipMapping getRelationshipMapping() {
- return this.getParent();
- }
-
- public boolean isSpecified() {
- return getJoinTableResource() != null;
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- for (JavaJoinColumn column : CollectionTools.iterable(this.joinColumns())) {
- result = column.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- for (JavaJoinColumn column : CollectionTools.iterable(this.inverseJoinColumns())) {
- result = column.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- return null;
- }
-
- protected JavaJoinColumn.Owner createJoinColumnOwner() {
- return new JoinColumnOwner();
- }
-
- protected JavaJoinColumn.Owner createInverseJoinColumnOwner() {
- return new InverseJoinColumnOwner();
- }
-
- public void initializeFromResource(JavaResourcePersistentAttribute attributeResource) {
- this.attributeResource = attributeResource;
- JoinTableAnnotation joinTable = getTableResource();
- this.initializeFromResource(joinTable);
- this.initializeSpecifiedJoinColumns(joinTable);
- this.initializeDefaultJoinColumn(joinTable);
- this.initializeSpecifiedInverseJoinColumns(joinTable);
- this.initializeDefaultInverseJoinColumn(joinTable);
- }
-
- protected void initializeSpecifiedJoinColumns(JoinTableAnnotation joinTableResource) {
- ListIterator<JoinColumnAnnotation> annotations = joinTableResource.joinColumns();
-
- while(annotations.hasNext()) {
- this.specifiedJoinColumns.add(buildJoinColumn(annotations.next()));
- }
- }
-
- protected boolean shouldBuildDefaultJoinColumn() {
- return !containsSpecifiedJoinColumns() && getRelationshipMapping().isRelationshipOwner();
- }
-
- protected void initializeDefaultJoinColumn(JoinTableAnnotation joinTable) {
- if (!shouldBuildDefaultJoinColumn()) {
- return;
- }
- this.defaultJoinColumn = buildJoinColumn(new NullJoinColumn(joinTable));
- }
-
- protected void initializeSpecifiedInverseJoinColumns(JoinTableAnnotation joinTableResource) {
- ListIterator<JoinColumnAnnotation> annotations = joinTableResource.inverseJoinColumns();
-
- while(annotations.hasNext()) {
- this.specifiedInverseJoinColumns.add(buildInverseJoinColumn(annotations.next()));
- }
- }
-
- protected boolean shouldBuildDefaultInverseJoinColumn() {
- return !containsSpecifiedInverseJoinColumns() && getRelationshipMapping().isRelationshipOwner();
- }
-
- protected void initializeDefaultInverseJoinColumn(JoinTableAnnotation joinTable) {
- if (!shouldBuildDefaultInverseJoinColumn()) {
- return;
- }
- this.defaultInverseJoinColumn = buildInverseJoinColumn(new NullJoinColumn(joinTable));
- }
-
- public void update(JavaResourcePersistentAttribute attributeResource) {
- this.attributeResource = attributeResource;
- JoinTableAnnotation joinTable = getTableResource();
- this.update(joinTable);
- this.updateSpecifiedJoinColumns(joinTable);
- this.updateDefaultJoinColumn(joinTable);
- this.updateSpecifiedInverseJoinColumns(joinTable);
- this.updateDefaultInverseJoinColumn(joinTable);
- }
-
- protected void updateSpecifiedJoinColumns(JoinTableAnnotation joinTableResource) {
- ListIterator<JavaJoinColumn> joinColumns = specifiedJoinColumns();
- ListIterator<JoinColumnAnnotation> resourceJoinColumns = joinTableResource.joinColumns();
-
- while (joinColumns.hasNext()) {
- JavaJoinColumn joinColumn = joinColumns.next();
- if (resourceJoinColumns.hasNext()) {
- joinColumn.update(resourceJoinColumns.next());
- }
- else {
- removeSpecifiedJoinColumn_(joinColumn);
- }
- }
-
- while (resourceJoinColumns.hasNext()) {
- addSpecifiedJoinColumn(specifiedJoinColumnsSize(), buildJoinColumn(resourceJoinColumns.next()));
- }
- }
-
- protected void updateDefaultJoinColumn(JoinTableAnnotation joinTable) {
- if (!shouldBuildDefaultJoinColumn()) {
- setDefaultJoinColumn(null);
- return;
- }
- if (getDefaultJoinColumn() == null) {
- this.setDefaultJoinColumn(buildJoinColumn(new NullJoinColumn(joinTable)));
- }
- else {
- this.defaultJoinColumn.update(new NullJoinColumn(joinTable));
- }
- }
-
- protected void updateSpecifiedInverseJoinColumns(JoinTableAnnotation joinTableResource) {
- ListIterator<JavaJoinColumn> joinColumns = specifiedInverseJoinColumns();
- ListIterator<JoinColumnAnnotation> resourceJoinColumns = joinTableResource.inverseJoinColumns();
-
- while (joinColumns.hasNext()) {
- JavaJoinColumn joinColumn = joinColumns.next();
- if (resourceJoinColumns.hasNext()) {
- joinColumn.update(resourceJoinColumns.next());
- }
- else {
- removeSpecifiedInverseJoinColumn_(joinColumn);
- }
- }
-
- while (resourceJoinColumns.hasNext()) {
- addSpecifiedInverseJoinColumn(specifiedInverseJoinColumnsSize(), buildInverseJoinColumn(resourceJoinColumns.next()));
- }
- }
-
- protected void updateDefaultInverseJoinColumn(JoinTableAnnotation joinTable) {
- if (!shouldBuildDefaultInverseJoinColumn()) {
- setDefaultInverseJoinColumn(null);
- return;
- }
- if (getDefaultInverseJoinColumn() == null) {
- this.setDefaultInverseJoinColumn(buildInverseJoinColumn(new NullJoinColumn(joinTable)));
- }
- else {
- this.defaultInverseJoinColumn.update(new NullJoinColumn(joinTable));
- }
- }
-
- protected JavaJoinColumn buildJoinColumn(JoinColumnAnnotation joinColumnResource) {
- JavaJoinColumn joinColumn = getJpaFactory().buildJavaJoinColumn(this, createJoinColumnOwner());
- joinColumn.initializeFromResource(joinColumnResource);
- return joinColumn;
- }
-
- protected JavaJoinColumn buildInverseJoinColumn(JoinColumnAnnotation joinColumnResource) {
- JavaJoinColumn joinColumn = getJpaFactory().buildJavaJoinColumn(this, createInverseJoinColumnOwner());
- joinColumn.initializeFromResource(joinColumnResource);
- return joinColumn;
- }
-
-
- //********************* validation ********************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- boolean doContinue = connectionProfileIsActive();
- String schema = getSchema();
-
- if (doContinue && ! hasResolvedSchema()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_TABLE_UNRESOLVED_SCHEMA,
- new String[] {schema, getName()},
- this,
- getSchemaTextRange(astRoot))
- );
- doContinue = false;
- }
-
- if (doContinue && !isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_TABLE_UNRESOLVED_NAME,
- new String[] {getName()},
- this,
- getNameTextRange(astRoot))
- );
- doContinue = false;
- }
-
- for (Iterator<JavaJoinColumn> stream = joinColumns(); stream.hasNext(); ) {
- JavaJoinColumn joinColumn = stream.next();
-
- if (doContinue && ! joinColumn.isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_NAME,
- new String[] {joinColumn.getName()},
- joinColumn, joinColumn.getNameTextRange(astRoot))
- );
- }
-
- if (doContinue && ! joinColumn.isReferencedColumnResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME,
- new String[] {joinColumn.getReferencedColumnName(), joinColumn.getName()},
- joinColumn, joinColumn.getReferencedColumnNameTextRange(astRoot))
- );
- }
- }
-
- for (Iterator<JavaJoinColumn> stream = inverseJoinColumns(); stream.hasNext(); ) {
- JavaJoinColumn joinColumn = stream.next();
-
- if (doContinue && ! joinColumn.isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_NAME,
- new String[] {joinColumn.getName()},
- joinColumn, joinColumn.getNameTextRange(astRoot))
- );
- }
-
- if (doContinue && ! joinColumn.isReferencedColumnResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME,
- new String[] {joinColumn.getReferencedColumnName(), joinColumn.getName()},
- joinColumn, joinColumn.getReferencedColumnNameTextRange(astRoot))
- );
- }
- }
- }
-
- /**
- * just a little common behavior
- */
- abstract class AbstractJoinColumnOwner implements JavaJoinColumn.Owner
- {
- AbstractJoinColumnOwner() {
- super();
- }
-
- public TypeMapping getTypeMapping() {
- return getRelationshipMapping().getTypeMapping();
- }
-
- public RelationshipMapping getRelationshipMapping() {
- return GenericJavaJoinTable.this.getRelationshipMapping();
- }
-
- /**
- * the default table name is always valid and a specified table name
- * is prohibited (which will be handled elsewhere)
- */
- public boolean tableNameIsInvalid(String tableName) {
- return false;
- }
-
- /**
- * the join column can only be on the join table itself
- */
- public boolean tableIsAllowed() {
- return false;
- }
-
- public org.eclipse.jpt.db.Table getDbTable(String tableName) {
- if (GenericJavaJoinTable.this.getName() == null) {
- return null;
- }
- return (GenericJavaJoinTable.this.getName().equals(tableName)) ? GenericJavaJoinTable.this.getDbTable() : null;
- }
-
- /**
- * by default, the join column is, obviously, in the join table;
- * not sure whether it can be anywhere else...
- */
- public String getDefaultTableName() {
- return GenericJavaJoinTable.this.getName();
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return GenericJavaJoinTable.this.getValidationTextRange(astRoot);
- }
- }
-
-
- /**
- * owner for "forward-pointer" JoinColumns;
- * these point at the target/inverse entity
- */
- class InverseJoinColumnOwner extends AbstractJoinColumnOwner
- {
- public InverseJoinColumnOwner() {
- super();
- }
-
- public Entity getTargetEntity() {
- return GenericJavaJoinTable.this.getRelationshipMapping().getResolvedTargetEntity();
- }
-
- public String getAttributeName() {
- return GenericJavaJoinTable.this.getRelationshipMapping().getPersistentAttribute().getName();
- }
-
- @Override
- public org.eclipse.jpt.db.Table getDbTable(String tableName) {
- org.eclipse.jpt.db.Table dbTable = super.getDbTable(tableName);
- if (dbTable != null) {
- return dbTable;
- }
- Entity targetEntity = getTargetEntity();
- return (targetEntity == null) ? null : targetEntity.getDbTable(tableName);
- }
-
- public org.eclipse.jpt.db.Table getDbReferencedColumnTable() {
- Entity targetEntity = getTargetEntity();
- return (targetEntity == null) ? null : targetEntity.getPrimaryDbTable();
- }
-
- public boolean isVirtual(BaseJoinColumn joinColumn) {
- return GenericJavaJoinTable.this.defaultInverseJoinColumn == joinColumn;
- }
-
- public String getDefaultColumnName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public int joinColumnsSize() {
- return GenericJavaJoinTable.this.inverseJoinColumnsSize();
- }
- }
-
-
- /**
- * owner for "back-pointer" JoinColumns;
- * these point at the source/owning entity
- */
- class JoinColumnOwner extends AbstractJoinColumnOwner
- {
- public JoinColumnOwner() {
- super();
- }
-
- public Entity getTargetEntity() {
- return GenericJavaJoinTable.this.getRelationshipMapping().getEntity();
- }
-
- public String getAttributeName() {
- Entity targetEntity = GenericJavaJoinTable.this.getRelationshipMapping().getResolvedTargetEntity();
- if (targetEntity == null) {
- return null;
- }
- String attributeName = GenericJavaJoinTable.this.getRelationshipMapping().getPersistentAttribute().getName();
- for (Iterator<PersistentAttribute> stream = targetEntity.getPersistentType().allAttributes(); stream.hasNext();) {
- PersistentAttribute attribute = stream.next();
- AttributeMapping mapping = attribute.getMapping();
- if (mapping instanceof NonOwningMapping) {
- String mappedBy = ((NonOwningMapping) mapping).getMappedBy();
- if ((mappedBy != null) && mappedBy.equals(attributeName)) {
- return attribute.getName();
- }
- }
- }
- return null;
- }
-
- @Override
- public org.eclipse.jpt.db.Table getDbTable(String tableName) {
- org.eclipse.jpt.db.Table dbTable = super.getDbTable(tableName);
- if (dbTable != null) {
- return dbTable;
- }
- return getTypeMapping().getDbTable(tableName);
- }
-
- public org.eclipse.jpt.db.Table getDbReferencedColumnTable() {
- return getTypeMapping().getPrimaryDbTable();
- }
-
- public boolean isVirtual(BaseJoinColumn joinColumn) {
- return GenericJavaJoinTable.this.defaultJoinColumn == joinColumn;
- }
-
- public String getDefaultColumnName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public int joinColumnsSize() {
- return GenericJavaJoinTable.this.joinColumnsSize();
- }
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToManyMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToManyMapping.java
deleted file mode 100644
index 3d9bf0eebe..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToManyMapping.java
+++ /dev/null
@@ -1,83 +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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaManyToManyMapping extends AbstractJavaMultiRelationshipMapping<ManyToManyAnnotation>
- implements JavaManyToManyMapping
-{
-
- public GenericJavaManyToManyMapping(JavaPersistentAttribute parent) {
- super(parent);
- }
-
- public String getKey() {
- return MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return ManyToManyAnnotation.ANNOTATION_NAME;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.ORDER_BY,
- JPA.MAP_KEY,
- JPA.JOIN_TABLE);
- }
-
- // ********** JavaMultiRelationshipMapping implementation **********
-
- @Override
- protected boolean mappedByTouches(int pos, CompilationUnit astRoot) {
- return this.getMappingResource().mappedByTouches(pos, astRoot);
- }
-
-
- @Override
- protected void setMappedByOnResourceModel(String mappedBy) {
- getMappingResource().setMappedBy(mappedBy);
- }
-
- @Override
- protected String mappedBy(ManyToManyAnnotation relationshipMapping) {
- return relationshipMapping.getMappedBy();
- }
-
- // ********** INonOwningMapping implementation **********
-
- public boolean mappedByIsValid(AttributeMapping mappedByMapping) {
- String mappedByKey = mappedByMapping.getKey();
- return (mappedByKey == MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
- }
-
- @Override
- public TextRange getMappedByTextRange(CompilationUnit astRoot) {
- return this.getMappingResource().getMappedByTextRange(astRoot);
- }
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToOneMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToOneMapping.java
deleted file mode 100644
index c11ca44d2c..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToOneMapping.java
+++ /dev/null
@@ -1,70 +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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public class GenericJavaManyToOneMapping extends AbstractJavaSingleRelationshipMapping<ManyToOneAnnotation>
- implements JavaManyToOneMapping
-{
-
- public GenericJavaManyToOneMapping(JavaPersistentAttribute parent) {
- super(parent);
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.JOIN_COLUMN,
- JPA.JOIN_COLUMNS,
- JPA.JOIN_TABLE);
- }
-
- public String getAnnotationName() {
- return ManyToOneAnnotation.ANNOTATION_NAME;
- }
-
- public String getKey() {
- return MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY;
- }
-
- @Override
- public boolean isOverridableAssociationMapping() {
- return true;
- }
-
- @Override
- protected void setOptionalOnResourceModel(Boolean newOptional) {
- this.getMappingResource().setOptional(newOptional);
- }
-
- @Override
- protected Boolean specifiedOptional(ManyToOneAnnotation relationshipMapping) {
- return relationshipMapping.getOptional();
- }
-
- //ManyToOne mapping is always the owning side
- public boolean isRelationshipOwner() {
- return true;
- }
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaMappedSuperclass.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaMappedSuperclass.java
deleted file mode 100644
index 240ee74e52..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaMappedSuperclass.java
+++ /dev/null
@@ -1,170 +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.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.IdClass;
-import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.resource.java.IdClassAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.MappedSuperclassAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-public class GenericJavaMappedSuperclass extends AbstractJavaTypeMapping
- implements JavaMappedSuperclass
-{
-
- protected String idClass;
-
- public GenericJavaMappedSuperclass(JavaPersistentType parent) {
- super(parent);
- }
-
- public boolean isMapped() {
- return true;
- }
-
- public String getKey() {
- return MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return MappedSuperclassAnnotation.ANNOTATION_NAME;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.ID_CLASS,
- JPA.EXCLUDE_DEFAULT_LISTENERS,
- JPA.EXCLUDE_SUPERCLASS_LISTENERS,
- JPA.ENTITY_LISTENERS,
- JPA.PRE_PERSIST,
- JPA.POST_PERSIST,
- JPA.PRE_REMOVE,
- JPA.POST_REMOVE,
- JPA.PRE_UPDATE,
- JPA.POST_UPDATE,
- JPA.POST_LOAD);
- }
-
- public String getIdClass() {
- return this.idClass;
- }
-
- public void setIdClass(String newIdClass) {
- String oldIdClass = this.idClass;
- this.idClass = newIdClass;
- if (newIdClass != oldIdClass) {
- if (newIdClass != null) {
- if (getIdClassResource() == null) {
- addIdClassResource();
- }
- getIdClassResource().setValue(newIdClass);
- }
- else {
- removeIdClassResource();
- }
- }
- firePropertyChanged(IdClass.ID_CLASS_PROPERTY, oldIdClass, newIdClass);
- }
-
- protected void setIdClass_(String newIdClass) {
- String oldIdClass = this.idClass;
- this.idClass = newIdClass;
- firePropertyChanged(IdClass.ID_CLASS_PROPERTY, oldIdClass, newIdClass);
- }
-
- protected IdClassAnnotation getIdClassResource() {
- return (IdClassAnnotation) this.javaResourcePersistentType.getAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- }
-
- protected void addIdClassResource() {
- this.javaResourcePersistentType.addAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- }
-
- protected void removeIdClassResource() {
- this.javaResourcePersistentType.removeAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- }
-
- @Override
- public Iterator<String> overridableAttributeNames() {
- return this.namesOf(this.overridableAttributes());
- }
-
- @Override
- public Iterator<JavaPersistentAttribute> overridableAttributes() {
- return new FilteringIterator<JavaPersistentAttribute, JavaPersistentAttribute>(this.getPersistentType().attributes()) {
- @Override
- protected boolean accept(JavaPersistentAttribute o) {
- return o.isOverridableAttribute();
- }
- };
- }
-
- @Override
- public Iterator<String> overridableAssociationNames() {
- return this.namesOf(this.overridableAssociations());
- }
-
- @Override
- public Iterator<JavaPersistentAttribute> overridableAssociations() {
- return new FilteringIterator<JavaPersistentAttribute, JavaPersistentAttribute>(this.getPersistentType().attributes()) {
- @Override
- protected boolean accept(JavaPersistentAttribute o) {
- return o.isOverridableAssociation();
- }
- };
- }
-
- protected Iterator<String> namesOf(Iterator<JavaPersistentAttribute> attributes) {
- return new TransformationIterator<JavaPersistentAttribute, String>(attributes) {
- @Override
- protected String transform(JavaPersistentAttribute attribute) {
- return attribute.getName();
- }
- };
- }
-
- @Override
- public void initializeFromResource(JavaResourcePersistentType persistentTypeResource) {
- super.initializeFromResource(persistentTypeResource);
- this.initializeIdClass(persistentTypeResource);
- }
-
- protected void initializeIdClass(JavaResourcePersistentType typeResource) {
- IdClassAnnotation idClassResource = (IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- if (idClassResource != null) {
- this.idClass = idClassResource.getValue();
- }
- }
-
- @Override
- public void update(JavaResourcePersistentType persistentTypeResource) {
- super.update(persistentTypeResource);
- this.updateIdClass(persistentTypeResource);
- }
-
- protected void updateIdClass(JavaResourcePersistentType typeResource) {
- IdClassAnnotation idClass = (IdClassAnnotation) typeResource.getAnnotation(IdClassAnnotation.ANNOTATION_NAME);
- if (idClass != null) {
- setIdClass_(idClass.getValue());
- }
- else {
- setIdClass_(null);
- }
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNamedNativeQuery.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNamedNativeQuery.java
deleted file mode 100644
index 6b84edd515..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNamedNativeQuery.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jpt.core.context.NamedNativeQuery;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaNamedNativeQuery;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueryAnnotation;
-
-
-public class GenericJavaNamedNativeQuery extends AbstractJavaQuery
- implements JavaNamedNativeQuery
-{
-
- protected String resultClass;
-
- protected String resultSetMapping;
-
- public GenericJavaNamedNativeQuery(JavaJpaContextNode parent) {
- super(parent);
- }
-
- @Override
- protected NamedNativeQueryAnnotation getQueryResource() {
- return (NamedNativeQueryAnnotation) super.getQueryResource();
- }
-
- public String getResultClass() {
- return this.resultClass;
- }
-
- public void setResultClass(String newResultClass) {
- String oldResultClass = this.resultClass;
- this.resultClass = newResultClass;
- getQueryResource().setResultClass(newResultClass);
- firePropertyChanged(NamedNativeQuery.RESULT_CLASS_PROPERTY, oldResultClass, newResultClass);
- }
-
- protected void setResultClass_(String newResultClass) {
- String oldResultClass = this.resultClass;
- this.resultClass = newResultClass;
- firePropertyChanged(NamedNativeQuery.RESULT_CLASS_PROPERTY, oldResultClass, newResultClass);
- }
-
- public String getResultSetMapping() {
- return this.resultSetMapping;
- }
-
- public void setResultSetMapping(String newResultSetMapping) {
- String oldResultSetMapping = this.resultSetMapping;
- this.resultSetMapping = newResultSetMapping;
- getQueryResource().setResultSetMapping(newResultSetMapping);
- firePropertyChanged(NamedNativeQuery.RESULT_SET_MAPPING_PROPERTY, oldResultSetMapping, newResultSetMapping);
- }
-
- protected void setResultSetMapping_(String newResultSetMapping) {
- String oldResultSetMapping = this.resultSetMapping;
- this.resultSetMapping = newResultSetMapping;
- firePropertyChanged(NamedNativeQuery.RESULT_SET_MAPPING_PROPERTY, oldResultSetMapping, newResultSetMapping);
- }
-
- public void initializeFromResource(NamedNativeQueryAnnotation queryResource) {
- super.initializeFromResource(queryResource);
- this.resultClass = queryResource.getResultClass();
- this.resultSetMapping = queryResource.getResultSetMapping();
- }
-
- public void update(NamedNativeQueryAnnotation queryResource) {
- super.update(queryResource);
- this.setResultClass_(queryResource.getResultClass());
- this.setResultSetMapping_(queryResource.getResultSetMapping());
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNamedQuery.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNamedQuery.java
deleted file mode 100644
index 9b834036b9..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNamedQuery.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaNamedQuery;
-import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation;
-
-
-
-public class GenericJavaNamedQuery extends AbstractJavaQuery implements JavaNamedQuery
-{
-
- public GenericJavaNamedQuery(JavaJpaContextNode parent) {
- super(parent);
- }
-
- @Override
- protected NamedQueryAnnotation getQueryResource() {
- return (NamedQueryAnnotation) super.getQueryResource();
- }
-
- public void initializeFromResource(NamedQueryAnnotation queryResource) {
- super.initializeFromResource(queryResource);
- }
-
- public void update(NamedQueryAnnotation queryResource) {
- super.update(queryResource);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNullAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNullAttributeMapping.java
deleted file mode 100644
index badb692ade..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNullAttributeMapping.java
+++ /dev/null
@@ -1,50 +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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-
-public class GenericJavaNullAttributeMapping extends AbstractJavaAttributeMapping<JavaResourceNode>
-{
- public GenericJavaNullAttributeMapping(JavaPersistentAttribute parent) {
- super(parent);
- }
-
- public String getKey() {
- return MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return null;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return EmptyIterator.instance();
- }
-
- @Override
- protected JavaResourceNode getMappingResource() {
- return null;
- }
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToManyMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToManyMapping.java
deleted file mode 100644
index d5682df714..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToManyMapping.java
+++ /dev/null
@@ -1,86 +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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaOneToManyMapping extends AbstractJavaMultiRelationshipMapping<OneToManyAnnotation>
- implements JavaOneToManyMapping
-{
-
- public GenericJavaOneToManyMapping(JavaPersistentAttribute parent) {
- super(parent);
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.ORDER_BY,
- JPA.MAP_KEY,
- JPA.JOIN_TABLE,
- JPA.JOIN_COLUMN,
- JPA.JOIN_COLUMNS);
- }
-
-
- public String getKey() {
- return MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return OneToManyAnnotation.ANNOTATION_NAME;
- }
-
- // ********** JavaMultiRelationshipMapping implementation **********
-
- @Override
- protected boolean mappedByTouches(int pos, CompilationUnit astRoot) {
- return this.getMappingResource().mappedByTouches(pos, astRoot);
- }
-
- @Override
- protected void setMappedByOnResourceModel(String mappedBy) {
- this.getMappingResource().setMappedBy(mappedBy);
- }
-
- @Override
- protected String mappedBy(OneToManyAnnotation relationshipMapping) {
- return relationshipMapping.getMappedBy();
- }
-
-
- // ********** INonOwningMapping implementation **********
- public boolean mappedByIsValid(AttributeMapping mappedByMapping) {
- String mappedByKey = mappedByMapping.getKey();
- return (mappedByKey == MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
- }
-
- @Override
- public TextRange getMappedByTextRange(CompilationUnit astRoot) {
- return this.getMappingResource().getMappedByTextRange(astRoot);
- }
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToOneMapping.java
deleted file mode 100644
index 3b4581b171..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToOneMapping.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.NonOwningMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumns;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public class GenericJavaOneToOneMapping extends AbstractJavaSingleRelationshipMapping<OneToOneAnnotation>
- implements JavaOneToOneMapping
-{
- protected String mappedBy;
-
- protected final List<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns;
-
- public GenericJavaOneToOneMapping(JavaPersistentAttribute parent) {
- super(parent);
- this.primaryKeyJoinColumns = new ArrayList<JavaPrimaryKeyJoinColumn>();
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.PRIMARY_KEY_JOIN_COLUMN,
- JPA.PRIMARY_KEY_JOIN_COLUMNS,
- JPA.JOIN_COLUMN,
- JPA.JOIN_COLUMNS,
- JPA.JOIN_TABLE);
- }
-
- public String getAnnotationName() {
- return OneToOneAnnotation.ANNOTATION_NAME;
- }
-
- public String getKey() {
- return MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
- }
-
- public boolean isRelationshipOwner() {
- return getMappedBy() == null;
- }
-
-
- public ListIterator<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns() {
- return new CloneListIterator<JavaPrimaryKeyJoinColumn>(this.primaryKeyJoinColumns);
- }
-
- public int primaryKeyJoinColumnsSize() {
- return this.primaryKeyJoinColumns.size();
- }
-
- public JavaPrimaryKeyJoinColumn addPrimaryKeyJoinColumn(int index) {
- JavaPrimaryKeyJoinColumn pkJoinColumn = getJpaFactory().buildJavaPrimaryKeyJoinColumn(this, createJoinColumnOwner());
- this.primaryKeyJoinColumns.add(index, pkJoinColumn);
- PrimaryKeyJoinColumnAnnotation pkJoinColumnResource = (PrimaryKeyJoinColumnAnnotation) getResourcePersistentAttribute().addAnnotation(index, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumns.ANNOTATION_NAME);
- pkJoinColumn.initializeFromResource(pkJoinColumnResource);
- this.fireItemAdded(OneToOneMapping.PRIMAY_KEY_JOIN_COLUMNS_LIST, index, pkJoinColumn);
- return pkJoinColumn;
- }
-
- protected void addPrimaryKeyJoinColumn(int index, JavaPrimaryKeyJoinColumn joinColumn) {
- addItemToList(index, joinColumn, this.primaryKeyJoinColumns, OneToOneMapping.PRIMAY_KEY_JOIN_COLUMNS_LIST);
- }
-
- public void removePrimaryKeyJoinColumn(PrimaryKeyJoinColumn pkJoinColumn) {
- this.removePrimaryKeyJoinColumn(this.primaryKeyJoinColumns.indexOf(pkJoinColumn));
- }
-
- public void removePrimaryKeyJoinColumn(int index) {
- JavaPrimaryKeyJoinColumn removedPkJoinColumn = this.primaryKeyJoinColumns.remove(index);
- getResourcePersistentAttribute().removeAnnotation(index, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumns.ANNOTATION_NAME);
- fireItemRemoved(OneToOneMapping.PRIMAY_KEY_JOIN_COLUMNS_LIST, index, removedPkJoinColumn);
- }
-
- protected void removePrimaryKeyJoinColumn_(JavaPrimaryKeyJoinColumn joinColumn) {
- removeItemFromList(joinColumn, this.primaryKeyJoinColumns, OneToOneMapping.PRIMAY_KEY_JOIN_COLUMNS_LIST);
- }
-
- public void movePrimaryKeyJoinColumn(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.primaryKeyJoinColumns, targetIndex, sourceIndex);
- getResourcePersistentAttribute().move(targetIndex, sourceIndex, PrimaryKeyJoinColumns.ANNOTATION_NAME);
- fireItemMoved(OneToOneMapping.PRIMAY_KEY_JOIN_COLUMNS_LIST, targetIndex, sourceIndex);
- }
-
- public boolean containsPrimaryKeyJoinColumns() {
- return !this.primaryKeyJoinColumns.isEmpty();
- }
-
- public String getMappedBy() {
- return this.mappedBy;
- }
-
- public void setMappedBy(String newMappedBy) {
- String oldMappedBy = this.mappedBy;
- this.mappedBy = newMappedBy;
- this.getMappingResource().setMappedBy(newMappedBy);
- firePropertyChanged(NonOwningMapping.MAPPED_BY_PROPERTY, oldMappedBy, newMappedBy);
- }
-
- protected void setMappedBy_(String newMappedBy) {
- String oldMappedBy = this.mappedBy;
- this.mappedBy = newMappedBy;
- firePropertyChanged(NonOwningMapping.MAPPED_BY_PROPERTY, oldMappedBy, newMappedBy);
- }
-
- public boolean mappedByIsValid(AttributeMapping mappedByMapping) {
- String mappedByKey = mappedByMapping.getKey();
- return (mappedByKey == MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
- }
-
- @Override
- protected void setOptionalOnResourceModel(Boolean newOptional) {
- this.getMappingResource().setOptional(newOptional);
- }
-
- public TextRange getMappedByTextRange(CompilationUnit astRoot) {
- return this.getMappingResource().getMappedByTextRange(astRoot);
- }
-
- public boolean mappedByTouches(int pos, CompilationUnit astRoot) {
- return this.getMappingResource().mappedByTouches(pos, astRoot);
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.mappedByTouches(pos, astRoot)) {
- return this.quotedCandidateMappedByAttributeNames(filter);
- }
- return null;
- }
-
- @Override
- public boolean isOverridableAssociationMapping() {
- return true;
- }
-
- @Override
- protected void initialize(OneToOneAnnotation oneToOneResource) {
- super.initialize(oneToOneResource);
- this.mappedBy = oneToOneResource.getMappedBy();
- }
-
- @Override
- protected Boolean specifiedOptional(OneToOneAnnotation oneToOneResource) {
- return oneToOneResource.getOptional();
- }
-
-
- @Override
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.initializeFromResource(resourcePersistentAttribute);
- this.initializePrimaryKeyJoinColumns(resourcePersistentAttribute);
- }
-
- protected void initializePrimaryKeyJoinColumns(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- ListIterator<JavaResourceNode> annotations = resourcePersistentAttribute.annotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumns.ANNOTATION_NAME);
-
- while(annotations.hasNext()) {
- this.primaryKeyJoinColumns.add(buildPrimaryKeyJoinColumn((PrimaryKeyJoinColumnAnnotation) annotations.next()));
- }
- }
-
- protected JavaPrimaryKeyJoinColumn buildPrimaryKeyJoinColumn(PrimaryKeyJoinColumnAnnotation primaryKeyJoinColumnResource) {
- JavaPrimaryKeyJoinColumn pkJoinColumn = getJpaFactory().buildJavaPrimaryKeyJoinColumn(this, createJoinColumnOwner());
- pkJoinColumn.initializeFromResource(primaryKeyJoinColumnResource);
- return pkJoinColumn;
- }
-
- @Override
- protected void update(OneToOneAnnotation oneToOneResource) {
- super.update(oneToOneResource);
- this.setMappedBy_(oneToOneResource.getMappedBy());
- }
-
- @Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.update(resourcePersistentAttribute);
- this.updatePrimaryKeyJoinColumns(resourcePersistentAttribute);
- }
-
- protected void updatePrimaryKeyJoinColumns(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- ListIterator<JavaPrimaryKeyJoinColumn> pkJoinColumns = primaryKeyJoinColumns();
- ListIterator<JavaResourceNode> resourcePkJoinColumns = resourcePersistentAttribute.annotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumns.ANNOTATION_NAME);
-
- while (pkJoinColumns.hasNext()) {
- JavaPrimaryKeyJoinColumn pkJoinColumn = pkJoinColumns.next();
- if (resourcePkJoinColumns.hasNext()) {
- pkJoinColumn.update((PrimaryKeyJoinColumnAnnotation) resourcePkJoinColumns.next());
- }
- else {
- removePrimaryKeyJoinColumn_(pkJoinColumn);
- }
- }
-
- while (resourcePkJoinColumns.hasNext()) {
- addPrimaryKeyJoinColumn(specifiedJoinColumnsSize(), buildPrimaryKeyJoinColumn((PrimaryKeyJoinColumnAnnotation) resourcePkJoinColumns.next()));
- }
- }
-
-
-
- //***************** Validation ***********************************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- if (this.getMappedBy() != null) {
- addMappedByMessages(messages ,astRoot);
- }
- }
-
- @Override
- protected boolean addJoinColumnMessages() {
- if (containsPrimaryKeyJoinColumns() && !containsSpecifiedJoinColumns()) {
- return false;
- }
- return super.addJoinColumnMessages();
- }
-
- protected void addMappedByMessages(List<IMessage> messages, CompilationUnit astRoot) {
- String mappedBy = this.getMappedBy();
- Entity targetEntity = this.getResolvedTargetEntity();
-
- if (targetEntity == null) {
- // already have validation messages for that
- return;
- }
-
- PersistentAttribute attribute = targetEntity.getPersistentType().resolveAttribute(mappedBy);
-
- if (attribute == null) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
- new String[] {mappedBy},
- this, this.getMappedByTextRange(astRoot))
- );
- return;
- }
-
- if (! this.mappedByIsValid(attribute.getMapping())) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
- new String[] {mappedBy},
- this, this.getMappedByTextRange(astRoot))
- );
- return;
- }
-
- NonOwningMapping mappedByMapping;
- try {
- mappedByMapping = (NonOwningMapping) attribute.getMapping();
- } catch (ClassCastException cce) {
- // there is no error then
- return;
- }
-
- if (mappedByMapping.getMappedBy() != null) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_MAPPED_BY_ON_BOTH_SIDES,
- this, this.getMappedByTextRange(astRoot))
- );
- }
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentAttribute.java
deleted file mode 100644
index 7c0cfcd257..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentAttribute.java
+++ /dev/null
@@ -1,328 +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.java;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.JpaStructureNode;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaStructureNodes;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTTools;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public class GenericJavaPersistentAttribute extends AbstractJavaJpaContextNode
- implements JavaPersistentAttribute
-{
- protected String name;
-
- protected JavaAttributeMapping defaultMapping;
-
- protected JavaAttributeMapping specifiedMapping;
-
- protected JavaResourcePersistentAttribute resourcePersistentAttribute;
-
- public GenericJavaPersistentAttribute(JavaPersistentType parent) {
- super(parent);
- }
-
- public String getId() {
- return JavaStructureNodes.PERSISTENT_ATTRIBUTE_ID;
- }
-
- public void initializeFromResource(JavaResourcePersistentAttribute persistentAttributeResource) {
- this.resourcePersistentAttribute = persistentAttributeResource;
- this.name = this.name(persistentAttributeResource);
- initializeDefaultMapping(persistentAttributeResource);
- initializeSpecifiedMapping(persistentAttributeResource);
- }
-
- protected void initializeDefaultMapping(JavaResourcePersistentAttribute persistentAttributeResource) {
- this.defaultMapping = getJpaPlatform().buildDefaultJavaAttributeMapping(this);
- this.defaultMapping.initializeFromResource(persistentAttributeResource);
- }
-
- protected void initializeSpecifiedMapping(JavaResourcePersistentAttribute persistentAttributeResource) {
- String javaMappingAnnotationName = this.javaMappingAnnotationName(persistentAttributeResource);
- this.specifiedMapping = createJavaAttributeMappingFromAnnotation(javaMappingAnnotationName, persistentAttributeResource);
- }
-
- public JavaResourcePersistentAttribute getResourcePersistentAttribute() {
- return this.resourcePersistentAttribute;
- }
-
- public JavaPersistentType getPersistentType() {
- return (JavaPersistentType) this.getParent();
- }
-
- public JavaTypeMapping getTypeMapping() {
- return this.getPersistentType().getMapping();
- }
-
- public String getPrimaryKeyColumnName() {
- return this.getMapping().getPrimaryKeyColumnName();
- }
-
- public boolean isOverridableAttribute() {
- return this.getMapping().isOverridableAttributeMapping();
- }
-
- public boolean isOverridableAssociation() {
- return this.getMapping().isOverridableAssociationMapping();
- }
-
- public boolean isIdAttribute() {
- return this.getMapping().isIdMapping();
- }
-
- public boolean isVirtual() {
- return false;
- }
-
- public String getName() {
- return this.name;
- }
-
- protected void setName(String newName) {
- String oldName = this.name;
- this.name = newName;
- firePropertyChanged(NAME_PROPERTY, oldName, newName);
- }
-
- public JavaAttributeMapping getDefaultMapping() {
- return this.defaultMapping;
- }
-
- /**
- * clients do not set the "default" mapping
- */
- protected void setDefaultMapping(JavaAttributeMapping newDefaultMapping) {
- JavaAttributeMapping oldMapping = this.defaultMapping;
- this.defaultMapping = newDefaultMapping;
- firePropertyChanged(PersistentAttribute.DEFAULT_MAPPING_PROPERTY, oldMapping, newDefaultMapping);
- }
-
- public JavaAttributeMapping getSpecifiedMapping() {
- return this.specifiedMapping;
- }
-
- /**
- * clients do not set the "specified" mapping;
- * use #setMappingKey(String)
- */
- protected void setSpecifiedMapping(JavaAttributeMapping newSpecifiedMapping) {
- JavaAttributeMapping oldMapping = this.specifiedMapping;
- this.specifiedMapping = newSpecifiedMapping;
- firePropertyChanged(PersistentAttribute.SPECIFIED_MAPPING_PROPERTY, oldMapping, newSpecifiedMapping);
- }
-
-
- public JavaAttributeMapping getMapping() {
- return (this.specifiedMapping != null) ? this.specifiedMapping : this.defaultMapping;
- }
-
- public String getMappingKey() {
- return this.getMapping().getKey();
- }
-
- /**
- * return null if there is no "default" mapping for the attribute
- */
- public String getDefaultMappingKey() {
- return this.defaultMapping.getKey();
- }
-
- /**
- * return null if there is no "specified" mapping for the attribute
- */
- public String getSpecifiedMappingKey() {
- return (this.specifiedMapping == null) ? null : this.specifiedMapping.getKey();
- }
-
- // TODO support morphing mappings, i.e. copying common settings over
- // to the new mapping; this can't be done in the same was as XmlAttributeMapping
- // since we don't know all the possible mapping types
- public void setSpecifiedMappingKey(String newKey) {
- if (newKey == getSpecifiedMappingKey()) {
- return;
- }
- JavaAttributeMapping oldMapping = getMapping();
- JavaAttributeMapping newMapping = createJavaAttributeMappingFromMappingKey(newKey);
-
- this.specifiedMapping = newMapping;
- if (newMapping != null) {
- this.resourcePersistentAttribute.setMappingAnnotation(newMapping.getAnnotationName());
- }
- else {
- this.resourcePersistentAttribute.setMappingAnnotation(null);
- }
- firePropertyChanged(PersistentAttribute.SPECIFIED_MAPPING_PROPERTY, oldMapping, newMapping);
-
- if (oldMapping != null) {
- Collection<String> annotationsToRemove = CollectionTools.collection(oldMapping.correspondingAnnotationNames());
- if (getMapping() != null) {
- CollectionTools.removeAll(annotationsToRemove, getMapping().correspondingAnnotationNames());
- }
-
- for (String annotationName : annotationsToRemove) {
- this.resourcePersistentAttribute.removeAnnotation(annotationName);
- }
- }
- }
-
- public JpaStructureNode getStructureNode(int textOffset) {
- return this;
- }
-
- public boolean contains(int offset, CompilationUnit astRoot) {
- TextRange fullTextRange = this.getFullTextRange(astRoot);
- // 'fullTextRange' will be null if the attribute no longer exists in the java;
- // the context model can be out of synch with the resource model
- // when a selection event occurs before the context model has a
- // chance to synch with the resource model via the update thread
- return (fullTextRange == null) ? false : fullTextRange.includes(offset);
- }
-
-
- public TextRange getFullTextRange(CompilationUnit astRoot) {
- return this.resourcePersistentAttribute.getTextRange(astRoot);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.getSelectionTextRange(astRoot);
- }
-
- public TextRange getSelectionTextRange(CompilationUnit astRoot) {
- return this.resourcePersistentAttribute.getNameTextRange(astRoot);
- }
-
- public TextRange getSelectionTextRange() {
- return getSelectionTextRange(this.buildASTRoot());
- }
-
- protected CompilationUnit buildASTRoot() {
- return JDTTools.buildASTRoot(this.resourcePersistentAttribute.getJpaCompilationUnit().getCompilationUnit());
- }
-
- public void update(JavaResourcePersistentAttribute jrpa) {
- this.resourcePersistentAttribute = jrpa;
- this.setName(this.name(jrpa));
- this.updateDefaultMapping(jrpa);
- this.updateSpecifiedMapping(jrpa);
- }
-
- protected String name(JavaResourcePersistentAttribute jrpa) {
- return jrpa.getName();
- }
-
- public String specifiedMappingAnnotationName() {
- return (this.specifiedMapping == null) ? null : this.specifiedMapping.getAnnotationName();
- }
-
- protected void updateSpecifiedMapping(JavaResourcePersistentAttribute jrpa) {
- String javaMappingAnnotationName = this.javaMappingAnnotationName(jrpa);
- if (specifiedMappingAnnotationName() != javaMappingAnnotationName) {
- setSpecifiedMapping(createJavaAttributeMappingFromAnnotation(javaMappingAnnotationName, jrpa));
- }
- else {
- if (getSpecifiedMapping() != null) {
- getSpecifiedMapping().update(jrpa);
- }
- }
- }
-
- protected void updateDefaultMapping(JavaResourcePersistentAttribute jrpa) {
- String defaultMappingKey = getJpaPlatform().defaultJavaAttributeMappingKey(this);
- if (getDefaultMapping().getKey() != defaultMappingKey) {
- JavaAttributeMapping oldDefaultMapping = this.defaultMapping;
- this.defaultMapping = getJpaPlatform().buildDefaultJavaAttributeMapping(this);
- this.defaultMapping.initializeFromResource(jrpa);
- firePropertyChanged(PersistentAttribute.DEFAULT_MAPPING_PROPERTY, oldDefaultMapping, this.defaultMapping);
- }
- else {
- getDefaultMapping().update(jrpa);
- }
- }
-
- protected String javaMappingAnnotationName(JavaResourcePersistentAttribute jrpa) {
- Annotation mappingAnnotation = (Annotation) jrpa.getMappingAnnotation();
- if (mappingAnnotation != null) {
- return mappingAnnotation.getAnnotationName();
- }
- return null;
- }
-
- protected JavaAttributeMapping createJavaAttributeMappingFromMappingKey(String key) {
- if (key == MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY) {
- return null;
- }
- return getJpaPlatform().buildJavaAttributeMappingFromMappingKey(key, this);
- }
-
- protected JavaAttributeMapping createJavaAttributeMappingFromAnnotation(String annotationName, JavaResourcePersistentAttribute jrpa) {
- if (annotationName == null) {
- return null;
- }
- JavaAttributeMapping mapping = getJpaPlatform().buildJavaAttributeMappingFromAnnotation(annotationName, this);
- mapping.initializeFromResource(jrpa);
- return mapping;
- }
-
- /**
- * the mapping might be "default", but it still might be a "null" mapping...
- */
- public boolean mappingIsDefault(JavaAttributeMapping mapping) {
- return this.defaultMapping == mapping;
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- return this.getMapping().javaCompletionProposals(pos, filter, astRoot);
- }
-
- //************* Validation ******************************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- if (this.specifiedMapping != null) {
- this.specifiedMapping.addToMessages(messages, astRoot);
- }
- else if (this.defaultMapping != null) {
- this.defaultMapping.addToMessages(messages, astRoot);
- }
- }
-
- @Override
- public void toString(StringBuilder sb) {
- super.toString(sb);
- sb.append(getName());
- }
-
- public void dispose() {
- //nothing to dispose
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentType.java
deleted file mode 100644
index feb54cc1fc..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentType.java
+++ /dev/null
@@ -1,526 +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.java;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.JpaFile;
-import org.eclipse.jpt.core.JpaStructureNode;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.JpaContextNode;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaStructureNodes;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTTools;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ChainIterator;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public class GenericJavaPersistentType extends AbstractJavaJpaContextNode implements JavaPersistentType
-{
- protected String name;
-
- protected JavaTypeMapping mapping;
-
- protected final List<JavaPersistentAttribute> attributes;
-
- protected AccessType access;
-
- protected PersistentType parentPersistentType;
-
- protected JavaResourcePersistentType resourcePersistentType;
-
- public GenericJavaPersistentType(JpaContextNode parent, JavaResourcePersistentType resourcePersistentType) {
- super(parent);
- this.attributes = new ArrayList<JavaPersistentAttribute>();
- this.initialize(resourcePersistentType);
- }
-
- @Override
- public IResource getResource() {
- return this.resourcePersistentType.getResourceModel().getJpaCompilationUnit().getCompilationUnit().getResource();
- }
-
- //****************** JpaStructureNode implementation *******************
-
- public String getId() {
- return JavaStructureNodes.PERSISTENT_TYPE_ID;
- }
-
- //****************** PersistentType implementation *******************
- public String getName() {
- return this.name;
- }
-
- protected void setName(String newName) {
- String oldName = this.name;
- this.name = newName;
- firePropertyChanged(NAME_PROPERTY, oldName, newName);
- }
-
- public JavaTypeMapping getMapping() {
- return this.mapping;
- }
-
- public String getMappingKey() {
- return getMapping().getKey();
- }
-
- public void setMappingKey(String key) {
- if (key == getMapping().getKey()) {
- return;
- }
- JavaTypeMapping oldMapping = getMapping();
- JavaTypeMapping newMapping = createJavaTypeMappingFromMappingKey(key);
-
- this.mapping = newMapping;
- this.resourcePersistentType.setMappingAnnotation(newMapping.getAnnotationName());
- firePropertyChanged(PersistentType.MAPPING_PROPERTY, oldMapping, newMapping);
-
- if (oldMapping != null) {
- Collection<String> annotationsToRemove = CollectionTools.collection(oldMapping.correspondingAnnotationNames());
- if (getMapping() != null) {
- CollectionTools.removeAll(annotationsToRemove, getMapping().correspondingAnnotationNames());
- }
-
- for (String annotationName : annotationsToRemove) {
- this.resourcePersistentType.removeAnnotation(annotationName);
- }
- }
- }
-
- protected void setMapping(JavaTypeMapping newMapping) {
- JavaTypeMapping oldMapping = this.mapping;
- this.mapping = newMapping;
- firePropertyChanged(PersistentType.MAPPING_PROPERTY, oldMapping, newMapping);
- }
-
- public boolean isMapped() {
- return getMapping().isMapped();
- }
-
- public AccessType getAccess() {
- return this.access;
- }
-
- protected void setAccess(AccessType newAccess) {
- AccessType oldAccess = this.access;
- this.access = newAccess;
- firePropertyChanged(PersistentType.ACCESS_PROPERTY, oldAccess, newAccess);
- }
-
- protected Iterator<JavaPersistentAttribute> attributesNamed(final String attributeName) {
- return new FilteringIterator<JavaPersistentAttribute, JavaPersistentAttribute>(attributes()) {
- @Override
- protected boolean accept(JavaPersistentAttribute o) {
- return attributeName.equals(o.getName());
- }
- };
- }
-
- public JavaPersistentAttribute getAttributeNamed(String attributeName) {
- Iterator<JavaPersistentAttribute> stream = attributesNamed(attributeName);
- return (stream.hasNext()) ? stream.next() : null;
- }
-
- public PersistentAttribute resolveAttribute(String attributeName) {
- Iterator<JavaPersistentAttribute> stream = attributesNamed(attributeName);
- if (stream.hasNext()) {
- JavaPersistentAttribute attribute = stream.next();
- return (stream.hasNext()) ? null /*more than one*/: attribute;
- }
- return (getParentPersistentType() == null) ? null : getParentPersistentType().resolveAttribute(attributeName);
- }
-
- public ListIterator<JavaPersistentAttribute> attributes() {
- return new CloneListIterator<JavaPersistentAttribute>(this.attributes);
- }
-
- public int attributesSize() {
- return this.attributes.size();
- }
-
- private void addAttribute(JavaPersistentAttribute attribute) {
- addItemToList(attribute, this.attributes, PersistentType.SPECIFIED_ATTRIBUTES_LIST);
- }
-
- private void removeAttribute(JavaPersistentAttribute attribute) {
- removeItemFromList(attribute, this.attributes, PersistentType.SPECIFIED_ATTRIBUTES_LIST);
- }
-
- public Iterator<String> attributeNames() {
- return this.attributeNames(this.attributes());
- }
-
- protected Iterator<String> attributeNames(Iterator<? extends PersistentAttribute> attrs) {
- return new TransformationIterator<PersistentAttribute, String>(attrs) {
- @Override
- protected String transform(PersistentAttribute attribute) {
- return attribute.getName();
- }
- };
- }
-
- public Iterator<PersistentAttribute> allAttributes() {
- return new CompositeIterator<PersistentAttribute>(new TransformationIterator<PersistentType, Iterator<PersistentAttribute>>(this.inheritanceHierarchy()) {
- @Override
- protected Iterator<PersistentAttribute> transform(PersistentType pt) {
- return pt.attributes();
- }
- });
- }
-
- public Iterator<String> allAttributeNames() {
- return this.attributeNames(this.allAttributes());
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- Iterator<String> values = this.mapping.javaCompletionProposals(pos, filter, astRoot);
- if (values != null) {
- return values;
- }
- for (Iterator<JavaPersistentAttribute> stream = attributes(); stream.hasNext();) {
- values = stream.next().javaCompletionProposals(pos, filter, astRoot);
- if (values != null) {
- return values;
- }
- }
- return EmptyIterator.instance();
- }
-
- // it would be nice if the we passed in an astRoot here, but then we
- // would need to pass it to the XML structure nodes too...
- public JpaStructureNode getStructureNode(int offset) {
- CompilationUnit astRoot = this.buildASTRoot();
-
- if (this.contains(offset, astRoot)) {
- for (Iterator<JavaPersistentAttribute> stream = this.attributes(); stream.hasNext();) {
- JavaPersistentAttribute persistentAttribute = stream.next();
- if (persistentAttribute.contains(offset, astRoot)) {
- return persistentAttribute;
- }
- }
- return this;
- }
- return null;
- }
-
- protected CompilationUnit buildASTRoot() {
- return JDTTools.buildASTRoot(this.resourcePersistentType.getJpaCompilationUnit().getCompilationUnit());
- }
-
- public boolean contains(int offset, CompilationUnit astRoot) {
- TextRange fullTextRange = this.getFullTextRange(astRoot);
- // 'fullTextRange' will be null if the type no longer exists in the java;
- // the context model can be out of synch with the resource model
- // when a selection event occurs before the context model has a
- // chance to synch with the resource model via the update thread
- return (fullTextRange == null) ? false : fullTextRange.includes(offset);
- }
-
-
- protected TextRange getFullTextRange(CompilationUnit astRoot) {
- return this.resourcePersistentType.getTextRange(astRoot);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.getSelectionTextRange(astRoot);
- }
-
- public TextRange getSelectionTextRange(CompilationUnit astRoot) {
- return this.resourcePersistentType.getNameTextRange(astRoot);
- }
-
- public TextRange getSelectionTextRange() {
- return this.getSelectionTextRange(this.buildASTRoot());
- }
-
-
- public Iterator<PersistentType> inheritanceHierarchy() {
- // using a chain iterator to traverse up the inheritance tree
- return new ChainIterator<PersistentType>(this) {
- @Override
- protected PersistentType nextLink(PersistentType pt) {
- return pt.getParentPersistentType();
- }
- };
- }
-
- public PersistentType getParentPersistentType() {
- return this.parentPersistentType;
- }
-
- public void setParentPersistentType(PersistentType newParentPersistentType) {
- if (attributeValueHasNotChanged(this.parentPersistentType, newParentPersistentType)) {
- return;
- }
- PersistentType oldParentPersistentType = this.parentPersistentType;
- this.parentPersistentType = newParentPersistentType;
- firePropertyChanged(PersistentType.PARENT_PERSISTENT_TYPE_PROPERTY, oldParentPersistentType, newParentPersistentType);
- }
-
- public boolean hasAnyAttributeMappingAnnotations() {
- if (this.resourcePersistentType.hasAnyAttributeAnnotations()) {
- return true;
- }
- return false;
- }
-
- // ******************** Updating **********************
- protected void initialize(JavaResourcePersistentType jrpt) {
- this.resourcePersistentType = jrpt;
- this.parentPersistentType = this.parentPersistentType(jrpt);
- this.access = this.access(jrpt);
- this.name = this.name(jrpt);
- this.initializeMapping(jrpt);
- this.initializePersistentAttributes(jrpt);
- }
-
- protected void initializeMapping(JavaResourcePersistentType persistentTypeResource) {
- this.mapping = getJpaPlatform().buildJavaTypeMappingFromAnnotation(this.javaMappingAnnotationName(persistentTypeResource), this);
- this.mapping.initializeFromResource(persistentTypeResource);
- }
-
- protected void initializePersistentAttributes(JavaResourcePersistentType persistentTypeResource) {
- Iterator<JavaResourcePersistentAttribute> resourceAttributes = persistentTypeResource.fields();
- if (getAccess() == AccessType.PROPERTY) {
- resourceAttributes = persistentTypeResource.properties();
- }
-
- while (resourceAttributes.hasNext()) {
- this.attributes.add(createAttribute(resourceAttributes.next()));
- }
- }
-
- public void update(JavaResourcePersistentType jrpt) {
- this.resourcePersistentType = jrpt;
- getJpaFile(this.resourcePersistentType.getResourceModel()).addRootStructureNode(this.resourcePersistentType.getQualifiedName(), this);
- updateParentPersistentType(jrpt);
- updateAccess(jrpt);
- updateName(jrpt);
- updateMapping(jrpt);
- updatePersistentAttributes(jrpt);
- }
-
- protected void updateAccess(JavaResourcePersistentType jrpt) {
- this.setAccess(this.access(jrpt));
- }
-
- /**
- * Check the access "specified" by the java resource model.
- * Check xml mapping specified access first
- * If still null check java annotations if the xml is not metadata-complete = true
- * If still null then set to parentPersistentType access.
- * If still null check entity-mappings specified access setting if this persistent-type is listed in an orm.xml file
- * If still null check the persistence-unit default Access
- * Default to FIELD if all else fails.
- */
- protected AccessType access(JavaResourcePersistentType jrpt) {
- AccessType javaAccess = null;
- boolean metadataComplete = false;
- if (getOrmPersistentType() != null) {
- javaAccess = getOrmPersistentType().getMapping().getSpecifiedAccess();
- metadataComplete = getOrmPersistentType().getMapping().isMetadataComplete();
- }
- if (javaAccess == null && !metadataComplete) {
- javaAccess = AccessType.fromJavaResourceModel(jrpt.getAccess());
- }
- if (javaAccess == null) {
- if (getParentPersistentType() != null) {
- javaAccess = getParentPersistentType().getAccess();
- }
- }
- if (javaAccess == null) {
- if (getEntityMappings() != null) {
- javaAccess = getEntityMappings().getAccess();
- }
- }
- if (javaAccess == null) {
- //have to check persistence-unit separately in the case where it is not listed directly in an orm.xml
- //if it is listed in an orm.xml then the entityMappings().getAccess() check will cover persistence-unit.defaultAccess
- if (getPersistenceUnit() != null) {
- javaAccess = getPersistenceUnit().getDefaultAccess();
- }
- }
- if (javaAccess == null) {
- javaAccess = AccessType.FIELD;
- }
- return javaAccess;
- }
-
- protected void updateName(JavaResourcePersistentType jrpt) {
- this.setName(this.name(jrpt));
- }
-
- protected String name(JavaResourcePersistentType jrpt) {
- return jrpt.getQualifiedName();
- }
-
- protected void updateMapping(JavaResourcePersistentType jrpt) {
- String javaMappingAnnotationName = this.javaMappingAnnotationName(jrpt);
- if (getMapping().getAnnotationName() != javaMappingAnnotationName) {
- setMapping(createJavaTypeMappingFromAnnotation(javaMappingAnnotationName, jrpt));
- }
- else {
- getMapping().update(jrpt);
- }
- }
-
- protected JavaTypeMapping createJavaTypeMappingFromMappingKey(String key) {
- return getJpaPlatform().buildJavaTypeMappingFromMappingKey(key, this);
- }
-
- protected JavaTypeMapping createJavaTypeMappingFromAnnotation(String annotationName, JavaResourcePersistentType jrpt) {
- JavaTypeMapping typeMapping = getJpaPlatform().buildJavaTypeMappingFromAnnotation(annotationName, this);
- typeMapping.initializeFromResource(jrpt);
- return typeMapping;
- }
-
- protected String javaMappingAnnotationName(JavaResourcePersistentType jrpt) {
- Annotation mappingAnnotation = (Annotation) jrpt.getMappingAnnotation();
- if (mappingAnnotation != null) {
- return mappingAnnotation.getAnnotationName();
- }
- return null;
- }
-
- protected void updatePersistentAttributes(JavaResourcePersistentType jrpt) {
- ListIterator<JavaPersistentAttribute> contextAttributes = attributes();
- Iterator<JavaResourcePersistentAttribute> resourceAttributes = jrpt.fields();
- if (getAccess() == AccessType.PROPERTY) {
- resourceAttributes = jrpt.properties();
- }
-
- while (contextAttributes.hasNext()) {
- JavaPersistentAttribute persistentAttribute = contextAttributes.next();
- if (resourceAttributes.hasNext()) {
- persistentAttribute.update(resourceAttributes.next());
- }
- else {
- removeAttribute(persistentAttribute);
- }
- }
-
- while (resourceAttributes.hasNext()) {
- addAttribute(createAttribute(resourceAttributes.next()));
- }
- }
-
- protected JavaPersistentAttribute createAttribute(JavaResourcePersistentAttribute persistentAttributeResource) {
- JavaPersistentAttribute javaPersistentAttribute = getJpaFactory().buildJavaPersistentAttribute(this);
- javaPersistentAttribute.initializeFromResource(persistentAttributeResource);
- return javaPersistentAttribute;
- }
-
- public void updateParentPersistentType(JavaResourcePersistentType persistentTypeResource) {
- setParentPersistentType(parentPersistentType(persistentTypeResource));
- }
-
- protected PersistentType parentPersistentType(JavaResourcePersistentType persistentTypeResource) {
- return parentPersistentType(persistentTypeResource.getSuperClassQualifiedName());
- }
-
- protected PersistentType parentPersistentType(String fullyQualifiedTypeName) {
- PersistentType possibleParent = possibleParent(fullyQualifiedTypeName);
- if (possibleParent == null) {
- return null;
- }
- if (possibleParent.isMapped()) {
- return possibleParent;
- }
- return possibleParent.getParentPersistentType();
- }
-
- /**
- * JPA spec supports the case where there are non-persistent types in the hierarchy
- * This will check for a PersistentType with the given name in this PersistenceUnit.
- * If it is not found then find the JavaPersistentTypeResource and look for its parent type
- */
- protected PersistentType possibleParent(String fullyQualifiedTypeName) {
- PersistentType possibleParent = getPersistentType(fullyQualifiedTypeName);
- if (possibleParent != null) {
- return possibleParent;
- }
- JavaResourcePersistentType jrpt = getJpaProject().getJavaPersistentTypeResource(fullyQualifiedTypeName);
- return (jrpt == null) ? null : this.possibleParent(jrpt.getSuperClassQualifiedName());
- }
-
- protected PersistentType getPersistentType(String fullyQualifiedTypeName) {
- return getPersistenceUnit().getPersistentType(fullyQualifiedTypeName);
- }
-
- //*************** Validation ******************************************
- public void addToMessages(List<IMessage> messages) {
- //get astRoot here to pass down
- addToMessages(messages, this.buildASTRoot());
- }
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- try {
- this.mapping.addToMessages(messages, astRoot);
- } catch(Throwable t) {
- JptCorePlugin.log(t);
- }
- addAttributeMessages(messages, astRoot);
- }
-
- protected void addAttributeMessages(List<IMessage> messages, CompilationUnit astRoot) {
- for (JavaPersistentAttribute persistentAttribute : this.attributes) {
- try {
- persistentAttribute.addToMessages(messages, astRoot);
- } catch(Throwable t) {
- JptCorePlugin.log(t);
- }
- }
- }
-
- @Override
- public void toString(StringBuilder sb) {
- super.toString(sb);
- sb.append(getName());
- }
-
- public void dispose() {
- JpaFile jpaFile = getJpaFile(this.resourcePersistentType.getResourceModel());
-
- if (jpaFile != null) {
- //jpaFile can be null if the .java file was deleted,
- //rootStructureNodes are cleared in the dispose of JpaFile
- jpaFile.removeRootStructureNode(this.resourcePersistentType.getQualifiedName());
- }
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPrimaryKeyJoinColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPrimaryKeyJoinColumn.java
deleted file mode 100644
index 42c1f756ad..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPrimaryKeyJoinColumn.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaBaseJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-
-public class GenericJavaPrimaryKeyJoinColumn extends AbstractJavaNamedColumn<PrimaryKeyJoinColumnAnnotation>
- implements JavaPrimaryKeyJoinColumn
-{
- protected String specifiedReferencedColumnName;
-
- protected String defaultReferencedColumnName;
-
- protected PrimaryKeyJoinColumnAnnotation primaryKeyJoinColumnResource;
-
- public GenericJavaPrimaryKeyJoinColumn(JavaJpaContextNode parent, JavaBaseJoinColumn.Owner owner) {
- super(parent, owner);
- }
-
- @Override
- public void initializeFromResource(PrimaryKeyJoinColumnAnnotation column) {
- this.primaryKeyJoinColumnResource = column;
- super.initializeFromResource(column);
- this.specifiedReferencedColumnName = this.specifiedReferencedColumnName(column);
- this.defaultReferencedColumnName = this.defaultReferencedColumnName();
- }
-
- //************** JavaNamedColumn implementation ***************
- @Override
- public JavaBaseJoinColumn.Owner getOwner() {
- return (JavaBaseJoinColumn.Owner) super.getOwner();
- }
-
- @Override
- protected PrimaryKeyJoinColumnAnnotation getColumnResource() {
- return this.primaryKeyJoinColumnResource;
- }
-
- //************** IAbstractJoinColumn implementation ***************
-
- public String getReferencedColumnName() {
- return (this.specifiedReferencedColumnName == null) ? this.defaultReferencedColumnName : this.specifiedReferencedColumnName;
- }
-
- public String getSpecifiedReferencedColumnName() {
- return this.specifiedReferencedColumnName;
- }
-
- public void setSpecifiedReferencedColumnName(String newSpecifiedReferencedColumnName) {
- String oldSpecifiedReferencedColumnName = this.specifiedReferencedColumnName;
- this.specifiedReferencedColumnName = newSpecifiedReferencedColumnName;
- getColumnResource().setReferencedColumnName(newSpecifiedReferencedColumnName);
- firePropertyChanged(SPECIFIED_REFERENCED_COLUMN_NAME_PROPERTY, oldSpecifiedReferencedColumnName, newSpecifiedReferencedColumnName);
- }
-
- protected void setSpecifiedReferencedColumnName_(String newSpecifiedReferencedColumnName) {
- String oldSpecifiedReferencedColumnName = this.specifiedReferencedColumnName;
- this.specifiedReferencedColumnName = newSpecifiedReferencedColumnName;
- firePropertyChanged(SPECIFIED_REFERENCED_COLUMN_NAME_PROPERTY, oldSpecifiedReferencedColumnName, newSpecifiedReferencedColumnName);
- }
-
- public String getDefaultReferencedColumnName() {
- return this.defaultReferencedColumnName;
- }
-
- protected void setDefaultReferencedColumnName(String newDefaultReferencedColumnName) {
- String oldDefaultReferencedColumnName = this.defaultReferencedColumnName;
- this.defaultReferencedColumnName = newDefaultReferencedColumnName;
- firePropertyChanged(DEFAULT_REFERENCED_COLUMN_NAME_PROPERTY, oldDefaultReferencedColumnName, newDefaultReferencedColumnName);
- }
-
- public boolean isVirtual() {
- return getOwner().isVirtual(this);
- }
-
- @Override
- protected String getTableName() {
- return this.getOwner().getTypeMapping().getTableName();
- }
-
- public Column getDbReferencedColumn() {
- Table table = this.getDbReferencedColumnTable();
- return (table == null) ? null : table.columnNamed(this.getReferencedColumnName());
- }
-
- public Table getDbReferencedColumnTable() {
- return getOwner().getDbReferencedColumnTable();
- }
-
- public boolean referencedColumnNameTouches(int pos, CompilationUnit astRoot) {
- return this.getColumnResource().referencedColumnNameTouches(pos, astRoot);
- }
-
- private Iterator<String> candidateReferencedColumnNames() {
- Table table = this.getOwner().getDbReferencedColumnTable();
- return (table != null) ? table.columnNames() : EmptyIterator.<String> instance();
- }
-
- private Iterator<String> candidateReferencedColumnNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateReferencedColumnNames(), filter);
- }
-
- private Iterator<String> quotedCandidateReferencedColumnNames(Filter<String> filter) {
- return StringTools.quote(this.candidateReferencedColumnNames(filter));
- }
-
- @Override
- public Iterator<String> connectedJavaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.connectedJavaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.referencedColumnNameTouches(pos, astRoot)) {
- return this.quotedCandidateReferencedColumnNames(filter);
- }
- return null;
- }
-
- public boolean isReferencedColumnResolved() {
- return getDbReferencedColumn() != null;
- }
-
- public TextRange getReferencedColumnNameTextRange(CompilationUnit astRoot) {
- return this.getColumnResource().getReferencedColumnNameTextRange(astRoot);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- TextRange textRange = getColumnResource().getTextRange(astRoot);
- return (textRange != null) ? textRange : this.getOwner().getValidationTextRange(astRoot);
- }
-
- @Override
- public void update(PrimaryKeyJoinColumnAnnotation column) {
- this.primaryKeyJoinColumnResource = column;
- super.update(column);
- this.setSpecifiedReferencedColumnName_(this.specifiedReferencedColumnName(column));
- this.setDefaultReferencedColumnName(this.defaultReferencedColumnName());
- }
-
- protected String specifiedReferencedColumnName(PrimaryKeyJoinColumnAnnotation column) {
- return column.getReferencedColumnName();
- }
-
- //TODO not correct when we start supporting primaryKeyJoinColumns in 1-1 mappings
- protected String defaultReferencedColumnName() {
- return defaultName();
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaQueryHint.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaQueryHint.java
deleted file mode 100644
index e86a8de5aa..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaQueryHint.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.QueryHint;
-import org.eclipse.jpt.core.context.java.JavaQuery;
-import org.eclipse.jpt.core.context.java.JavaQueryHint;
-import org.eclipse.jpt.core.resource.java.QueryHintAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-public class GenericJavaQueryHint extends AbstractJavaJpaContextNode implements JavaQueryHint
-{
- protected String name;
-
- protected String value;
-
- protected QueryHintAnnotation queryHint;
-
- public GenericJavaQueryHint(JavaQuery parent) {
- super(parent);
- }
-
- public String getName() {
- return this.name;
- }
-
- public void setName(String newName) {
- String oldName = this.name;
- this.name = newName;
- this.queryHint.setName(newName);
- firePropertyChanged(QueryHint.NAME_PROPERTY, oldName, newName);
- }
-
- public String getValue() {
- return this.value;
- }
-
- public void setValue(String newValue) {
- String oldValue = this.value;
- this.value = newValue;
- this.queryHint.setValue(newValue);
- firePropertyChanged(QueryHint.VALUE_PROPERTY, oldValue, newValue);
- }
-
-
- public void initializeFromResource(QueryHintAnnotation queryHint) {
- this.queryHint = queryHint;
- this.name = queryHint.getName();
- this.value = queryHint.getValue();
- }
-
- public void update(QueryHintAnnotation queryHint) {
- this.queryHint = queryHint;
- this.setName(queryHint.getName());
- this.setValue(queryHint.getValue());
- }
-
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- // TODO Auto-generated method stub
- return null;
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSecondaryTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSecondaryTable.java
deleted file mode 100644
index 3dc0480727..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSecondaryTable.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.BaseJoinColumn;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.PrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.SecondaryTable;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.java.JavaBaseJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaSecondaryTable;
-import org.eclipse.jpt.core.internal.resource.java.NullPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementListIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public class GenericJavaSecondaryTable extends AbstractJavaTable
- implements JavaSecondaryTable
-{
- protected final List<JavaPrimaryKeyJoinColumn> specifiedPrimaryKeyJoinColumns;
-
- protected JavaPrimaryKeyJoinColumn defaultPrimaryKeyJoinColumn;
-
- protected SecondaryTableAnnotation secondaryTableResource;
-
- public GenericJavaSecondaryTable(JavaEntity parent) {
- super(parent);
- this.specifiedPrimaryKeyJoinColumns = new ArrayList<JavaPrimaryKeyJoinColumn>();
- }
-
- @Override
- public JavaEntity getParent() {
- return (JavaEntity) super.getParent();
- }
-
- //***************** AbstractJavaTable implementation ********************
-
- @Override
- protected String getAnnotationName() {
- return SecondaryTableAnnotation.ANNOTATION_NAME;
- }
-
- @Override
- protected SecondaryTableAnnotation getTableResource() {
- return this.secondaryTableResource;
- }
-
- @Override
- protected String defaultName() {
- return null;
- }
-
- //***************** ISecondaryTable implementation ********************
-
-
- public ListIterator<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns() {
- return this.containsSpecifiedPrimaryKeyJoinColumns() ? this.specifiedPrimaryKeyJoinColumns() : this.defaultPrimaryKeyJoinColumns();
- }
-
- public int primaryKeyJoinColumnsSize() {
- return this.containsSpecifiedPrimaryKeyJoinColumns() ? this.specifiedPrimaryKeyJoinColumnsSize() : this.defaultPrimaryKeyJoinColumnsSize();
- }
-
- public ListIterator<JavaPrimaryKeyJoinColumn> specifiedPrimaryKeyJoinColumns() {
- return new CloneListIterator<JavaPrimaryKeyJoinColumn>(this.specifiedPrimaryKeyJoinColumns);
- }
-
- public int specifiedPrimaryKeyJoinColumnsSize() {
- return this.specifiedPrimaryKeyJoinColumns.size();
- }
-
- public boolean containsSpecifiedPrimaryKeyJoinColumns() {
- return !this.specifiedPrimaryKeyJoinColumns.isEmpty();
- }
-
- public JavaPrimaryKeyJoinColumn getDefaultPrimaryKeyJoinColumn() {
- return this.defaultPrimaryKeyJoinColumn;
- }
-
- protected void setDefaultPrimaryKeyJoinColumn(JavaPrimaryKeyJoinColumn newPkJoinColumn) {
- JavaPrimaryKeyJoinColumn oldPkJoinColumn = this.defaultPrimaryKeyJoinColumn;
- this.defaultPrimaryKeyJoinColumn = newPkJoinColumn;
- firePropertyChanged(SecondaryTable.DEFAULT_PRIMARY_KEY_JOIN_COLUMN, oldPkJoinColumn, newPkJoinColumn);
- }
-
- protected ListIterator<JavaPrimaryKeyJoinColumn> defaultPrimaryKeyJoinColumns() {
- if (this.defaultPrimaryKeyJoinColumn != null) {
- return new SingleElementListIterator<JavaPrimaryKeyJoinColumn>(this.defaultPrimaryKeyJoinColumn);
- }
- return EmptyListIterator.instance();
- }
-
- protected int defaultPrimaryKeyJoinColumnsSize() {
- return (this.defaultPrimaryKeyJoinColumn == null) ? 0 : 1;
- }
-
- public JavaPrimaryKeyJoinColumn addSpecifiedPrimaryKeyJoinColumn(int index) {
- JavaPrimaryKeyJoinColumn oldDefaultPkJoinColumn = this.getDefaultPrimaryKeyJoinColumn();
- if (oldDefaultPkJoinColumn != null) {
- //null the default join column now if one already exists.
- //if one does not exist, there is already a specified join column.
- //Remove it now so that it doesn't get removed during an update and
- //cause change notifications to be sent to the UI in the wrong order
- this.defaultPrimaryKeyJoinColumn = null;
- }
- JavaPrimaryKeyJoinColumn primaryKeyJoinColumn = getJpaFactory().buildJavaPrimaryKeyJoinColumn(this, createPrimaryKeyJoinColumnOwner());
- this.specifiedPrimaryKeyJoinColumns.add(index, primaryKeyJoinColumn);
- PrimaryKeyJoinColumnAnnotation pkJoinColumnResource = this.secondaryTableResource.addPkJoinColumn(index);
- primaryKeyJoinColumn.initializeFromResource(pkJoinColumnResource);
- this.fireItemAdded(SecondaryTable.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST, index, primaryKeyJoinColumn);
- if (oldDefaultPkJoinColumn != null) {
- this.firePropertyChanged(SecondaryTable.DEFAULT_PRIMARY_KEY_JOIN_COLUMN, oldDefaultPkJoinColumn, null);
- }
- return primaryKeyJoinColumn;
- }
-
- protected void addSpecifiedPrimaryKeyJoinColumn(int index, JavaPrimaryKeyJoinColumn primaryKeyJoinColumn) {
- addItemToList(index, primaryKeyJoinColumn, this.specifiedPrimaryKeyJoinColumns, SecondaryTable.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST);
- }
-
- public void removeSpecifiedPrimaryKeyJoinColumn(PrimaryKeyJoinColumn joinColumn) {
- this.removeSpecifiedPrimaryKeyJoinColumn(this.specifiedPrimaryKeyJoinColumns.indexOf(joinColumn));
- }
-
- public void removeSpecifiedPrimaryKeyJoinColumn(int index) {
- JavaPrimaryKeyJoinColumn removedPrimaryKeyJoinColumn = this.specifiedPrimaryKeyJoinColumns.remove(index);
- if (!containsSpecifiedPrimaryKeyJoinColumns()) {
- //create the defaultJoinColumn now or this will happen during project update
- //after removing the join column from the resource model. That causes problems
- //in the UI because the change notifications end up in the wrong order.
- this.defaultPrimaryKeyJoinColumn = buildPrimaryKeyJoinColumn(new NullPrimaryKeyJoinColumn(this.secondaryTableResource));
- }
- this.secondaryTableResource.removePkJoinColumn(index);
- fireItemRemoved(SecondaryTable.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST, index, removedPrimaryKeyJoinColumn);
- if (this.defaultPrimaryKeyJoinColumn != null) {
- //fire change notification if a defaultJoinColumn was created above
- this.firePropertyChanged(Entity.DEFAULT_PRIMARY_KEY_JOIN_COLUMN, null, this.defaultPrimaryKeyJoinColumn);
- }
- }
-
- protected void removeSpecifiedPrimaryKeyJoinColumn_(JavaPrimaryKeyJoinColumn primaryKeyJoinColumn) {
- removeItemFromList(primaryKeyJoinColumn, this.specifiedPrimaryKeyJoinColumns, SecondaryTable.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST);
- }
-
- public void moveSpecifiedPrimaryKeyJoinColumn(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.specifiedPrimaryKeyJoinColumns, targetIndex, sourceIndex);
- this.secondaryTableResource.movePkJoinColumn(targetIndex, sourceIndex);
- fireItemMoved(SecondaryTable.SPECIFIED_PRIMARY_KEY_JOIN_COLUMNS_LIST, targetIndex, sourceIndex);
- }
-
- public JavaEntity getJavaEntity() {
- return getParent();
- }
-
-
- //********************* updating ************************
-
- public void initializeFromResource(SecondaryTableAnnotation secondaryTable) {
- super.initializeFromResource(secondaryTable);
- this.secondaryTableResource = secondaryTable;
- this.initializeSpecifiedPrimaryKeyJoinColumns(secondaryTable);
- this.initializeDefaultPrimaryKeyJoinColumn(secondaryTable);
- }
-
- protected void initializeSpecifiedPrimaryKeyJoinColumns(SecondaryTableAnnotation secondaryTable) {
- ListIterator<PrimaryKeyJoinColumnAnnotation> annotations = secondaryTable.pkJoinColumns();
-
- while(annotations.hasNext()) {
- this.specifiedPrimaryKeyJoinColumns.add(buildPrimaryKeyJoinColumn(annotations.next()));
- }
- }
-
- protected boolean shouldBuildDefaultPrimaryKeyJoinColumn() {
- return !containsSpecifiedPrimaryKeyJoinColumns();
- }
-
- protected void initializeDefaultPrimaryKeyJoinColumn(SecondaryTableAnnotation secondaryTable) {
- if (!shouldBuildDefaultPrimaryKeyJoinColumn()) {
- return;
- }
- this.defaultPrimaryKeyJoinColumn = buildPrimaryKeyJoinColumn(new NullPrimaryKeyJoinColumn(secondaryTable));
- }
-
-
- public void update(SecondaryTableAnnotation secondaryTableResource) {
- this.secondaryTableResource = secondaryTableResource;
- super.update(secondaryTableResource);
- this.updateSpecifiedPrimaryKeyJoinColumns(secondaryTableResource);
- this.updateDefaultPrimaryKeyJoinColumn(secondaryTableResource);
- }
-
- protected void updateSpecifiedPrimaryKeyJoinColumns(SecondaryTableAnnotation secondaryTableResource) {
- ListIterator<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns = specifiedPrimaryKeyJoinColumns();
- ListIterator<PrimaryKeyJoinColumnAnnotation> resourcePrimaryKeyJoinColumns = secondaryTableResource.pkJoinColumns();
-
- while (primaryKeyJoinColumns.hasNext()) {
- JavaPrimaryKeyJoinColumn primaryKeyJoinColumn = primaryKeyJoinColumns.next();
- if (resourcePrimaryKeyJoinColumns.hasNext()) {
- primaryKeyJoinColumn.update(resourcePrimaryKeyJoinColumns.next());
- }
- else {
- removeSpecifiedPrimaryKeyJoinColumn_(primaryKeyJoinColumn);
- }
- }
-
- while (resourcePrimaryKeyJoinColumns.hasNext()) {
- addSpecifiedPrimaryKeyJoinColumn(specifiedPrimaryKeyJoinColumnsSize(), buildPrimaryKeyJoinColumn(resourcePrimaryKeyJoinColumns.next()));
- }
- }
-
- protected void updateDefaultPrimaryKeyJoinColumn(SecondaryTableAnnotation secondaryTableResource) {
- if (!shouldBuildDefaultPrimaryKeyJoinColumn()) {
- setDefaultPrimaryKeyJoinColumn(null);
- return;
- }
- if (getDefaultPrimaryKeyJoinColumn() == null) {
- this.setDefaultPrimaryKeyJoinColumn(buildPrimaryKeyJoinColumn(new NullPrimaryKeyJoinColumn(secondaryTableResource)));
- }
- else {
- this.defaultPrimaryKeyJoinColumn.update(new NullPrimaryKeyJoinColumn(secondaryTableResource));
- }
- }
-
- protected JavaPrimaryKeyJoinColumn buildPrimaryKeyJoinColumn(PrimaryKeyJoinColumnAnnotation primaryKeyJoinColumnResource) {
- JavaPrimaryKeyJoinColumn primaryKeyJoinColumn = getJpaFactory().buildJavaPrimaryKeyJoinColumn(this, createPrimaryKeyJoinColumnOwner());
- primaryKeyJoinColumn.initializeFromResource(primaryKeyJoinColumnResource);
- return primaryKeyJoinColumn;
- }
-
- protected JavaBaseJoinColumn.Owner createPrimaryKeyJoinColumnOwner() {
- return new PrimaryKeyJoinColumnOwner();
- }
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- boolean doContinue = this.connectionProfileIsActive();
- String schema = getSchema();
-
- if (doContinue && ! hasResolvedSchema()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_SCHEMA,
- new String[] {schema, getName()},
- this,
- getSchemaTextRange(astRoot))
- );
- doContinue = false;
- }
-
- if (doContinue && ! isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_NAME,
- new String[] {getName()},
- this,
- getNameTextRange(astRoot))
- );
- }
- }
-
-
- //********************* code completion ************************
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- for (JavaPrimaryKeyJoinColumn column : CollectionTools.iterable(this.primaryKeyJoinColumns())) {
- result = column.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- }
- return null;
- }
-
- public boolean isVirtual() {
- return false;
- }
-
- class PrimaryKeyJoinColumnOwner implements JavaBaseJoinColumn.Owner
- {
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return GenericJavaSecondaryTable.this.getValidationTextRange(astRoot);
- }
-
- public TypeMapping getTypeMapping() {
- return GenericJavaSecondaryTable.this.getJavaEntity();
- }
-
- public Table getDbTable(String tableName) {
- return GenericJavaSecondaryTable.this.getDbTable();
- }
-
- public Table getDbReferencedColumnTable() {
- return getTypeMapping().getPrimaryDbTable();
- }
-
- public int joinColumnsSize() {
- return GenericJavaSecondaryTable.this.primaryKeyJoinColumnsSize();
- }
-
- public boolean isVirtual(BaseJoinColumn joinColumn) {
- return GenericJavaSecondaryTable.this.defaultPrimaryKeyJoinColumn == joinColumn;
- }
-
- public String getDefaultColumnName() {
- if (joinColumnsSize() != 1) {
- return null;
- }
- return getJavaEntity().getPrimaryKeyColumnName();
-
- }
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSequenceGenerator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSequenceGenerator.java
deleted file mode 100644
index 4c406448fb..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSequenceGenerator.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jpt.core.context.SequenceGenerator;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaSequenceGenerator;
-import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation;
-
-
-public class GenericJavaSequenceGenerator extends AbstractJavaGenerator
- implements JavaSequenceGenerator
-{
- protected String specifiedSequenceName;
-
- public GenericJavaSequenceGenerator(JavaJpaContextNode parent) {
- super(parent);
- }
-
- @Override
- protected SequenceGeneratorAnnotation getGeneratorResource() {
- return (SequenceGeneratorAnnotation) super.getGeneratorResource();
- }
-
- public void initializeFromResource(SequenceGeneratorAnnotation sequenceGenerator) {
- super.initializeFromResource(sequenceGenerator);
- this.specifiedSequenceName = this.specifiedSequenceName(sequenceGenerator);
- }
-
- public Integer getDefaultInitialValue() {
- return SequenceGenerator.DEFAULT_INITIAL_VALUE;
- }
-
- public String getSequenceName() {
- return (this.getSpecifiedSequenceName() == null) ? getDefaultSequenceName() : this.getSpecifiedSequenceName();
- }
-
- public String getSpecifiedSequenceName() {
- return this.specifiedSequenceName;
- }
-
- public void setSpecifiedSequenceName(String newSpecifiedSequenceName) {
- String oldSpecifiedSequenceName = this.specifiedSequenceName;
- this.specifiedSequenceName = newSpecifiedSequenceName;
- getGeneratorResource().setSequenceName(newSpecifiedSequenceName);
- firePropertyChanged(SPECIFIED_SEQUENCE_NAME_PROPERTY, oldSpecifiedSequenceName, newSpecifiedSequenceName);
- }
-
- protected void setSpecifiedSequenceName_(String newSpecifiedSequenceName) {
- String oldSpecifiedSequenceName = this.specifiedSequenceName;
- this.specifiedSequenceName = newSpecifiedSequenceName;
- firePropertyChanged(SPECIFIED_SEQUENCE_NAME_PROPERTY, oldSpecifiedSequenceName, newSpecifiedSequenceName);
- }
-
- public String getDefaultSequenceName() {
- return null;
- }
-
- public void update(SequenceGeneratorAnnotation sequenceGenerator) {
- super.update(sequenceGenerator);
- this.setSpecifiedSequenceName_(this.specifiedSequenceName(sequenceGenerator));
- }
-
- protected String specifiedSequenceName(SequenceGeneratorAnnotation generatorResource) {
- return generatorResource.getSequenceName();
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTable.java
deleted file mode 100644
index 7b22f2ad57..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTable.java
+++ /dev/null
@@ -1,138 +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.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaTable;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.resource.java.TableAnnotation;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaTable extends AbstractJavaTable implements JavaTable
-{
- protected JavaResourcePersistentMember persistentResource;
-
- public GenericJavaTable(JavaEntity parent) {
- super(parent);
- }
-
- public void initializeFromResource(JavaResourcePersistentMember persistentResource) {
- this.persistentResource = persistentResource;
- initializeFromResource(getTableResource());
- }
-
-
- //query for the table resource every time on setters.
- //call one setter and the tableResource could change.
- //You could call more than one setter before this object has received any notification
- //from the java resource model
- @Override
- protected TableAnnotation getTableResource() {
- //TODO get the NullTable from the resource model or build it here in the context model??
- return (TableAnnotation) this.persistentResource.getNonNullAnnotation(getAnnotationName());
- }
-
- @Override
- protected String getAnnotationName() {
- return TableAnnotation.ANNOTATION_NAME;
- }
-
- @Override
- public JavaEntity getParent() {
- return (JavaEntity) super.getParent();
- }
-
- protected JavaEntity getJavaEntity() {
- return getParent();
- }
-
- protected Entity getRootEntity() {
- return getJavaEntity().getRootEntity();
- }
-
- @Override
- /**
- * Table name default to the owning java entity name.
- * If this entity is part of a single table inheritance hierarchy, table
- * name defaults to the root entity's table name.
- */
- protected String defaultName() {
- if (getJavaEntity().getInheritanceStrategy() == InheritanceType.SINGLE_TABLE) {
- if (getRootEntity() != getJavaEntity()) {
- return getRootEntity().getTable().getName();
- }
- }
- return getJavaEntity().getName();
- }
-
- @Override
- protected String defaultSchema() {
- if (getJavaEntity().getInheritanceStrategy() == InheritanceType.SINGLE_TABLE) {
- if (getRootEntity() != getJavaEntity()) {
- return getRootEntity().getTable().getSchema();
- }
- }
- return super.defaultSchema();
- }
-
- @Override
- protected String defaultCatalog() {
- if (getJavaEntity().getInheritanceStrategy() == InheritanceType.SINGLE_TABLE) {
- if (getRootEntity() != getJavaEntity()) {
- return getRootEntity().getTable().getCatalog();
- }
- }
- return super.defaultCatalog();
- }
-
- public void update(JavaResourcePersistentMember persistentResource) {
- this.persistentResource = persistentResource;
- this.update(getTableResource());
- }
-
- //******************* validation **********************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- boolean doContinue = this.connectionProfileIsActive();
- String schema = getSchema();
-
- if (doContinue && ! hasResolvedSchema()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.TABLE_UNRESOLVED_SCHEMA,
- new String[] {schema, getName()},
- this,
- getSchemaTextRange(astRoot))
- );
- doContinue = false;
- }
-
- if (doContinue && ! isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.TABLE_UNRESOLVED_NAME,
- new String[] {getName()},
- this,
- getNameTextRange(astRoot))
- );
- }
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java
deleted file mode 100644
index 63d687771d..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTableGenerator.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.core.context.TableGenerator;
-import org.eclipse.jpt.core.context.UniqueConstraint;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaTableGenerator;
-import org.eclipse.jpt.core.context.java.JavaUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-
-public class GenericJavaTableGenerator extends AbstractJavaGenerator
- implements JavaTableGenerator, UniqueConstraint.Owner
-{
-
- protected String specifiedTable;
-
- protected String defaultTable;
-
- protected String specifiedCatalog;
-
- protected String defaultCatalog;
-
- protected String specifiedSchema;
-
- protected String defaultSchema;
-
- protected String specifiedPkColumnName;
-
- protected String defaultPkColumnName;
-
- protected String specifiedValueColumnName;
-
- protected String defaultValueColumnName;
-
- protected String specifiedPkColumnValue;
-
- protected String defaultPkColumnValue;
-
- protected final List<JavaUniqueConstraint> uniqueConstraints;
-
- public GenericJavaTableGenerator(JavaJpaContextNode parent) {
- super(parent);
- this.uniqueConstraints = new ArrayList<JavaUniqueConstraint>();
- }
-
- @Override
- protected TableGeneratorAnnotation getGeneratorResource() {
- return (TableGeneratorAnnotation) super.getGeneratorResource();
- }
-
- public Integer getDefaultInitialValue() {
- return TableGenerator.DEFAULT_INITIAL_VALUE;
- }
-
- public String getTable() {
- return (this.getSpecifiedTable() == null) ? getDefaultTable() : this.getSpecifiedTable();
- }
-
- public String getSpecifiedTable() {
- return this.specifiedTable;
- }
-
- public void setSpecifiedTable(String newSpecifiedTable) {
- String oldSpecifiedTable = this.specifiedTable;
- this.specifiedTable = newSpecifiedTable;
- getGeneratorResource().setTable(newSpecifiedTable);
- firePropertyChanged(SPECIFIED_TABLE_PROPERTY, oldSpecifiedTable, newSpecifiedTable);
- }
-
- protected void setSpecifiedTable_(String newSpecifiedTable) {
- String oldSpecifiedTable = this.specifiedTable;
- this.specifiedTable = newSpecifiedTable;
- firePropertyChanged(SPECIFIED_TABLE_PROPERTY, oldSpecifiedTable, newSpecifiedTable);
- }
-
- public String getDefaultTable() {
- return this.defaultTable;
- }
-
- public String getCatalog() {
- return (this.getSpecifiedCatalog() == null) ? getDefaultCatalog() : this.getSpecifiedCatalog();
- }
-
- public String getSpecifiedCatalog() {
- return this.specifiedCatalog;
- }
-
- public void setSpecifiedCatalog(String newSpecifiedCatalog) {
- String oldSpecifiedCatalog = this.specifiedCatalog;
- this.specifiedCatalog = newSpecifiedCatalog;
- getGeneratorResource().setCatalog(newSpecifiedCatalog);
- firePropertyChanged(SPECIFIED_CATALOG_PROPERTY, oldSpecifiedCatalog, newSpecifiedCatalog);
- }
-
- protected void setSpecifiedCatalog_(String newSpecifiedCatalog) {
- String oldSpecifiedCatalog = this.specifiedCatalog;
- this.specifiedCatalog = newSpecifiedCatalog;
- firePropertyChanged(SPECIFIED_CATALOG_PROPERTY, oldSpecifiedCatalog, newSpecifiedCatalog);
- }
-
- public String getDefaultCatalog() {
- return this.defaultCatalog;
- }
-
- protected void setDefaultCatalog(String newDefaultCatalog) {
- String oldDefaultCatalog = this.defaultCatalog;
- this.defaultCatalog = newDefaultCatalog;
- firePropertyChanged(DEFAULT_CATALOG_PROPERTY, oldDefaultCatalog, newDefaultCatalog);
- }
-
- public String getSchema() {
- return (this.getSpecifiedSchema() == null) ? getDefaultSchema() : this.getSpecifiedSchema();
- }
-
- public String getSpecifiedSchema() {
- return this.specifiedSchema;
- }
-
- public void setSpecifiedSchema(String newSpecifiedSchema) {
- String oldSpecifiedSchema = this.specifiedSchema;
- this.specifiedSchema = newSpecifiedSchema;
- getGeneratorResource().setSchema(newSpecifiedSchema);
- firePropertyChanged(SPECIFIED_SCHEMA_PROPERTY, oldSpecifiedSchema, newSpecifiedSchema);
- }
-
- protected void setSpecifiedSchema_(String newSpecifiedSchema) {
- String oldSpecifiedSchema = this.specifiedSchema;
- this.specifiedSchema = newSpecifiedSchema;
- firePropertyChanged(SPECIFIED_SCHEMA_PROPERTY, oldSpecifiedSchema, newSpecifiedSchema);
- }
-
- public String getDefaultSchema() {
- return this.defaultSchema;
- }
-
- protected void setDefaultSchema(String newDefaultSchema) {
- String oldDefaultSchema = this.defaultSchema;
- this.defaultSchema = newDefaultSchema;
- firePropertyChanged(DEFAULT_SCHEMA_PROPERTY, oldDefaultSchema, newDefaultSchema);
- }
-
- public String getPkColumnName() {
- return (this.getSpecifiedPkColumnName() == null) ? getDefaultPkColumnName() : this.getSpecifiedPkColumnName();
- }
-
- public String getSpecifiedPkColumnName() {
- return this.specifiedPkColumnName;
- }
-
- public void setSpecifiedPkColumnName(String newSpecifiedPkColumnName) {
- String oldSpecifiedPkColumnName = this.specifiedPkColumnName;
- this.specifiedPkColumnName = newSpecifiedPkColumnName;
- getGeneratorResource().setPkColumnName(newSpecifiedPkColumnName);
- firePropertyChanged(SPECIFIED_PK_COLUMN_NAME_PROPERTY, oldSpecifiedPkColumnName, newSpecifiedPkColumnName);
- }
-
- protected void setSpecifiedPkColumnName_(String newSpecifiedPkColumnName) {
- String oldSpecifiedPkColumnName = this.specifiedPkColumnName;
- this.specifiedPkColumnName = newSpecifiedPkColumnName;
- firePropertyChanged(SPECIFIED_PK_COLUMN_NAME_PROPERTY, oldSpecifiedPkColumnName, newSpecifiedPkColumnName);
- }
-
- public String getDefaultPkColumnName() {
- return this.defaultPkColumnName;
- }
-
- public String getValueColumnName() {
- return (this.getSpecifiedValueColumnName() == null) ? getDefaultValueColumnName() : this.getSpecifiedValueColumnName();
- }
-
- public String getSpecifiedValueColumnName() {
- return this.specifiedValueColumnName;
- }
-
- public void setSpecifiedValueColumnName(String newSpecifiedValueColumnName) {
- String oldSpecifiedValueColumnName = this.specifiedValueColumnName;
- this.specifiedValueColumnName = newSpecifiedValueColumnName;
- getGeneratorResource().setValueColumnName(newSpecifiedValueColumnName);
- firePropertyChanged(SPECIFIED_VALUE_COLUMN_NAME_PROPERTY, oldSpecifiedValueColumnName, newSpecifiedValueColumnName);
- }
-
- protected void setSpecifiedValueColumnName_(String newSpecifiedValueColumnName) {
- String oldSpecifiedValueColumnName = this.specifiedValueColumnName;
- this.specifiedValueColumnName = newSpecifiedValueColumnName;
- firePropertyChanged(SPECIFIED_VALUE_COLUMN_NAME_PROPERTY, oldSpecifiedValueColumnName, newSpecifiedValueColumnName);
- }
-
- public String getDefaultValueColumnName() {
- return this.defaultValueColumnName;
- }
-
- public String getPkColumnValue() {
- return (this.getSpecifiedPkColumnValue() == null) ? getDefaultPkColumnValue() : this.getSpecifiedPkColumnValue();
- }
-
- public String getSpecifiedPkColumnValue() {
- return this.specifiedPkColumnValue;
- }
-
- public void setSpecifiedPkColumnValue(String newSpecifiedPkColumnValue) {
- String oldSpecifiedPkColumnValue = this.specifiedPkColumnValue;
- this.specifiedPkColumnValue = newSpecifiedPkColumnValue;
- getGeneratorResource().setPkColumnValue(newSpecifiedPkColumnValue);
- firePropertyChanged(SPECIFIED_PK_COLUMN_VALUE_PROPERTY, oldSpecifiedPkColumnValue, newSpecifiedPkColumnValue);
- }
-
- public void setSpecifiedPkColumnValue_(String newSpecifiedPkColumnValue) {
- String oldSpecifiedPkColumnValue = this.specifiedPkColumnValue;
- this.specifiedPkColumnValue = newSpecifiedPkColumnValue;
- firePropertyChanged(SPECIFIED_PK_COLUMN_VALUE_PROPERTY, oldSpecifiedPkColumnValue, newSpecifiedPkColumnValue);
- }
-
- public String getDefaultPkColumnValue() {
- return this.defaultPkColumnValue;
- }
-
-
- // ********** unique constraints **********
-
- public ListIterator<JavaUniqueConstraint> uniqueConstraints() {
- return new CloneListIterator<JavaUniqueConstraint>(this.uniqueConstraints);
- }
-
- public int uniqueConstraintsSize() {
- return this.uniqueConstraints.size();
- }
-
- public JavaUniqueConstraint addUniqueConstraint(int index) {
- JavaUniqueConstraint uniqueConstraint = getJpaFactory().buildJavaUniqueConstraint(this, this);
- this.uniqueConstraints.add(index, uniqueConstraint);
- UniqueConstraintAnnotation uniqueConstraintAnnotation = this.getGeneratorResource().addUniqueConstraint(index);
- uniqueConstraint.initialize(uniqueConstraintAnnotation);
- fireItemAdded(TableGenerator.UNIQUE_CONSTRAINTS_LIST, index, uniqueConstraint);
- return uniqueConstraint;
- }
-
- public void removeUniqueConstraint(UniqueConstraint uniqueConstraint) {
- this.removeUniqueConstraint(this.uniqueConstraints.indexOf(uniqueConstraint));
- }
-
- public void removeUniqueConstraint(int index) {
- JavaUniqueConstraint removedUniqueConstraint = this.uniqueConstraints.remove(index);
- this.getGeneratorResource().removeUniqueConstraint(index);
- fireItemRemoved(TableGenerator.UNIQUE_CONSTRAINTS_LIST, index, removedUniqueConstraint);
- }
-
- public void moveUniqueConstraint(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.uniqueConstraints, targetIndex, sourceIndex);
- this.getGeneratorResource().moveUniqueConstraint(targetIndex, sourceIndex);
- fireItemMoved(TableGenerator.UNIQUE_CONSTRAINTS_LIST, targetIndex, sourceIndex);
- }
-
- protected void addUniqueConstraint(int index, JavaUniqueConstraint uniqueConstraint) {
- addItemToList(index, uniqueConstraint, this.uniqueConstraints, TableGenerator.UNIQUE_CONSTRAINTS_LIST);
- }
-
- protected void removeUniqueConstraint_(JavaUniqueConstraint uniqueConstraint) {
- removeItemFromList(uniqueConstraint, this.uniqueConstraints, TableGenerator.UNIQUE_CONSTRAINTS_LIST);
- }
-
-
- //******************* UniqueConstraint.Owner implementation ******************
-
- public Iterator<String> candidateUniqueConstraintColumnNames() {
- org.eclipse.jpt.db.Table dbTable = getDbTable();
- if (dbTable != null) {
- return dbTable.columnNames();
- }
- return EmptyIterator.instance();
- }
-
-
- // ********** java resource model -> java context model **********
-
- public void initializeFromResource(TableGeneratorAnnotation tableGenerator) {
- super.initializeFromResource(tableGenerator);
- this.specifiedTable = this.specifiedTable(tableGenerator);
- this.specifiedCatalog = this.specifiedCatalog(tableGenerator);
- this.defaultCatalog = this.defaultCatalog();
- this.specifiedSchema = this.specifiedSchema(tableGenerator);
- this.defaultSchema = this.defaultSchema();
- this.specifiedPkColumnName = this.specifiedPkColumnName(tableGenerator);
- this.specifiedValueColumnName = this.specifiedValueColumnName(tableGenerator);
- this.specifiedPkColumnValue = this.specifiedPkColumnValue(tableGenerator);
- this.initializeUniqueConstraints(tableGenerator);
- }
-
- protected void initializeUniqueConstraints(TableGeneratorAnnotation tableGenerator) {
- for (UniqueConstraintAnnotation uniqueConstraintAnnotation : CollectionTools.iterable(tableGenerator.uniqueConstraints())) {
- this.uniqueConstraints.add(buildUniqueConstraint(uniqueConstraintAnnotation));
- }
- }
-
- public void update(TableGeneratorAnnotation tableGenerator) {
- super.update(tableGenerator);
- this.setSpecifiedTable_(this.specifiedTable(tableGenerator));
- this.setSpecifiedCatalog_(this.specifiedCatalog(tableGenerator));
- this.setDefaultCatalog(this.defaultCatalog());
- this.setSpecifiedSchema_(this.specifiedSchema(tableGenerator));
- this.setDefaultSchema(this.defaultSchema());
- this.setSpecifiedPkColumnName_(this.specifiedPkColumnName(tableGenerator));
- this.setSpecifiedValueColumnName_(this.specifiedValueColumnName(tableGenerator));
- this.setSpecifiedPkColumnValue_(this.specifiedPkColumnValue(tableGenerator));
- this.updateUniqueConstraints(tableGenerator);
- }
-
- protected void updateUniqueConstraints(TableGeneratorAnnotation tableGenerator) {
- ListIterator<JavaUniqueConstraint> uniqueConstraints = uniqueConstraints();
- ListIterator<UniqueConstraintAnnotation> resourceUniqueConstraints = tableGenerator.uniqueConstraints();
-
- while (uniqueConstraints.hasNext()) {
- JavaUniqueConstraint uniqueConstraint = uniqueConstraints.next();
- if (resourceUniqueConstraints.hasNext()) {
- uniqueConstraint.update(resourceUniqueConstraints.next());
- }
- else {
- removeUniqueConstraint_(uniqueConstraint);
- }
- }
-
- while (resourceUniqueConstraints.hasNext()) {
- addUniqueConstraint(uniqueConstraintsSize(), buildUniqueConstraint(resourceUniqueConstraints.next()));
- }
- }
-
- protected JavaUniqueConstraint buildUniqueConstraint(UniqueConstraintAnnotation uniqueConstraintAnnotation) {
- JavaUniqueConstraint uniqueConstraint = getJpaFactory().buildJavaUniqueConstraint(this, this);
- uniqueConstraint.initialize(uniqueConstraintAnnotation);
- return uniqueConstraint;
- }
-
- protected String specifiedTable(TableGeneratorAnnotation tableGenerator) {
- return tableGenerator.getTable();
- }
-
- protected String specifiedCatalog(TableGeneratorAnnotation tableGenerator) {
- return tableGenerator.getCatalog();
- }
-
- protected String specifiedSchema(TableGeneratorAnnotation tableGenerator) {
- return tableGenerator.getSchema();
- }
-
- protected String specifiedPkColumnName(TableGeneratorAnnotation tableGenerator) {
- return tableGenerator.getPkColumnName();
- }
-
- protected String specifiedValueColumnName(TableGeneratorAnnotation tableGenerator) {
- return tableGenerator.getValueColumnName();
- }
-
- protected String specifiedPkColumnValue(TableGeneratorAnnotation tableGenerator) {
- return tableGenerator.getPkColumnValue();
- }
-
- protected String defaultSchema() {
- if (getEntityMappings() != null) {
- return getEntityMappings().getSchema();
- }
- return getPersistenceUnit().getDefaultSchema();
- }
-
- protected String defaultCatalog() {
- if (getEntityMappings() != null) {
- return getEntityMappings().getCatalog();
- }
- return getPersistenceUnit().getDefaultCatalog();
- }
-
- public Table getDbTable() {
- Schema schema = this.getDbSchema();
- return (schema == null) ? null : schema.tableNamed(this.getTable());
- }
-
- public Schema getDbSchema() {
- return this.getDatabase().schemaNamed(this.getSchema());
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTransientMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTransientMapping.java
deleted file mode 100644
index d7d919db68..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTransientMapping.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaTransientMapping;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaTransientMapping extends AbstractJavaAttributeMapping<TransientAnnotation>
- implements JavaTransientMapping
-{
- public GenericJavaTransientMapping(JavaPersistentAttribute parent) {
- super(parent);
- }
-
- public String getKey() {
- return MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return TransientAnnotation.ANNOTATION_NAME;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return EmptyIterator.instance();
- }
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaUniqueConstraint.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaUniqueConstraint.java
deleted file mode 100644
index 47332c31f3..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaUniqueConstraint.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.UniqueConstraint;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-public class GenericJavaUniqueConstraint extends AbstractJavaJpaContextNode
- implements JavaUniqueConstraint
-{
-
- protected final List<String> columnNames;
-
- protected UniqueConstraintAnnotation uniqueConstraintAnnotation;
-
- protected Owner owner;
- public GenericJavaUniqueConstraint(JavaJpaContextNode parent, Owner owner) {
- super(parent);
- this.owner = owner;
- this.columnNames = new ArrayList<String>();
- }
-
- public Owner getOwner() {
- return this.owner;
- }
-
- public ListIterator<String> columnNames() {
- return new CloneListIterator<String>(this.columnNames);
- }
-
- public int columnNamesSize() {
- return this.columnNames.size();
- }
-
- public void addColumnName(int index, String columnName) {
- this.columnNames.add(index, columnName);
- this.uniqueConstraintAnnotation.addColumnName(index, columnName);
- fireItemAdded(UniqueConstraint.COLUMN_NAMES_LIST, index, columnName);
- }
-
- protected void addColumnName_(int index, String columnName) {
- this.columnNames.add(index, columnName);
- fireItemAdded(UniqueConstraint.COLUMN_NAMES_LIST, index, columnName);
- }
-
- public void removeColumnName(String columnName) {
- this.removeColumnName(this.columnNames.indexOf(columnName));
- }
-
- public void removeColumnName(int index) {
- String removedColumnName = this.columnNames.remove(index);
- this.uniqueConstraintAnnotation.removeColumnName(index);
- fireItemRemoved(UniqueConstraint.COLUMN_NAMES_LIST, index, removedColumnName);
- }
-
- protected void removeColumnName_(int index) {
- String removedColumnName = this.columnNames.remove(index);
- fireItemRemoved(UniqueConstraint.COLUMN_NAMES_LIST, index, removedColumnName);
- }
-
- public void moveColumnName(int targetIndex, int sourceIndex) {
- CollectionTools.move(this.columnNames, targetIndex, sourceIndex);
- this.uniqueConstraintAnnotation.moveColumnName(targetIndex, sourceIndex);
- fireItemMoved(UniqueConstraint.COLUMN_NAMES_LIST, targetIndex, sourceIndex);
- }
-
- public void initialize(UniqueConstraintAnnotation uniqueConstraintAnnotation) {
- this.uniqueConstraintAnnotation = uniqueConstraintAnnotation;
- this.initializeColumnNames(uniqueConstraintAnnotation);
- }
-
- protected void initializeColumnNames(UniqueConstraintAnnotation uniqueConstraintAnnotation) {
- ListIterator<String> annotationColumnNames = uniqueConstraintAnnotation.columnNames();
-
- for (String annotationColumnName : CollectionTools.iterable(annotationColumnNames)) {
- this.columnNames.add(annotationColumnName);
- }
- }
-
- public void update(UniqueConstraintAnnotation uniqueConstraintAnnotation) {
- this.uniqueConstraintAnnotation = uniqueConstraintAnnotation;
- this.updateColumnNames(uniqueConstraintAnnotation);
- }
-
- protected void updateColumnNames(UniqueConstraintAnnotation uniqueConstraintAnnotation) {
- ListIterator<String> annotationColumnNames = uniqueConstraintAnnotation.columnNames();
-
- int index = 0;
- for (String annotationColumnName : CollectionTools.iterable(annotationColumnNames)) {
- if (columnNamesSize() > index) {
- if (this.columnNames.get(index) != annotationColumnName) {
- addColumnName_(index, annotationColumnName);
- }
- }
- else {
- addColumnName_(index, annotationColumnName);
- }
- index++;
- }
-
- for ( ; index < columnNamesSize(); ) {
- removeColumnName_(index);
- }
- }
-
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.uniqueConstraintAnnotation.getTextRange(astRoot);
- }
-
- private boolean columnNamesTouches(int pos, CompilationUnit astRoot) {
- return this.uniqueConstraintAnnotation.columnNamesTouches(pos, astRoot);
- }
-
- private Iterator<String> candidateColumnNames() {
- return this.getOwner().candidateUniqueConstraintColumnNames();
- }
-
- private Iterator<String> candidateColumnNames(Filter<String> filter) {
- return new FilteringIterator<String, String>(this.candidateColumnNames(), filter);
- }
-
- private Iterator<String> quotedCandidateColumnNames(Filter<String> filter) {
- return StringTools.quote(this.candidateColumnNames(filter));
- }
-
- @Override
- public Iterator<String> connectedJavaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.connectedJavaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- if (this.columnNamesTouches(pos, astRoot)) {
- return this.quotedCandidateColumnNames(filter);
- }
- return null;
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaVersionMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaVersionMapping.java
deleted file mode 100644
index 36e7f873a3..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaVersionMapping.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.ColumnMapping;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.java.JavaColumn;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class GenericJavaVersionMapping extends AbstractJavaAttributeMapping<VersionAnnotation> implements JavaVersionMapping
-{
- protected final JavaColumn column;
-
- protected TemporalType temporal;
-
- public GenericJavaVersionMapping(JavaPersistentAttribute parent) {
- super(parent);
- this.column = createJavaColumn();
- }
-
- protected JavaColumn createJavaColumn() {
- return getJpaFactory().buildJavaColumn(this, this);
- }
-
- @Override
- public void initializeFromResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.initializeFromResource(resourcePersistentAttribute);
- this.column.initializeFromResource(this.getColumnResource());
- this.temporal = this.temporal(this.temporalResource());
- }
-
- protected TemporalAnnotation temporalResource() {
- return (TemporalAnnotation) getResourcePersistentAttribute().getNonNullAnnotation(TemporalAnnotation.ANNOTATION_NAME);
- }
-
- public ColumnAnnotation getColumnResource() {
- return (ColumnAnnotation) getResourcePersistentAttribute().getNonNullAnnotation(ColumnAnnotation.ANNOTATION_NAME);
- }
-
- //************** IJavaAttributeMapping implementation ***************
-
- public String getKey() {
- return MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return VersionAnnotation.ANNOTATION_NAME;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.COLUMN,
- JPA.TEMPORAL);
- }
-
- //************** INamedColumn.Owner implementation ***************
-
- public String getDefaultColumnName() {
- return getAttributeName();
- }
-
- public String getDefaultTableName() {
- return getTypeMapping().getTableName();
- }
-
- //************** IVersionMapping implementation ***************
-
- public JavaColumn getColumn() {
- return this.column;
- }
-
- public TemporalType getTemporal() {
- return this.temporal;
- }
-
- public void setTemporal(TemporalType newTemporal) {
- TemporalType oldTemporal = this.temporal;
- this.temporal = newTemporal;
- this.temporalResource().setValue(TemporalType.toJavaResourceModel(newTemporal));
- firePropertyChanged(ColumnMapping.TEMPORAL_PROPERTY, oldTemporal, newTemporal);
- }
-
- @Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.update(resourcePersistentAttribute);
- this.column.update(this.getColumnResource());
- this.setTemporal(this.temporal(this.temporalResource()));
- }
-
- protected TemporalType temporal(TemporalAnnotation temporal) {
- return TemporalType.fromJavaResourceModel(temporal.getValue());
- }
-
- @Override
- public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- result = this.getColumn().javaCompletionProposals(pos, filter, astRoot);
- if (result != null) {
- return result;
- }
- return null;
- }
-
- //*********** Validation ******************************
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- addColumnMessages(messages, astRoot);
- }
-
- protected void addColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
- JavaColumn column = this.getColumn();
- String table = column.getTable();
- boolean doContinue = entityOwned() && column.connectionProfileIsActive();
-
- if (doContinue && this.getTypeMapping().tableNameIsInvalid(table)) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {table, column.getName()},
- column, column.getTableTextRange(astRoot))
- );
- doContinue = false;
- }
-
- if (doContinue && ! column.isResolved()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {column.getName()},
- column, column.getNameTextRange(astRoot))
- );
- }
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaBasicMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaBasicMappingProvider.java
deleted file mode 100644
index 3c37d7b648..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaBasicMappingProvider.java
+++ /dev/null
@@ -1,56 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-
-public class JavaBasicMappingProvider
- implements DefaultJavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaBasicMappingProvider INSTANCE = new JavaBasicMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static DefaultJavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaBasicMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return BasicAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaBasicMapping(parent);
- }
-
- public boolean defaultApplies(JavaPersistentAttribute persistentAttribute) {
- return persistentAttribute.getResourcePersistentAttribute().typeIsBasic();
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaCascade.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaCascade.java
deleted file mode 100644
index e7a21e46f8..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaCascade.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 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.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Cascade;
-import org.eclipse.jpt.core.context.java.JavaRelationshipMapping;
-import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-public class JavaCascade extends AbstractJavaJpaContextNode implements Cascade
-{
- protected boolean all;
-
- protected boolean persist;
-
- protected boolean merge;
-
- protected boolean remove;
-
- protected boolean refresh;
-
- protected RelationshipMappingAnnotation relationshipMapping;
-
- protected JavaCascade(JavaRelationshipMapping parent) {
- super(parent);
- }
-
- public boolean isAll() {
- return this.all;
- }
-
- public void setAll(boolean newAll) {
- boolean oldAll = this.all;
- this.all = newAll;
- this.relationshipMapping.setCascadeAll(newAll);
- firePropertyChanged(Cascade.ALL_PROPERTY, oldAll, newAll);
- }
-
- public boolean isPersist() {
- return this.persist;
- }
-
- public void setPersist(boolean newPersist) {
- boolean oldPersist = this.persist;
- this.persist = newPersist;
- this.relationshipMapping.setCascadePersist(newPersist);
- firePropertyChanged(Cascade.PERSIST_PROPERTY, oldPersist, newPersist);
- }
-
- public boolean isMerge() {
- return this.merge;
- }
-
- public void setMerge(boolean newMerge) {
- boolean oldMerge = this.merge;
- this.merge = newMerge;
- this.relationshipMapping.setCascadeMerge(newMerge);
- firePropertyChanged(Cascade.MERGE_PROPERTY, oldMerge, newMerge);
- }
-
- public boolean isRemove() {
- return this.remove;
- }
-
- public void setRemove(boolean newRemove) {
- boolean oldRemove = this.remove;
- this.remove = newRemove;
- this.relationshipMapping.setCascadeRemove(newRemove);
- firePropertyChanged(Cascade.REMOVE_PROPERTY, oldRemove, newRemove);
- }
-
- public boolean isRefresh() {
- return this.refresh;
- }
-
- public void setRefresh(boolean newRefresh) {
- boolean oldRefresh = this.refresh;
- this.refresh = newRefresh;
- this.relationshipMapping.setCascadeRefresh(newRefresh);
- firePropertyChanged(Cascade.REFRESH_PROPERTY, oldRefresh, newRefresh);
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.relationshipMapping.getCascadeTextRange(astRoot);
- }
-
- public void initialize(RelationshipMappingAnnotation relationshipMapping) {
- this.relationshipMapping = relationshipMapping;
- this.all = relationshipMapping.isCascadeAll();
- this.persist = relationshipMapping.isCascadePersist();
- this.merge = relationshipMapping.isCascadeMerge();
- this.remove = relationshipMapping.isCascadeRemove();
- this.refresh = relationshipMapping.isCascadeRefresh();
- }
-
- public void update(RelationshipMappingAnnotation relationshipMapping) {
- this.relationshipMapping = relationshipMapping;
- this.setAll(relationshipMapping.isCascadeAll());
- this.setPersist(relationshipMapping.isCascadePersist());
- this.setMerge(relationshipMapping.isCascadeMerge());
- this.setRemove(relationshipMapping.isCascadeRemove());
- this.setRefresh(relationshipMapping.isCascadeRefresh());
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddableProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddableProvider.java
deleted file mode 100644
index 3f8567367a..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddableProvider.java
+++ /dev/null
@@ -1,52 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaEmbeddable;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaTypeMappingProvider;
-import org.eclipse.jpt.core.resource.java.EmbeddableAnnotation;
-
-public class JavaEmbeddableProvider
- implements JavaTypeMappingProvider
-{
-
- // singleton
- private static final JavaEmbeddableProvider INSTANCE = new JavaEmbeddableProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaTypeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaEmbeddableProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return EmbeddableAnnotation.ANNOTATION_NAME;
- }
-
- public JavaEmbeddable buildMapping(JavaPersistentType parent, JpaFactory factory) {
- return factory.buildJavaEmbeddable(parent);
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddedIdMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddedIdMappingProvider.java
deleted file mode 100644
index bc30accc8f..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddedIdMappingProvider.java
+++ /dev/null
@@ -1,56 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.MappingTools;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-
-public class JavaEmbeddedIdMappingProvider
- implements DefaultJavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaEmbeddedIdMappingProvider INSTANCE = new JavaEmbeddedIdMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static DefaultJavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaEmbeddedIdMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return EmbeddedIdAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaEmbeddedIdMapping(parent);
- }
-
- public boolean defaultApplies(JavaPersistentAttribute persistentAttribute) {
- return MappingTools.getEmbeddableFor(persistentAttribute) != null;
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddedMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddedMappingProvider.java
deleted file mode 100644
index fdd6f131ed..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEmbeddedMappingProvider.java
+++ /dev/null
@@ -1,56 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.MappingTools;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-
-public class JavaEmbeddedMappingProvider
- implements DefaultJavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaEmbeddedMappingProvider INSTANCE = new JavaEmbeddedMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static DefaultJavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaEmbeddedMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return EmbeddedAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaEmbeddedMapping(parent);
- }
-
- public boolean defaultApplies(JavaPersistentAttribute persistentAttribute) {
- return MappingTools.getEmbeddableFor(persistentAttribute) != null;
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEntityProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEntityProvider.java
deleted file mode 100644
index 7114a094ac..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaEntityProvider.java
+++ /dev/null
@@ -1,55 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaTypeMappingProvider;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-
-/**
- *
- */
-public class JavaEntityProvider
- implements JavaTypeMappingProvider
-{
-
- // singleton
- private static final JavaEntityProvider INSTANCE = new JavaEntityProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaTypeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaEntityProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.ENTITY_TYPE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return EntityAnnotation.ANNOTATION_NAME;
- }
-
- public JavaEntity buildMapping(JavaPersistentType parent, JpaFactory factory) {
- return factory.buildJavaEntity(parent);
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaIdMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaIdMappingProvider.java
deleted file mode 100644
index 42db79746b..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaIdMappingProvider.java
+++ /dev/null
@@ -1,51 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-
-public class JavaIdMappingProvider
- implements JavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaIdMappingProvider INSTANCE = new JavaIdMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaIdMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.ID_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return IdAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaIdMapping(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaManyToManyMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaManyToManyMappingProvider.java
deleted file mode 100644
index 028370fbfa..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaManyToManyMappingProvider.java
+++ /dev/null
@@ -1,51 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-
-public class JavaManyToManyMappingProvider
- implements JavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaManyToManyMappingProvider INSTANCE = new JavaManyToManyMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaManyToManyMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return ManyToManyAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaManyToManyMapping(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaManyToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaManyToOneMappingProvider.java
deleted file mode 100644
index 757a9c1b42..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaManyToOneMappingProvider.java
+++ /dev/null
@@ -1,51 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-
-public class JavaManyToOneMappingProvider
- implements JavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaManyToOneMappingProvider INSTANCE = new JavaManyToOneMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaManyToOneMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return ManyToOneAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaManyToOneMapping(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaMappedSuperclassProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaMappedSuperclassProvider.java
deleted file mode 100644
index 8f3317cc07..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaMappedSuperclassProvider.java
+++ /dev/null
@@ -1,52 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaTypeMappingProvider;
-import org.eclipse.jpt.core.resource.java.MappedSuperclassAnnotation;
-
-public class JavaMappedSuperclassProvider
- implements JavaTypeMappingProvider
-{
-
- // singleton
- private static final JavaMappedSuperclassProvider INSTANCE = new JavaMappedSuperclassProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaTypeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaMappedSuperclassProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return MappedSuperclassAnnotation.ANNOTATION_NAME;
- }
-
- public JavaMappedSuperclass buildMapping(JavaPersistentType parent, JpaFactory factory) {
- return factory.buildJavaMappedSuperclass(parent);
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullAttributeMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullAttributeMappingProvider.java
deleted file mode 100644
index cd209b7683..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullAttributeMappingProvider.java
+++ /dev/null
@@ -1,54 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-
-/**
- * This mapping provider implementation is used to create a JavaNullAttributeMapping.
- * A JavaNullAttributeMapping should be used when no "mapping" annotation
- * exists on a Java attribute *and* no default mapping applies.
- */
-public class JavaNullAttributeMappingProvider
- implements JavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaNullAttributeMappingProvider INSTANCE = new JavaNullAttributeMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaNullAttributeMappingProvider() {
- super();
- }
-
- public String getKey() {
- return null;
- }
-
- public String getAnnotationName() {
- return null;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaNullAttributeMapping(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMapping.java
deleted file mode 100644
index b3067e7e93..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMapping.java
+++ /dev/null
@@ -1,64 +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.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-
-public class JavaNullTypeMapping extends AbstractJavaTypeMapping
-{
- public JavaNullTypeMapping(JavaPersistentType parent) {
- super(parent);
- }
-
- public String getAnnotationName() {
- return null;
- }
-
- public String getKey() {
- return MappingKeys.NULL_TYPE_MAPPING_KEY;
- }
-
- public boolean isMapped() {
- return false;
- }
-
- public Iterator<String> correspondingAnnotationNames() {
- return EmptyIterator.instance();
- }
-
- @Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- //Adding this message here because the likely solution is to add an annotation to the java file.
- //This message used to be found on the <class> tag in the persistence.xml. The other possible
- //way to fix the error is to remove it from the persistnce.xml. This can be accomplished
- //with the Synchronize Classes action. We could also add a quick fix for this error.
- messages.add(DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENCE_UNIT_INVALID_CLASS,
- new String[] { this.getPersistentType().getName() },
- this,
- this.getValidationTextRange(astRoot)));
- }
-
- @Override
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.getPersistentType().getValidationTextRange(astRoot);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMappingProvider.java
deleted file mode 100644
index bcc6313964..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMappingProvider.java
+++ /dev/null
@@ -1,55 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.context.java.JavaTypeMappingProvider;
-
-/**
- * This mapping provider implementation is used to create a JavaNullAttributeMapping.
- * A JavaNullAttributeMapping should be used when no "mapping" annotation
- * exists on a Java type.
- */
-public class JavaNullTypeMappingProvider
- implements JavaTypeMappingProvider
-{
-
- // singleton
- private static final JavaNullTypeMappingProvider INSTANCE = new JavaNullTypeMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaTypeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaNullTypeMappingProvider() {
- super();
- }
-
- public String getKey() {
- return null;
- }
-
- public String getAnnotationName() {
- return null;
- }
-
- public JavaTypeMapping buildMapping(JavaPersistentType parent, JpaFactory factory) {
- return factory.buildJavaNullTypeMapping(parent);
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaOneToManyMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaOneToManyMappingProvider.java
deleted file mode 100644
index 15b91f8a6c..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaOneToManyMappingProvider.java
+++ /dev/null
@@ -1,51 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-
-public class JavaOneToManyMappingProvider
- implements JavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaOneToManyMappingProvider INSTANCE = new JavaOneToManyMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaOneToManyMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return OneToManyAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaOneToManyMapping(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaOneToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaOneToOneMappingProvider.java
deleted file mode 100644
index 319b9ef298..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaOneToOneMappingProvider.java
+++ /dev/null
@@ -1,51 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-
-public class JavaOneToOneMappingProvider
- implements JavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaOneToOneMappingProvider INSTANCE = new JavaOneToOneMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaOneToOneMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return OneToOneAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaOneToOneMapping(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaTransientMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaTransientMappingProvider.java
deleted file mode 100644
index 4fb5aa294e..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaTransientMappingProvider.java
+++ /dev/null
@@ -1,51 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-
-public class JavaTransientMappingProvider
- implements JavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaTransientMappingProvider INSTANCE = new JavaTransientMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaTransientMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return TransientAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaTransientMapping(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaVersionMappingProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaVersionMappingProvider.java
deleted file mode 100644
index c17edb669e..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaVersionMappingProvider.java
+++ /dev/null
@@ -1,51 +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.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-
-public class JavaVersionMappingProvider
- implements JavaAttributeMappingProvider
-{
-
- // singleton
- private static final JavaVersionMappingProvider INSTANCE = new JavaVersionMappingProvider();
-
- /**
- * Return the singleton.
- */
- public static JavaAttributeMappingProvider instance() {
- return INSTANCE;
- }
-
- /**
- * Ensure non-instantiability.
- */
- private JavaVersionMappingProvider() {
- super();
- }
-
- public String getKey() {
- return MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY;
- }
-
- public String getAnnotationName() {
- return VersionAnnotation.ANNOTATION_NAME;
- }
-
- public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
- return factory.buildJavaVersionMapping(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/VirtualAttributeOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/VirtualAttributeOverride.java
deleted file mode 100644
index efbc1d16ae..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/VirtualAttributeOverride.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.internal.resource.java.AbstractJavaResourceNode;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-
-
-public class VirtualAttributeOverride extends AbstractJavaResourceNode implements AttributeOverrideAnnotation, Annotation
-{
- private final VirtualAttributeOverrideColumn column;
-
- private String name;
-
- public VirtualAttributeOverride(JavaResourceNode parent, String name, Column column) {
- super(parent);
- this.name = name;
- this.column = new VirtualAttributeOverrideColumn(this, column);
- }
-
- public void initialize(CompilationUnit astRoot) {
- //null, nothing to initialize
- }
-
- public org.eclipse.jdt.core.dom.Annotation getJdtAnnotation(CompilationUnit astRoot) {
- return null;
- }
-
- public void newAnnotation() {
- throw new UnsupportedOperationException();
- }
-
- public void removeAnnotation() {
- throw new UnsupportedOperationException();
- }
-
- public String getAnnotationName() {
- return AttributeOverrideAnnotation.ANNOTATION_NAME;
- }
-
- public String getName() {
- return this.name;
- }
-
- public void setName(String name) {
- if (name != null) {
- createAttributeOverrideResource().setName(name);
- }
- }
-
- public ColumnAnnotation getNonNullColumn() {
- return getColumn();
- }
-
- public ColumnAnnotation getColumn() {
- return this.column;
- }
-
- public ColumnAnnotation addColumn() {
- throw new UnsupportedOperationException();
- }
-
- public void removeColumn() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public JavaResourcePersistentMember getParent() {
- return (JavaResourcePersistentMember) super.getParent();
- }
-
- protected AttributeOverrideAnnotation createAttributeOverrideResource() {
- return (AttributeOverrideAnnotation) getParent().addAnnotation(getAnnotationName());
- }
-
- public void updateFromJava(CompilationUnit astRoot) {
- throw new UnsupportedOperationException();
-
- }
-
- public boolean nameTouches(int pos, CompilationUnit astRoot) {
- return false;
- }
-
- public TextRange getNameTextRange(CompilationUnit astRoot) {
- return null;
- }
-
- public TextRange getTextRange(CompilationUnit astRoot) {
- return null;
- }
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/VirtualAttributeOverrideColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/VirtualAttributeOverrideColumn.java
deleted file mode 100644
index 3f0e8eff56..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/VirtualAttributeOverrideColumn.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.internal.resource.java.NullBaseColumn;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-
-public class VirtualAttributeOverrideColumn extends NullBaseColumn implements ColumnAnnotation, Annotation
-{
- private Column column;
-
- public VirtualAttributeOverrideColumn(AttributeOverrideAnnotation parent, Column column) {
- super(parent);
- this.column = column;
- }
-
- @Override
- public AttributeOverrideAnnotation getParent() {
- return (AttributeOverrideAnnotation) super.getParent();
- }
-
- public String getAnnotationName() {
- return ColumnAnnotation.ANNOTATION_NAME;
- }
-
- @Override
- protected ColumnAnnotation createColumnResource() {
- return getParent().addColumn();
- }
-
- @Override
- public String getName() {
- if (this.column.getSpecifiedName() != null) {
- return this.column.getSpecifiedName();
- }
- return null;
- }
-
- @Override
- public String getTable() {
- if (this.column.getSpecifiedTable() != null) {
- return this.column.getSpecifiedTable();
- }
- return null;
- }
-
- @Override
- public Boolean getInsertable() {
- if (this.column.getSpecifiedInsertable() != null) {
- return this.column.getSpecifiedInsertable();
- }
- return null;
- }
-
- @Override
- public Boolean getUpdatable() {
- if (this.column.getSpecifiedUpdatable() != null) {
- return this.column.getSpecifiedUpdatable();
- }
- return null;
- }
- @Override
- public Boolean getNullable() {
- if (this.column.getSpecifiedNullable() != null) {
- return this.column.getSpecifiedNullable();
- }
- return null;
- }
-
- @Override
- public Boolean getUnique() {
- if (this.column.getSpecifiedUnique() != null) {
- return this.column.getSpecifiedUnique();
- }
- return null;
- }
-
- @Override
- public String getColumnDefinition() {
- return this.column.getColumnDefinition();
- }
-
- public Integer getLength() {
- if (this.column.getSpecifiedLength() != null) {
- return this.column.getSpecifiedLength();
- }
- return null;
- }
-
- public void setLength(Integer length) {
- if (length != null) {
- createColumnResource().setLength(length);
- }
- }
-
- public Integer getScale() {
- if (this.column.getSpecifiedScale() != null) {
- return this.column.getSpecifiedScale();
- }
- return null;
- }
-
- public void setScale(Integer scale) {
- if (scale != null) {
- createColumnResource().setScale(scale);
- }
- }
-
- public Integer getPrecision() {
- if (this.column.getSpecifiedPrecision() != null) {
- return this.column.getSpecifiedPrecision();
- }
- return null;
- }
-
- public void setPrecision(Integer precision) {
- if (precision != null) {
- createColumnResource().setPrecision(precision);
- }
- }
-
- public TextRange getScaleTextRange(CompilationUnit astRoot) {
- return null;
- }
-
- public TextRange getLengthTextRange(CompilationUnit astRoot) {
- return null;
- }
-
- public TextRange getPrecisionTextRange(CompilationUnit astRoot) {
- return null;
- }
-}

Back to the top