Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbvosburgh2008-09-24 13:28:13 +0000
committerbvosburgh2008-09-24 13:28:13 +0000
commite9b73d6c6aff9ee7d53ad0759079f4f61b1665f6 (patch)
treef3afe736796dee7e8e4e48fabe0f2ce11fd62882
parent348030eb050a6265ab998f5ee66a73a5e19c5f90 (diff)
downloadwebtools.dali-e9b73d6c6aff9ee7d53ad0759079f4f61b1665f6.tar.gz
webtools.dali-e9b73d6c6aff9ee7d53ad0759079f4f61b1665f6.tar.xz
webtools.dali-e9b73d6c6aff9ee7d53ad0759079f4f61b1665f6.zip
reworked validation
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaProject.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/JpaRootContextNode.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/MultiRelationshipMapping.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/PersistentType.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaJpaContextNode.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmJpaContextNode.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/MappingFileRef.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceJpaContextNode.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceUnit.java81
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaProject.java85
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/GenericRootContextNode.java122
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaJpaContextNode.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java144
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java36
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaTypeMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAssociationOverride.java28
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaAttributeOverride.java68
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaBasicMapping.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaEntity.java129
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaIdMapping.java131
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinColumn.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaJoinTable.java66
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToManyMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaManyToOneMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaNullAttributeMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToManyMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaOneToOneMapping.java65
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentAttribute.java28
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaPersistentType.java44
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaSecondaryTable.java60
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTable.java54
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaTransientMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/GenericJavaVersionMapping.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/JavaNullTypeMapping.java31
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmAttributeMapping.java67
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmJpaContextNode.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java94
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java35
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java64
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericEntityMappings.java118
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmAttributeOverride.java59
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmBasicMapping.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmEntity.java121
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java146
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinColumn.java78
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinTable.java38
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmOneToOneMapping.java52
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentAttribute.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentType.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmSecondaryTable.java57
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTable.java53
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmVersionMapping.java45
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/OrmXmlImpl.java84
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceJpaContextNode.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericClassRef.java73
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericMappingFileRef.java77
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java156
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceUnit.java284
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceXml.java96
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationDataModelProvider.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationOperation.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaPlatform.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/synch/SynchronizeClassesJob.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCachingImpl.java11
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEntityImpl.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMappedSuperclassImpl.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/editors/PersistenceEditor.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java27
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorContentProvider.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java2
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/ContextModelTestCase.java6
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java22
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinTableTests.java1
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmXmlTests.java2
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java2
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceTests.java6
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceXmlTests.java2
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextNodeTests.java (renamed from jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextTests.java)12
83 files changed, 1804 insertions, 1690 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java
index 2475db24c4..eeced7b6d3 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java
@@ -135,14 +135,6 @@ public interface JpaPlatform
String getDefaultJavaAttributeMappingKey(JavaPersistentAttribute persistentAttribute);
- // ************** Validation ***********************************************************
-
- /**
- * Adds validation messages to the growing list of messages for a given project
- */
- void addToMessages(JpaProject project, List<IMessage> messages);
-
-
// ************* Database ************************************************************
/**
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaProject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaProject.java
index 1017becf86..028ac453ca 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaProject.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaProject.java
@@ -10,7 +10,6 @@
package org.eclipse.jpt.core;
import java.util.Iterator;
-import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
@@ -230,7 +229,7 @@ public interface JpaProject extends JpaNode {
/**
* Return the {@link JpaRootContextNode} representing the JPA content of this project
*/
- JpaRootContextNode getRootContext();
+ JpaRootContextNode getRootContextNode();
/**
* Return the names of the JPA project's annotated classes.
@@ -271,11 +270,6 @@ public interface JpaProject extends JpaNode {
*/
Iterator<IMessage> validationMessages();
- /**
- * Add to the list of current validation messages
- */
- void addToMessages(List<IMessage> messages);
-
// **************** support for modifying shared documents *****************
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/JpaRootContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/JpaRootContextNode.java
index fa73eef97f..925ff20573 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/JpaRootContextNode.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/JpaRootContextNode.java
@@ -28,7 +28,7 @@ public interface JpaRootContextNode extends JpaContextNode
/**
* String constant associated with changes to the persistenceXml property
*/
- public final static String PERSISTENCE_XML_PROPERTY = "persistenceXml";
+ public final static String PERSISTENCE_XML_PROPERTY = "persistenceXml"; //$NON-NLS-1$
/**
* Return the content represented by the persistence.xml file associated with
@@ -62,8 +62,8 @@ public interface JpaRootContextNode extends JpaContextNode
// **************** validation *********************************************
/**
- * All subclass implementations {@link #addToMessages(List<IMessage>)}
- * should be preceded by a "super" call to this method
+ * Add validation messages to the specified list.
*/
- public void addToMessages(List<IMessage> messages);
+ public void validate(List<IMessage> messages);
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/MultiRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/MultiRelationshipMapping.java
index dd1141aff4..624452c45c 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/MultiRelationshipMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/MultiRelationshipMapping.java
@@ -26,30 +26,30 @@ public interface MultiRelationshipMapping extends NonOwningMapping
String getOrderBy();
void setOrderBy(String value);
- String ORDER_BY_PROPERTY = "orderByProperty";
+ String ORDER_BY_PROPERTY = "orderBy"; //$NON-NLS-1$
boolean isNoOrdering();
void setNoOrdering(boolean newNoOrdering);
- String NO_ORDERING_PROPERTY = "noOrderingProperty";
+ String NO_ORDERING_PROPERTY = "noOrdering"; //$NON-NLS-1$
boolean isPkOrdering();
void setPkOrdering(boolean newPkOrdering);
- String PK_ORDERING_PROPERTY = "pkOrderingProperty";
+ String PK_ORDERING_PROPERTY = "pkOrdering"; //$NON-NLS-1$
boolean isCustomOrdering();
void setCustomOrdering(boolean newCustomOrdering);
- String CUSTOM_ORDERING_PROPERTY = "customOrderingProperty";
+ String CUSTOM_ORDERING_PROPERTY = "customOrdering"; //$NON-NLS-1$
JoinTable getJoinTable();
- boolean isJoinTableSpecified();
+ boolean joinTableIsSpecified();
String getMapKey();
void setMapKey(String value);
- String MAP_KEY_PROPERTY = "mapKeyProperty";
+ String MAP_KEY_PROPERTY = "mapKey"; //$NON-NLS-1$
Iterator<String> candidateMapKeyNames();
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/PersistentType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/PersistentType.java
index 1df249be21..e6515a0d1c 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/PersistentType.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/PersistentType.java
@@ -112,6 +112,6 @@ public interface PersistentType extends JpaContextNode, JpaStructureNode
/**
* Add to the list of current validation messages
*/
- void addToMessages(List<IMessage> messages);
+ void validate(List<IMessage> messages);
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaJpaContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaJpaContextNode.java
index 03012331ca..53faac070e 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaJpaContextNode.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaJpaContextNode.java
@@ -41,7 +41,7 @@ public interface JavaJpaContextNode extends JpaContextNode
/**
* Adds to the list of current validation messages
*/
- void addToMessages(List<IMessage> messages, CompilationUnit astRoot);
+ void validate(List<IMessage> messages, CompilationUnit astRoot);
TextRange getValidationTextRange(CompilationUnit astRoot);
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeMapping.java
index 25f10c5b20..f4fc3bd7c5 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeMapping.java
@@ -30,11 +30,11 @@ public interface OrmAttributeMapping extends AttributeMapping, OrmJpaContextNode
String getName();
void setName(String newName);
- String NAME_PROPERTY = "nameProperty";
+ String NAME_PROPERTY = "name"; //$NON-NLS-1$
JavaPersistentAttribute getJavaPersistentAttribute();
- String JAVA_PERSISTENT_ATTRIBUTE_PROPERTY = "javaPersistentAttributeProperty";
+ String JAVA_PERSISTENT_ATTRIBUTE_PROPERTY = "javaPersistentAttribute"; //$NON-NLS-1$
/**
* Attributes are a sequence in the orm schema. We must keep
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmJpaContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmJpaContextNode.java
index acf75e0219..3b9285af17 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmJpaContextNode.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmJpaContextNode.java
@@ -31,7 +31,7 @@ public interface OrmJpaContextNode
/**
* Add to the list of current validation messages.
*/
- void addToMessages(List<IMessage> messages);
+ void validate(List<IMessage> messages);
TextRange getValidationTextRange();
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/MappingFileRef.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/MappingFileRef.java
index b48a27d9ec..888ff3de9d 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/MappingFileRef.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/MappingFileRef.java
@@ -38,7 +38,7 @@ public interface MappingFileRef extends PersistenceJpaContextNode, JpaStructureN
/**
* String constant associated with changes to the file name
*/
- String FILE_NAME_PROPERTY = "fileNameProperty";
+ String FILE_NAME_PROPERTY = "fileName"; //$NON-NLS-1$
/**
* Return the file name of the mapping file ref.
@@ -53,7 +53,7 @@ public interface MappingFileRef extends PersistenceJpaContextNode, JpaStructureN
// **************** orm xml ************************************************
- String ORM_XML_PROPERTY = "ormXmlProperty";
+ String ORM_XML_PROPERTY = "ormXml"; //$NON-NLS-1$
OrmXml getOrmXml();
@@ -73,9 +73,9 @@ public interface MappingFileRef extends PersistenceJpaContextNode, JpaStructureN
/**
* Return the OrmPersistentType listed in this mapping file
- * with the given fullyQualifiedTypeName. Return null if none exists.
+ * with the given name. Return null if none exists.
*/
- OrmPersistentType getPersistentType(String fullyQualifiedTypeName);
+ OrmPersistentType getPersistentType(String typeName);
/**
* Return whether the text representation of this persistence unit contains
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceJpaContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceJpaContextNode.java
index 46468ce8b6..6831dc6d01 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceJpaContextNode.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceJpaContextNode.java
@@ -30,7 +30,7 @@ public interface PersistenceJpaContextNode extends JpaContextNode
/**
* Add to the list of current validation messages
*/
- void addToMessages(List<IMessage> messages);
+ void validate(List<IMessage> messages);
TextRange getValidationTextRange();
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceUnit.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceUnit.java
index 39e22015f4..776ed1e511 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceUnit.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/persistence/PersistenceUnit.java
@@ -9,13 +9,24 @@
******************************************************************************/
package org.eclipse.jpt.core.context.persistence;
+import java.util.Iterator;
+import java.util.List;
import java.util.ListIterator;
+
+import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.JpaStructureNode;
import org.eclipse.jpt.core.context.AccessType;
import org.eclipse.jpt.core.context.Generator;
import org.eclipse.jpt.core.context.PersistentType;
import org.eclipse.jpt.core.context.Query;
+import org.eclipse.jpt.core.context.java.JavaGeneratedValue;
+import org.eclipse.jpt.core.context.java.JavaGenerator;
+import org.eclipse.jpt.core.context.java.JavaQuery;
+import org.eclipse.jpt.core.context.orm.OrmGeneratedValue;
+import org.eclipse.jpt.core.context.orm.OrmGenerator;
+import org.eclipse.jpt.core.context.orm.OrmQuery;
import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
/**
*
@@ -401,7 +412,7 @@ public interface PersistenceUnit extends PersistenceJpaContextNode, JpaStructure
String DEFAULT_CASCADE_PERSIST_PROPERTY = "defaultCascadePersist"; //$NON-NLS-1$
- // **************** global generator and query support *********************
+ // **************** generators *********************
/**
* Identifier for changes to the list of global generators.
@@ -424,6 +435,37 @@ public interface PersistenceUnit extends PersistenceJpaContextNode, JpaStructure
* included duplicately named generators.
*/
ListIterator<Generator> allGenerators();
+
+ /**
+ * Return an array of the names of the generators defined in the persistence
+ * unit, with duplicates removed.
+ */
+ String[] uniqueGeneratorNames();
+
+ /**
+ * Validate the ORM generators held by the specified generator holder.
+ */
+ void validateGenerators(OrmGeneratorHolder generatorHolder, List<IMessage> messages);
+
+ /**
+ * Validate the Java generators held by the specified generator holder.
+ */
+ void validateGenerators(JavaGeneratorHolder generatorHolder, List<IMessage> messages, CompilationUnit astRoot);
+
+ /**
+ * Validate whether the specified ORM generated value matches a
+ * generator defined in the persistence unit.
+ */
+ void validateGeneratedValue(OrmGeneratedValueHolder generatedValueHolder, List<IMessage> messages);
+
+ /**
+ * Validate whether the specified Java generated value matches a
+ * generator defined in the persistence unit.
+ */
+ void validateGeneratedValue(JavaGeneratedValueHolder generatedValueHolder, List<IMessage> messages, CompilationUnit astRoot);
+
+
+ // **************** queries *********************
/**
* Identifier for changes to the list of global queries.
@@ -447,6 +489,16 @@ public interface PersistenceUnit extends PersistenceJpaContextNode, JpaStructure
*/
ListIterator<Query> allQueries();
+ /**
+ * Validate the ORM queries held by the specified query holder.
+ */
+ void validateQueries(OrmQueryHolder queryHolder, List<IMessage> messages);
+
+ /**
+ * Validate the Java queries held by the specified query holder.
+ */
+ void validateQueries(JavaQueryHolder queryHolder, List<IMessage> messages, CompilationUnit astRoot);
+
// **************** updating ***********************************************
@@ -471,4 +523,31 @@ public interface PersistenceUnit extends PersistenceJpaContextNode, JpaStructure
*/
boolean containsOffset(int textOffset);
+
+ // ********** validation callbacks **********
+
+ interface OrmGeneratorHolder {
+ Iterator<OrmGenerator> generators();
+ }
+
+ interface JavaGeneratorHolder {
+ Iterator<JavaGenerator> generators();
+ }
+
+ interface OrmGeneratedValueHolder {
+ OrmGeneratedValue getGeneratedValue();
+ }
+
+ interface JavaGeneratedValueHolder {
+ JavaGeneratedValue getGeneratedValue();
+ }
+
+ interface OrmQueryHolder {
+ Iterator<OrmQuery> queries();
+ }
+
+ interface JavaQueryHolder {
+ Iterator<JavaQuery> queries();
+ }
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaProject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaProject.java
index 55cd31d4b8..60bf04e616 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaProject.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaProject.java
@@ -459,7 +459,7 @@ public class GenericJpaProject extends AbstractJpaNode implements JpaProject {
// ********** context model **********
- public JpaRootContextNode getRootContext() {
+ public JpaRootContextNode getRootContextNode() {
return this.rootContextNode;
}
@@ -536,68 +536,51 @@ public class GenericJpaProject extends AbstractJpaNode implements JpaProject {
public Iterator<IMessage> validationMessages() {
List<IMessage> messages = new ArrayList<IMessage>();
- this.jpaPlatform.addToMessages(this, messages);
+ this.validate(messages);
return messages.iterator();
}
- public void addToMessages(List<IMessage> messages) {
- //start with the project - then down
- //project validation
- addProjectLevelMessages(messages);
-
- //context model validation
- getRootContext().addToMessages(messages);
- }
-
- protected void addProjectLevelMessages(List<IMessage> messages) {
- this.checkConnection(messages);
- this.checkForMultiplePersistenceXml(messages);
+ protected void validate(List<IMessage> messages) {
+ this.validateConnection(messages);
+ this.rootContextNode.validate(messages);
}
- protected void checkConnection(List<IMessage> messages) {
+ protected void validateConnection(List<IMessage> messages) {
String cpName = this.dataSource.getConnectionProfileName();
- ConnectionProfile cp = this.dataSource.getConnectionProfile();
if (StringTools.stringIsEmpty(cpName)) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.NORMAL_SEVERITY,
- JpaValidationMessages.PROJECT_NO_CONNECTION,
- this
- )
- );
- } else if (cp == null) {
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.NORMAL_SEVERITY,
+ JpaValidationMessages.PROJECT_NO_CONNECTION,
+ this
+ )
+ );
+ return;
+ }
+ ConnectionProfile cp = this.dataSource.getConnectionProfile();
+ if (cp == null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.NORMAL_SEVERITY,
- JpaValidationMessages.PROJECT_INVALID_CONNECTION,
- new String[] {cpName},
- this
- )
- );
- } else if (cp.isInactive()) {
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.NORMAL_SEVERITY,
+ JpaValidationMessages.PROJECT_INVALID_CONNECTION,
+ new String[] {cpName},
+ this
+ )
+ );
+ return;
+ }
+ if (cp.isInactive()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.NORMAL_SEVERITY,
- JpaValidationMessages.PROJECT_INACTIVE_CONNECTION,
- new String[] {cpName},
- this
- )
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.NORMAL_SEVERITY,
+ JpaValidationMessages.PROJECT_INACTIVE_CONNECTION,
+ new String[] {cpName},
+ this
+ )
+ );
}
}
- protected void checkForMultiplePersistenceXml(@SuppressWarnings("unused") List<IMessage> messages) {
-// if (validPersistenceXmlFiles.size() > 1) {
-// messages.add(
-// JpaValidationMessages.buildMessage(
-// IMessage.HIGH_SEVERITY,
-// IJpaValidationMessages.PROJECT_MULTIPLE_PERSISTENCE_XML,
-// jpaProject
-// )
-// );
-// }
- }
-
// ********** root deploy location **********
@@ -767,7 +750,7 @@ public class GenericJpaProject extends AbstractJpaNode implements JpaProject {
*/
public IStatus update(IProgressMonitor monitor) {
try {
- this.getRootContext().update(monitor);
+ this.rootContextNode.update(monitor);
} catch (OperationCanceledException ex) {
return Status.CANCEL_STATUS;
} catch (Throwable ex) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/GenericRootContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/GenericRootContextNode.java
index fc1164d533..0052460bce 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/GenericRootContextNode.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/GenericRootContextNode.java
@@ -11,6 +11,8 @@ package org.eclipse.jpt.core.internal.context;
import java.util.Collection;
import java.util.List;
+
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -20,8 +22,10 @@ import org.eclipse.jpt.core.context.JpaContextNode;
import org.eclipse.jpt.core.context.JpaRootContextNode;
import org.eclipse.jpt.core.context.orm.EntityMappings;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.context.orm.OrmXml;
import org.eclipse.jpt.core.context.persistence.ClassRef;
import org.eclipse.jpt.core.context.persistence.MappingFileRef;
+import org.eclipse.jpt.core.context.persistence.Persistence;
import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
import org.eclipse.jpt.core.context.persistence.PersistenceXml;
import org.eclipse.jpt.core.internal.resource.persistence.PersistenceResourceModelProvider;
@@ -31,10 +35,15 @@ import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
import org.eclipse.jpt.core.resource.persistence.PersistenceResource;
import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.jpt.utility.internal.HashBag;
import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-public class GenericRootContextNode extends AbstractJpaContextNode
+/**
+ *
+ */
+public class GenericRootContextNode
+ extends AbstractJpaContextNode
implements JpaRootContextNode
{
/* This object has no parent, so it must point to the JPA project */
@@ -47,7 +56,7 @@ public class GenericRootContextNode extends AbstractJpaContextNode
public GenericRootContextNode(JpaProject jpaProject) {
super(null);
if (jpaProject == null) {
- throw new IllegalArgumentException("The JPA project must not be null");
+ throw new IllegalArgumentException("The JPA project must not be null"); //$NON-NLS-1$
}
this.jpaProject = jpaProject;
@@ -74,7 +83,11 @@ public class GenericRootContextNode extends AbstractJpaContextNode
@Override
public IResource getResource() {
- return getJpaProject().getProject();
+ return this.getProject();
+ }
+
+ protected IProject getProject() {
+ return this.jpaProject.getProject();
}
@Override
@@ -121,7 +134,7 @@ public class GenericRootContextNode extends AbstractJpaContextNode
throw new IllegalStateException();
}
PersistenceResourceModelProvider modelProvider =
- PersistenceResourceModelProvider.getDefaultModelProvider(getJpaProject().getProject());
+ PersistenceResourceModelProvider.getDefaultModelProvider(this.getProject());
PersistenceResource resource = modelProvider.getResource();
modelProvider.modify(new Runnable() {
public void run() {
@@ -181,83 +194,66 @@ public class GenericRootContextNode extends AbstractJpaContextNode
// **************** Validation *********************************************
- /* If this is true, it may be assumed that all the requirements are valid
- * for further validation. For example, if this is true at the point we
- * are validating persistence units, it may be assumed that there is a
- * single persistence.xml and that it has valid content down to the
- * persistence unit level. */
- private boolean okToContinueValidation = true;
-
- public void addToMessages(List<IMessage> messages) {
- addNoPersistenceXmlMessage(messages);
- //TODO - multiple persistence unit message
- addOrphanedJavaClassMessages(messages);
-
- if(okToContinueValidation) {
- getPersistenceXml().addToMessages(messages);
- }
-
- }
-
- protected void addNoPersistenceXmlMessage(List<IMessage> messages) {
- if (persistenceXml == null) {
+ public void validate(List<IMessage> messages) {
+ if (this.persistenceXml == null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PROJECT_NO_PERSISTENCE_XML,
- this)
- );
- okToContinueValidation = false;
- }
- }
-
-
-
-
- protected void addOrphanedJavaClassMessages(List<IMessage> messages) {
- if (getPersistenceXml() == null) {
- //handled with other validation
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.PROJECT_NO_PERSISTENCE_XML,
+ this
+ )
+ );
return;
}
- if (getPersistenceXml().getPersistence() == null) {
- //handled with other validation
- return;
+ if ( ! this.jpaProject.discoversAnnotatedClasses()) {
+ this.validateOrphanClasses(messages);
}
- if (getJpaProject().discoversAnnotatedClasses()) {
+ this.persistenceXml.validate(messages);
+ }
+
+ protected void validateOrphanClasses(List<IMessage> messages) {
+ Persistence persistence = this.persistenceXml.getPersistence();
+ if (persistence == null) {
+ // handled with other validation
return;
}
- Collection<String> orphanedClassNames = CollectionTools.collection(getJpaProject().annotatedClassNames());
- if (getPersistenceXml().getPersistence().persistenceUnitsSize() != 1) {
- //context model currently only supports 1 persistenceUnit
+ if (persistence.persistenceUnitsSize() != 1) {
+ // the context model currently only supports 1 persistence unit
return;
}
- PersistenceUnit persistenceUnit = getPersistenceXml().getPersistence().persistenceUnits().next();
- for (String typeName : CollectionTools.iterable(getJpaProject().annotatedClassNames())) {
+ PersistenceUnit persistenceUnit = persistence.persistenceUnits().next();
+ HashBag<String> orphans = CollectionTools.bag(this.jpaProject.annotatedClassNames());
+ for (String typeName : CollectionTools.iterable(this.jpaProject.annotatedClassNames())) {
for (ClassRef classRef : CollectionTools.iterable(persistenceUnit.specifiedClassRefs())) {
if (classRef.isFor(typeName)) {
- orphanedClassNames.remove(typeName);
+ orphans.remove(typeName);
}
}
for (MappingFileRef mappingFileRef : CollectionTools.iterable(persistenceUnit.mappingFileRefs())) {
- if (mappingFileRef.getOrmXml() == null || mappingFileRef.getOrmXml().getEntityMappings() == null) {
- continue;
- }
- if (mappingFileRef.getOrmXml().getEntityMappings().getPersistentType(typeName) != null) {
- orphanedClassNames.remove(typeName);
+ OrmXml ormXml = mappingFileRef.getOrmXml();
+ if (ormXml != null) {
+ EntityMappings entityMappings = ormXml.getEntityMappings();
+ if (entityMappings != null) {
+ if (entityMappings.getPersistentType(typeName) != null) {
+ orphans.remove(typeName);
+ }
+ }
}
}
}
- for (String orphanedTypeName : orphanedClassNames) {
- JavaResourcePersistentType javaResourcePersistentType = getJpaProject().getJavaResourcePersistentType(orphanedTypeName);
+ for (String orphan : orphans) {
+ JavaResourcePersistentType javaResourcePersistentType = this.jpaProject.getJavaResourcePersistentType(orphan);
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENT_TYPE_UNSPECIFIED_CONTEXT,
- new String[] {persistenceUnit.getName()},
- javaResourcePersistentType.getResourceModel().getFile(),
- javaResourcePersistentType.getMappingAnnotation().getTextRange(JDTTools.buildASTRoot(javaResourcePersistentType.getJpaCompilationUnit().getCompilationUnit())))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.PERSISTENT_TYPE_UNSPECIFIED_CONTEXT,
+ new String[] {persistenceUnit.getName()},
+ javaResourcePersistentType.getResourceModel().getFile(),
+ javaResourcePersistentType.getMappingAnnotation().getTextRange(JDTTools.buildASTRoot(javaResourcePersistentType.getJpaCompilationUnit().getCompilationUnit()))
+ )
+ );
}
}
+
}
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
index d6347ef055..e65cc55f1f 100644
--- 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
@@ -66,7 +66,7 @@ public abstract class AbstractJavaAttributeMapping<T extends JavaResourceNode>
return this.getTypeMapping().getKey() == MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY;
}
- protected boolean entityOwned() {
+ protected boolean ownerIsEntity() {
return this.getTypeMapping().getKey() == MappingKeys.ENTITY_TYPE_MAPPING_KEY;
}
@@ -120,47 +120,40 @@ public abstract class AbstractJavaAttributeMapping<T extends JavaResourceNode>
//************ Validation *************************
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
-
- this.checkModifiers(messages, astRoot);
- this.checkMappingType(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
+ this.validateModifiers(messages, astRoot);
+ this.validateMappingType(messages, astRoot);
}
- protected void checkModifiers(List<IMessage> messages, CompilationUnit astRoot) {
- JavaPersistentAttribute attribute = this.getPersistentAttribute();
- if (attribute.getMappingKey() == MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY) {
+ protected void validateModifiers(List<IMessage> messages, CompilationUnit astRoot) {
+ if (this.getPersistentAttribute().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)
- )
- );
+ messages.add(this.buildAttributeMessage(JpaValidationMessages.PERSISTENT_ATTRIBUTE_FINAL_FIELD, 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)
- )
- );
+ messages.add(this.buildAttributeMessage(JpaValidationMessages.PERSISTENT_ATTRIBUTE_PUBLIC_FIELD, astRoot));
}
}
}
+
+ protected IMessage buildAttributeMessage(String msgID, CompilationUnit astRoot) {
+ JavaPersistentAttribute attribute = this.getPersistentAttribute();
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ msgID,
+ new String[] {attribute.getName()},
+ attribute,
+ attribute.getValidationTextRange(astRoot)
+ );
+ }
- protected void checkMappingType(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateMappingType(List<IMessage> messages, CompilationUnit astRoot) {
if ( ! this.getTypeMapping().attributeMappingKeyAllowed(this.getKey())) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
@@ -184,4 +177,9 @@ public abstract class AbstractJavaAttributeMapping<T extends JavaResourceNode>
return (resourceMapping == null) ? null : resourceMapping.getTextRange(astRoot);
}
+ @Override
+ public void toString(StringBuilder sb) {
+ sb.append(this.getAttributeName());
+ }
+
}
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
index 0884fb7ffd..fbf6fdbd07 100644
--- 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
@@ -356,11 +356,11 @@ public abstract class AbstractJavaBaseEmbeddedMapping<T extends JavaResourceNode
//******** Validation ******************
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
for (Iterator<JavaAttributeOverride> stream = attributeOverrides(); stream.hasNext();) {
- stream.next().addToMessages(messages, astRoot);
+ stream.next().validate(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/AbstractJavaJpaContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaJpaContextNode.java
index 96f693146a..635b85ac9b 100644
--- 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
@@ -56,7 +56,7 @@ public abstract class AbstractJavaJpaContextNode
* 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) {
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
// do nothing by default
}
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
index 282fc15b83..558ed73d5c 100644
--- 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
@@ -171,7 +171,7 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
boolean oldCustomOrdering = this.isCustomOrdering;
this.isCustomOrdering = newCustomOrdering;
if (newCustomOrdering) {
- setOrderBy("");
+ setOrderBy(""); //$NON-NLS-1$
}
firePropertyChanged(CUSTOM_ORDERING_PROPERTY, oldCustomOrdering, newCustomOrdering);
}
@@ -190,8 +190,8 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
return this.joinTable;
}
- public boolean isJoinTableSpecified() {
- return getJoinTable().isSpecified();
+ public boolean joinTableIsSpecified() {
+ return this.joinTable.isSpecified();
}
public boolean isRelationshipOwner() {
@@ -245,11 +245,11 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
// }
@Override
- protected String buildDefaultTargetEntity(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- if (!resourcePersistentAttribute.typeIsContainer()) {
+ protected String buildDefaultTargetEntity(JavaResourcePersistentAttribute jrpa) {
+ if (!jrpa.typeIsContainer()) {
return null;
}
- return resourcePersistentAttribute.getQualifiedReferenceEntityElementTypeName();
+ return jrpa.getQualifiedReferenceEntityElementTypeName();
}
protected abstract boolean mappedByTouches(int pos, CompilationUnit astRoot);
@@ -261,8 +261,8 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
return false;
}
- protected MapKeyAnnotation getMapKeyResource(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- return (MapKeyAnnotation) resourcePersistentAttribute.getAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
+ protected MapKeyAnnotation getMapKeyResource(JavaResourcePersistentAttribute jrpa) {
+ return (MapKeyAnnotation) jrpa.getAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
}
public Iterator<String> candidateMapKeyNames() {
@@ -283,7 +283,7 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
if (result != null) {
return result;
}
- result = this.getJoinTable().javaCompletionProposals(pos, filter, astRoot);
+ result = this.joinTable.javaCompletionProposals(pos, filter, astRoot);
if (result != null) {
return result;
}
@@ -297,14 +297,14 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
}
@Override
- public void initialize(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.initialize(resourcePersistentAttribute);
- MapKeyAnnotation mapKey = this.getMapKeyResource(resourcePersistentAttribute);
- if (mapKey != null) {
- this.mapKey = mapKey.getName();
+ public void initialize(JavaResourcePersistentAttribute jrpa) {
+ super.initialize(jrpa);
+ MapKeyAnnotation mapKeyAnnotation = this.getMapKeyResource(jrpa);
+ if (mapKeyAnnotation != null) {
+ this.mapKey = mapKeyAnnotation.getName();
}
this.initializeOrderBy(this.getResourceOrderBy());
- this.joinTable.initialize(resourcePersistentAttribute);
+ this.joinTable.initialize(jrpa);
}
@Override
@@ -313,10 +313,10 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
this.mappedBy = this.mappedBy(relationshipMapping);
}
- protected void initializeOrderBy(OrderByAnnotation orderBy) {
- if (orderBy != null) {
- this.orderBy = orderBy.getValue();
- if (orderBy.getValue() == null) {
+ protected void initializeOrderBy(OrderByAnnotation orderByAnnotation) {
+ if (orderByAnnotation != null) {
+ this.orderBy = orderByAnnotation.getValue();
+ if (orderByAnnotation.getValue() == null) {
this.isPkOrdering = true;
}
else {
@@ -329,11 +329,11 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
}
@Override
- public void update(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- super.update(resourcePersistentAttribute);
- this.updateMapKey(resourcePersistentAttribute);
+ public void update(JavaResourcePersistentAttribute jrpa) {
+ super.update(jrpa);
+ this.updateMapKey(jrpa);
this.updateOrderBy(this.getResourceOrderBy());
- this.joinTable.update(resourcePersistentAttribute);
+ this.joinTable.update(jrpa);
}
@Override
@@ -342,20 +342,20 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
this.setMappedBy_(this.mappedBy(relationshipMapping));
}
- protected void updateMapKey(JavaResourcePersistentAttribute resourcePersistentAttribute) {
- MapKeyAnnotation mapKey = this.getMapKeyResource(resourcePersistentAttribute);
- if (mapKey != null) {
- setMapKey_(mapKey.getName());
+ protected void updateMapKey(JavaResourcePersistentAttribute jrpa) {
+ MapKeyAnnotation mapKeyAnnotation = this.getMapKeyResource(jrpa);
+ if (mapKeyAnnotation != null) {
+ setMapKey_(mapKeyAnnotation.getName());
}
else {
setMapKey_(null);
}
}
- protected void updateOrderBy(OrderByAnnotation orderBy) {
- if (orderBy != null) {
- setOrderBy_(orderBy.getValue());
- if (orderBy.getValue() == null) {
+ protected void updateOrderBy(OrderByAnnotation orderByAnnotation) {
+ if (orderByAnnotation != null) {
+ setOrderBy_(orderByAnnotation.getValue());
+ if (orderByAnnotation.getValue() == null) {
setPkOrdering_(true);
setCustomOrdering_(false);
setNoOrdering_(false);
@@ -373,34 +373,36 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
setNoOrdering_(true);
}
}
+
protected abstract String mappedBy(T relationshipMapping);
- //******** Validation ***********************************
+
+ // ********** validation **********
public abstract TextRange getMappedByTextRange(CompilationUnit astRoot);
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
- if (entityOwned() && (this.isJoinTableSpecified() || isRelationshipOwner())) {
- getJoinTable().addToMessages(messages, astRoot);
+ if (this.ownerIsEntity() && (this.joinTableIsSpecified() || this.isRelationshipOwner())) {
+ this.joinTable.validate(messages, astRoot);
}
if (this.getMappedBy() != null) {
- addMappedByMessages(messages, astRoot);
+ this.validateMappedBy(messages, astRoot);
}
}
- protected void addMappedByMessages(List<IMessage> messages, CompilationUnit astRoot) {
- if (this.isJoinTableSpecified()) {
+ protected void validateMappedBy(List<IMessage> messages, CompilationUnit astRoot) {
+ if (this.joinTableIsSpecified()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_MAPPED_BY_WITH_JOIN_TABLE,
- this.getJoinTable(),
- this.getJoinTable().getValidationTextRange(astRoot))
- );
-
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_MAPPED_BY_WITH_JOIN_TABLE,
+ this.joinTable,
+ this.joinTable.getValidationTextRange(astRoot)
+ )
+ );
}
Entity targetEntity = this.getResolvedTargetEntity();
@@ -414,38 +416,42 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
if (attribute == null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
- new String[] {this.mappedBy},
- this,
- this.getMappedByTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
+ new String[] {this.mappedBy},
+ this,
+ this.getMappedByTextRange(astRoot)
+ )
+ );
return;
}
-
- if (! this.mappedByIsValid(attribute.getMapping())) {
+
+ AttributeMapping mappedByMapping = attribute.getMapping();
+ if ( ! this.mappedByIsValid(mappedByMapping)) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
- new String[] {this.mappedBy},
- this,
- this.getMappedByTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
+ new String[] {this.mappedBy},
+ this,
+ this.getMappedByTextRange(astRoot)
+ )
+ );
return;
}
- AttributeMapping mappedByMapping = attribute.getMapping();
if ((mappedByMapping instanceof NonOwningMapping)
&& ((NonOwningMapping) mappedByMapping).getMappedBy() != null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_MAPPED_BY_ON_BOTH_SIDES,
- this,
- this.getMappedByTextRange(astRoot))
- );
+ 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/AbstractJavaSingleRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java
index f55a724f09..468beb1767 100644
--- 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
@@ -325,34 +325,36 @@ public abstract class AbstractJavaSingleRelationshipMapping<T extends Relationsh
// ********** validation **********
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if (this.connectionProfileIsActive()) {
- this.checkJoinColumns(messages, astRoot);
+ this.validateJoinColumns(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 void checkJoinColumns(List<IMessage> messages, CompilationUnit astRoot) {
- if (this.entityOwned() && this.isRelationshipOwner()) {
+ // 192287 - We don't want join column 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 join columns on the non-owning side.
+ // This would fix another bug that we show default join columns in this situation.
+ protected void validateJoinColumns(List<IMessage> messages, CompilationUnit astRoot) {
+ if (this.ownerIsEntity() && this.isRelationshipOwner()) {
for (Iterator<JavaJoinColumn> stream = this.joinColumns(); stream.hasNext(); ) {
- this.checkJoinColumn(stream.next(), messages, astRoot);
+ this.validateJoinColumn(stream.next(), messages, astRoot);
}
}
}
- protected void checkJoinColumn(JavaJoinColumn joinColumn, List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateJoinColumn(JavaJoinColumn joinColumn, List<IMessage> messages, CompilationUnit astRoot) {
if (this.getTypeMapping().tableNameIsInvalid(joinColumn.getTable())) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_TABLE,
new String[] {joinColumn.getTable(), joinColumn.getName()},
- joinColumn, joinColumn.getTableTextRange(astRoot))
+ joinColumn,
+ joinColumn.getTableTextRange(astRoot)
+ )
);
return;
}
@@ -363,7 +365,9 @@ public abstract class AbstractJavaSingleRelationshipMapping<T extends Relationsh
IMessage.HIGH_SEVERITY,
JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_NAME,
new String[] {joinColumn.getName()},
- joinColumn, joinColumn.getNameTextRange(astRoot))
+ joinColumn,
+ joinColumn.getNameTextRange(astRoot)
+ )
);
}
@@ -373,13 +377,15 @@ public abstract class AbstractJavaSingleRelationshipMapping<T extends Relationsh
IMessage.HIGH_SEVERITY,
JpaValidationMessages.JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME,
new String[] {joinColumn.getReferencedColumnName(), joinColumn.getName()},
- joinColumn, joinColumn.getReferencedColumnNameTextRange(astRoot))
+ joinColumn,
+ joinColumn.getReferencedColumnNameTextRange(astRoot)
+ )
);
}
}
- // ********** JavaJoinColumn.Owner implementation **********
+ // ********** join column owner adapter **********
public class JoinColumnOwner implements JavaJoinColumn.Owner {
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
index 04208f1345..fe05318c27 100644
--- 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
@@ -126,4 +126,10 @@ public abstract class AbstractJavaTypeMapping extends AbstractJavaJpaContextNode
TextRange textRange = this.getResourceMapping().getTextRange(astRoot);
return (textRange != null) ? textRange : this.getPersistentType().getValidationTextRange(astRoot);
}
+
+ @Override
+ public void toString(StringBuilder sb) {
+ sb.append(this.getPersistentType().getName());
+ }
+
}
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
index a28c2b7024..8560cb5549 100644
--- 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
@@ -197,38 +197,38 @@ public class GenericJavaAssociationOverride extends AbstractJavaOverride
// ********** validation **********
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if (this.connectionProfileIsActive()) {
- this.checkDatabase(messages, astRoot);
+ this.validateJoinColumns(messages, astRoot);
}
}
- protected void checkDatabase(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateJoinColumns(List<IMessage> messages, CompilationUnit astRoot) {
for (Iterator<JavaJoinColumn> stream = this.joinColumns(); stream.hasNext(); ) {
- this.checkDatabase(stream.next(), messages, astRoot);
+ this.validateJoinColumn(stream.next(), messages, astRoot);
}
}
- protected void checkDatabase(JavaJoinColumn joinColumn, List<IMessage> messages, CompilationUnit astRoot) {
- if (this.getOwner().getTypeMapping().tableNameIsInvalid(joinColumn.getTable())) {
+ protected void validateJoinColumn(JavaJoinColumn joinColumn, List<IMessage> messages, CompilationUnit astRoot) {
+ String tableName = joinColumn.getTable();
+ if (this.getOwner().getTypeMapping().tableNameIsInvalid(tableName)) {
if (this.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ASSOCIATION_OVERRIDE_JOIN_COLUMN_UNRESOLVED_TABLE,
- new String[] {this.getName(), joinColumn.getTable(), joinColumn.getName()},
+ new String[] {this.getName(), tableName, joinColumn.getName()},
joinColumn,
joinColumn.getTableTextRange(astRoot)
)
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_TABLE,
- new String[] {joinColumn.getTable(), joinColumn.getName()},
+ new String[] {tableName, joinColumn.getName()},
joinColumn,
joinColumn.getTableTextRange(astRoot)
)
@@ -248,8 +248,7 @@ public class GenericJavaAssociationOverride extends AbstractJavaOverride
joinColumn.getNameTextRange(astRoot)
)
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
@@ -273,8 +272,7 @@ public class GenericJavaAssociationOverride extends AbstractJavaOverride
joinColumn.getReferencedColumnNameTextRange(astRoot)
)
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
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
index d90c886cf0..641058777f 100644
--- 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
@@ -127,62 +127,66 @@ public class GenericJavaAttributeOverride extends AbstractJavaOverride
}
return null;
}
-
-
- //******************** validation **********************
+
+
+ // ********** validation **********
+
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if (this.connectionProfileIsActive()) {
- this.addColumnMessages(messages, astRoot);
+ this.validateColumn(messages, astRoot);
}
}
-
- protected void addColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
- if (this.getTypeMapping().tableNameIsInvalid(this.column.getTable())) {
- if (isVirtual()) {
+
+ protected void validateColumn(List<IMessage> messages, CompilationUnit astRoot) {
+ String tableName = this.column.getTable();
+ if (this.getTypeMapping().tableNameIsInvalid(tableName)) {
+ if (this.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_TABLE,
- new String[] {this.getName(), this.column.getTable(), this.column.getName()},
+ new String[] {this.getName(), tableName, this.column.getName()},
this.column,
- this.column.getTableTextRange(astRoot))
+ this.column.getTableTextRange(astRoot)
+ )
);
- }
- else {
+ } else {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {this.column.getTable(), this.column.getName()},
- this.column,
- this.column.getTableTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
+ new String[] {tableName, this.column.getName()},
+ this.column,
+ this.column.getTableTextRange(astRoot)
+ )
+ );
}
return;
}
if ( ! this.column.isResolved()) {
- if (isVirtual()) {
+ if (this.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME,
new String[] {this.getName(), this.column.getName()},
this.column,
- this.column.getNameTextRange(astRoot))
+ this.column.getNameTextRange(astRoot)
+ )
);
- }
- else {
+ } else {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {this.column.getName()},
- this.column,
- this.column.getNameTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
+ new String[] {this.column.getName()},
+ this.column,
+ this.column.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
index 86390bc943..14431f33cc 100644
--- 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
@@ -277,39 +277,43 @@ public class GenericJavaBasicMapping extends AbstractJavaAttributeMapping<BasicA
}
return null;
}
-
- // ************** Validation *************************************
+
+
+ // ********** validation **********
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages ,astRoot);
- if (this.entityOwned() && this.connectionProfileIsActive()) {
- this.addColumnMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages ,astRoot);
+ if (this.ownerIsEntity() && this.connectionProfileIsActive()) {
+ this.validateColumn(messages, astRoot);
}
}
- protected void addColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateColumn(List<IMessage> messages, CompilationUnit astRoot) {
if (this.getTypeMapping().tableNameIsInvalid(this.column.getTable())) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {this.column.getTable(), this.column.getName()},
- this.column,
- this.column.getTableTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
+ new String[] {this.column.getTable(), this.column.getName()},
+ this.column,
+ this.column.getTableTextRange(astRoot)
+ )
+ );
return;
}
if ( ! this.column.isResolved()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {this.column.getName()},
- this.column,
- this.column.getNameTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
+ new String[] {this.column.getName()},
+ this.column,
+ this.column.getNameTextRange(astRoot)
+ )
+ );
}
}
+
}
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
index 182f82e332..f3a71f695f 100644
--- 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
@@ -11,6 +11,7 @@ package org.eclipse.jpt.core.internal.context.java;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
@@ -25,7 +26,6 @@ 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;
@@ -55,6 +55,7 @@ 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.context.persistence.PersistenceUnit;
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;
@@ -88,16 +89,16 @@ 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
+public class GenericJavaEntity
+ extends AbstractJavaTypeMapping
+ implements JavaEntity, PersistenceUnit.JavaGeneratorHolder, PersistenceUnit.JavaQueryHolder
{
protected EntityAnnotation entityResource;
@@ -357,7 +358,7 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
);
}
- private Iterator<org.eclipse.jpt.db.Table> associatedDbTablesIncludingInherited() {
+ protected Iterator<org.eclipse.jpt.db.Table> associatedDbTablesIncludingInherited() {
return new FilteringIterator<org.eclipse.jpt.db.Table, org.eclipse.jpt.db.Table>(this.associatedDbTablesIncludingInherited_()) {
@Override
protected boolean accept(org.eclipse.jpt.db.Table t) {
@@ -366,7 +367,7 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
};
}
- private Iterator<org.eclipse.jpt.db.Table> associatedDbTablesIncludingInherited_() {
+ protected Iterator<org.eclipse.jpt.db.Table> associatedDbTablesIncludingInherited_() {
return new TransformationIterator<Table, org.eclipse.jpt.db.Table>(this.associatedTablesIncludingInherited()) {
@Override
protected org.eclipse.jpt.db.Table transform(Table t) {
@@ -665,11 +666,19 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
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 final Iterator<JavaGenerator> generators() {
+ ArrayList<JavaGenerator> generators = new ArrayList<JavaGenerator>();
+ this.addGeneratorsTo(generators);
+ return generators.iterator();
+ }
+
+ protected void addGeneratorsTo(ArrayList<JavaGenerator> generators) {
+ if (this.sequenceGenerator != null) {
+ generators.add(this.sequenceGenerator);
+ }
+ if (this.tableGenerator != null) {
+ generators.add(this.tableGenerator);
+ }
}
public ListIterator<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns() {
@@ -922,7 +931,7 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
return containsOverride(name, virtualAssociationOverrides());
}
- private BaseOverride getOverrideNamed(String name, ListIterator<? extends BaseOverride> overrides) {
+ protected BaseOverride getOverrideNamed(String name, ListIterator<? extends BaseOverride> overrides) {
for (BaseOverride override : CollectionTools.iterable(overrides)) {
String overrideName = override.getName();
if (overrideName == null && name == null) {
@@ -935,7 +944,7 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
return null;
}
- private boolean containsOverride(String name, ListIterator<? extends BaseOverride> overrides) {
+ protected boolean containsOverride(String name, ListIterator<? extends BaseOverride> overrides) {
return getOverrideNamed(name, overrides) != null;
}
@@ -1150,7 +1159,7 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
}
@SuppressWarnings("unchecked")
- protected Iterator<JavaQuery> queries() {
+ public Iterator<JavaQuery> queries() {
return new CompositeIterator<JavaQuery>(this.namedNativeQueries(), this.namedQueries());
}
@@ -1851,49 +1860,47 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
//********** Validation ********************************************
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
- getTable().addToMessages(messages, astRoot);
- addIdMessages(messages, astRoot);
- addGeneratorMessages(messages, astRoot);
- addQueryMessages(messages, astRoot);
+ this.table.validate(messages, astRoot);
+ this.validateId(messages, astRoot);
+ this.getPersistenceUnit().validateGenerators(this, messages, astRoot);
+ this.getPersistenceUnit().validateQueries(this, messages, astRoot);
for (Iterator<JavaSecondaryTable> stream = this.specifiedSecondaryTables(); stream.hasNext();) {
- stream.next().addToMessages(messages, astRoot);
+ stream.next().validate(messages, astRoot);
}
for (Iterator<JavaAttributeOverride> stream = this.attributeOverrides(); stream.hasNext();) {
- stream.next().addToMessages(messages, astRoot);
+ stream.next().validate(messages, astRoot);
}
for (Iterator<JavaAssociationOverride> stream = this.associationOverrides(); stream.hasNext();) {
- stream.next().addToMessages(messages, astRoot);
+ stream.next().validate(messages, astRoot);
}
}
- protected void addIdMessages(List<IMessage> messages, CompilationUnit astRoot) {
- addNoIdMessage(messages, astRoot);
- }
-
- protected void addNoIdMessage(List<IMessage> messages, CompilationUnit astRoot) {
- if (entityHasNoId()) {
+ protected void validateId(List<IMessage> messages, CompilationUnit astRoot) {
+ if (this.entityHasNoId()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.ENTITY_NO_ID,
new String[] {this.getName()},
- this, this.getValidationTextRange(astRoot))
+ this,
+ this.getValidationTextRange(astRoot)
+ )
);
}
}
- private boolean entityHasNoId() {
+ protected boolean entityHasNoId() {
return ! this.entityHasId();
}
- private boolean entityHasId() {
+ protected boolean entityHasId() {
for (Iterator<PersistentAttribute> stream = getPersistentType().allAttributes(); stream.hasNext(); ) {
if (stream.next().isIdAttribute()) {
return true;
@@ -1902,54 +1909,9 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
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);
- }
- }
-
+
+ // ********** pk join column owner **********
+
class PrimaryKeyJoinColumnOwner implements JavaBaseJoinColumn.Owner
{
public TextRange getValidationTextRange(CompilationUnit astRoot) {
@@ -1985,6 +1947,9 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
}
}
+
+ // ********** attribute override owner **********
+
class AttributeOverrideOwner implements AttributeOverride.Owner {
public ColumnMapping getColumnMapping(String attributeName) {
@@ -2020,6 +1985,9 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
}
}
+
+ // ********** association override owner **********
+
class AssociationOverrideOwner implements AssociationOverride.Owner {
public RelationshipMapping getRelationshipMapping(String attributeName) {
@@ -2054,4 +2022,5 @@ public class GenericJavaEntity extends AbstractJavaTypeMapping implements JavaEn
return null;
}
}
+
}
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
index fee7a4b4e0..0980817d2b 100644
--- 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
@@ -11,6 +11,7 @@ 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.Converter;
@@ -23,6 +24,7 @@ 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.context.persistence.PersistenceUnit;
import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
@@ -34,7 +36,6 @@ 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;
@@ -42,7 +43,9 @@ 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
+public class GenericJavaIdMapping
+ extends AbstractJavaAttributeMapping<IdAnnotation>
+ implements JavaIdMapping, PersistenceUnit.JavaGeneratorHolder, PersistenceUnit.JavaGeneratedValueHolder
{
protected final JavaColumn column;
@@ -138,7 +141,7 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
public JavaGeneratedValue addGeneratedValue() {
if (getGeneratedValue() != null) {
- throw new IllegalStateException("gemeratedValue already exists");
+ throw new IllegalStateException("gemeratedValue already exists"); //$NON-NLS-1$
}
this.generatedValue = getJpaFactory().buildJavaGeneratedValue(this);
GeneratedValueAnnotation generatedValueResource = (GeneratedValueAnnotation) getResourcePersistentAttribute().addAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME);
@@ -149,7 +152,7 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
public void removeGeneratedValue() {
if (getGeneratedValue() == null) {
- throw new IllegalStateException("gemeratedValue does not exist, cannot be removed");
+ throw new IllegalStateException("gemeratedValue does not exist, cannot be removed"); //$NON-NLS-1$
}
JavaGeneratedValue oldGeneratedValue = this.generatedValue;
this.generatedValue = null;
@@ -169,7 +172,7 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
public JavaTableGenerator addTableGenerator() {
if (getTableGenerator() != null) {
- throw new IllegalStateException("tableGenerator already exists");
+ throw new IllegalStateException("tableGenerator already exists"); //$NON-NLS-1$
}
this.tableGenerator = getJpaFactory().buildJavaTableGenerator(this);
TableGeneratorAnnotation tableGeneratorResource = (TableGeneratorAnnotation) getResourcePersistentAttribute().addAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME);
@@ -180,7 +183,7 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
public void removeTableGenerator() {
if (getTableGenerator() == null) {
- throw new IllegalStateException("tableGenerator does not exist, cannot be removed");
+ throw new IllegalStateException("tableGenerator does not exist, cannot be removed"); //$NON-NLS-1$
}
JavaTableGenerator oldTableGenerator = this.tableGenerator;
this.tableGenerator = null;
@@ -200,7 +203,7 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
public JavaSequenceGenerator addSequenceGenerator() {
if (getSequenceGenerator() != null) {
- throw new IllegalStateException("sequenceGenerator already exists");
+ throw new IllegalStateException("sequenceGenerator already exists"); //$NON-NLS-1$
}
this.sequenceGenerator = getJpaFactory().buildJavaSequenceGenerator(this);
@@ -212,7 +215,7 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
public void removeSequenceGenerator() {
if (getSequenceGenerator() == null) {
- throw new IllegalStateException("sequenceGenerator does not exist, cannot be removed");
+ throw new IllegalStateException("sequenceGenerator does not exist, cannot be removed"); //$NON-NLS-1$
}
JavaSequenceGenerator oldSequenceGenerator = this.sequenceGenerator;
this.sequenceGenerator = null;
@@ -231,7 +234,7 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
}
@SuppressWarnings("unchecked")
- protected Iterator<JavaGenerator> generators() {
+ public Iterator<JavaGenerator> generators() {
return new CompositeIterator<JavaGenerator>(
(getSequenceGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getSequenceGenerator()),
(getTableGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getTableGenerator()));
@@ -314,9 +317,9 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
}
protected JavaTableGenerator buildTableGenerator(TableGeneratorAnnotation resourceTableGenerator) {
- JavaTableGenerator tableGenerator = getJpaFactory().buildJavaTableGenerator(this);
- tableGenerator.initialize(resourceTableGenerator);
- return tableGenerator;
+ JavaTableGenerator generator = getJpaFactory().buildJavaTableGenerator(this);
+ generator.initialize(resourceTableGenerator);
+ return generator;
}
protected void updateSequenceGenerator(JavaResourcePersistentAttribute jrpa) {
@@ -337,9 +340,9 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
}
protected JavaSequenceGenerator buildSequenceGenerator(SequenceGeneratorAnnotation resourceSequenceGenerator) {
- JavaSequenceGenerator sequenceGenerator = getJpaFactory().buildJavaSequenceGenerator(this);
- sequenceGenerator.initialize(resourceSequenceGenerator);
- return sequenceGenerator;
+ JavaSequenceGenerator generator = getJpaFactory().buildJavaSequenceGenerator(this);
+ generator.initialize(resourceSequenceGenerator);
+ return generator;
}
protected void updateGeneratedValue(JavaResourcePersistentAttribute jrpa) {
@@ -360,9 +363,9 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
}
protected JavaGeneratedValue buildGeneratedValue(GeneratedValueAnnotation resourceGeneratedValue) {
- JavaGeneratedValue generatedValue = getJpaFactory().buildJavaGeneratedValue(this);
- generatedValue.initialize(resourceGeneratedValue);
- return generatedValue;
+ JavaGeneratedValue gv = getJpaFactory().buildJavaGeneratedValue(this);
+ gv.initialize(resourceGeneratedValue);
+ return gv;
}
protected TableGeneratorAnnotation getResourceTableGenerator(JavaResourcePersistentAttribute jrpa) {
@@ -435,87 +438,41 @@ public class GenericJavaIdMapping extends AbstractJavaAttributeMapping<IdAnnotat
//*********** Validation ************
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
- if (this.entityOwned() && this.connectionProfileIsActive()) {
- this.addColumnMessages(messages, astRoot);
+ if (this.ownerIsEntity() && this.connectionProfileIsActive()) {
+ this.validateColumn(messages, astRoot);
}
- addGeneratedValueMessages(messages, astRoot);
- addGeneratorMessages(messages, astRoot);
+ this.getPersistenceUnit().validateGeneratedValue(this, messages, astRoot);
+ this.getPersistenceUnit().validateGenerators(this, messages, astRoot);
}
- protected void addColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateColumn(List<IMessage> messages, CompilationUnit astRoot) {
if (this.getTypeMapping().tableNameIsInvalid(this.column.getTable())) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {this.column.getTable(), this.column.getName()},
- this.column,
- this.column.getTableTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
+ new String[] {this.column.getTable(), this.column.getName()},
+ this.column,
+ this.column.getTableTextRange(astRoot)
+ )
+ );
return;
}
if ( ! this.column.isResolved()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {this.column.getName()},
- this.column,
- this.column.getNameTextRange(astRoot))
- );
- }
- }
-
- protected void addGeneratedValueMessages(List<IMessage> messages, CompilationUnit astRoot) {
- if (this.generatedValue == null) {
- return;
- }
- String generatorName = this.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,
- this.generatedValue.getGeneratorTextRange(astRoot))
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
+ new String[] {this.column.getName()},
+ this.column,
+ this.column.getNameTextRange(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
index bd3e29a99f..4260cfb89d 100644
--- 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
@@ -148,42 +148,28 @@ public class GenericJavaJoinColumn extends AbstractJavaBaseColumn<JoinColumnAnno
}
@Override
- public void initialize(JoinColumnAnnotation jca) {
- this.joinColumn = jca;
- super.initialize(jca);
- this.specifiedReferencedColumnName = jca.getReferencedColumnName();
- this.defaultReferencedColumnName = this.defaultReferencedColumnName();
+ public void initialize(JoinColumnAnnotation annotation) {
+ this.joinColumn = annotation;
+ super.initialize(annotation);
+ this.specifiedReferencedColumnName = annotation.getReferencedColumnName();
+ this.defaultReferencedColumnName = this.buildDefaultReferencedColumnName();
}
@Override
- public void update(JoinColumnAnnotation jca) {
- this.joinColumn = jca;
- super.update(jca);
- this.setSpecifiedReferencedColumnName_(jca.getReferencedColumnName());
- this.setDefaultReferencedColumnName(this.defaultReferencedColumnName());
+ public void update(JoinColumnAnnotation annotation) {
+ this.joinColumn = annotation;
+ super.update(annotation);
+ this.setSpecifiedReferencedColumnName_(annotation.getReferencedColumnName());
+ this.setDefaultReferencedColumnName(this.buildDefaultReferencedColumnName());
}
@Override
protected String buildDefaultName() {
- 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);
+ protected String buildDefaultReferencedColumnName() {
+ return MappingTools.buildJoinColumnDefaultReferencedColumnName(this.getOwner());
}
@Override
@@ -199,8 +185,8 @@ public class GenericJavaJoinColumn extends AbstractJavaBaseColumn<JoinColumnAnno
}
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if ( ! this.isResolved()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
@@ -208,7 +194,8 @@ public class GenericJavaJoinColumn extends AbstractJavaBaseColumn<JoinColumnAnno
JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_NAME,
new String[] {this.getName()},
this,
- this.getNameTextRange(astRoot))
+ this.getNameTextRange(astRoot)
+ )
);
}
@@ -219,7 +206,8 @@ public class GenericJavaJoinColumn extends AbstractJavaBaseColumn<JoinColumnAnno
JpaValidationMessages.JOIN_COLUMN_REFERENCED_COLUMN_UNRESOLVED_NAME,
new String[] {this.getReferencedColumnName(), this.getName()},
this,
- this.getReferencedColumnNameTextRange(astRoot))
+ this.getReferencedColumnNameTextRange(astRoot)
+ )
);
}
}
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
index a0c6568e3a..1a61537425 100644
--- 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
@@ -501,39 +501,41 @@ public class GenericJavaJoinTable
return joinColumn;
}
-
- //********************* validation ********************
+
+ // ********** validation **********
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if (this.connectionProfileIsActive()) {
- this.checkDatabase(messages, astRoot);
+ this.validateAgainstDatabase(messages, astRoot);
}
}
- protected void checkDatabase(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateAgainstDatabase(List<IMessage> messages, CompilationUnit astRoot) {
if ( ! this.hasResolvedCatalog()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_TABLE_UNRESOLVED_CATALOG,
- new String[] {this.getCatalog(), this.getName()},
- this,
- this.getCatalogTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.JOIN_TABLE_UNRESOLVED_CATALOG,
+ new String[] {this.getCatalog(), this.getName()},
+ this,
+ this.getCatalogTextRange(astRoot)
+ )
+ );
return;
}
if ( ! this.hasResolvedSchema()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_TABLE_UNRESOLVED_SCHEMA,
- new String[] {this.getSchema(), this.getName()},
- this,
- this.getSchemaTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.JOIN_TABLE_UNRESOLVED_SCHEMA,
+ new String[] {this.getSchema(), this.getName()},
+ this,
+ this.getSchemaTextRange(astRoot)
+ )
+ );
return;
}
@@ -541,25 +543,29 @@ public class GenericJavaJoinTable
String attributeName = this.getRelationshipMapping().getPersistentAttribute().getName();
messages.add(
DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.JOIN_TABLE_CANNOT_BE_DETERMINED,
- new String[] {attributeName},
- this,
- this.getNameTextRange(astRoot))
- );
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.JOIN_TABLE_CANNOT_BE_DETERMINED,
+ new String[] {attributeName},
+ this,
+ this.getNameTextRange(astRoot)
+ )
+ );
return;
}
- this.checkJoinColumns(this.joinColumns(), messages, astRoot);
- this.checkJoinColumns(this.inverseJoinColumns(), messages, astRoot);
+ this.validateJoinColumns(this.joinColumns(), messages, astRoot);
+ this.validateJoinColumns(this.inverseJoinColumns(), messages, astRoot);
}
- protected void checkJoinColumns(Iterator<JavaJoinColumn> joinColumns, List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateJoinColumns(Iterator<JavaJoinColumn> joinColumns, List<IMessage> messages, CompilationUnit astRoot) {
while (joinColumns.hasNext()) {
- joinColumns.next().addToMessages(messages, astRoot);
+ joinColumns.next().validate(messages, astRoot);
}
}
+
+ // ********** join column owner adapters **********
+
/**
* just a little common behavior
*/
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
index d167f24d6d..df07fc3570 100644
--- 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
@@ -77,7 +77,7 @@ public class GenericJavaManyToManyMapping extends AbstractJavaMultiRelationshipM
}
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(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
index c6a2569169..acb5583cbf 100644
--- 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
@@ -69,8 +69,8 @@ public class GenericJavaManyToOneMapping
}
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
}
}
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
index 247c3f2264..c3c43657ed 100644
--- 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
@@ -44,7 +44,7 @@ public class GenericJavaNullAttributeMapping extends AbstractJavaAttributeMappin
}
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(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
index a1bf58e188..7858eb3ec0 100644
--- 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
@@ -79,8 +79,8 @@ public class GenericJavaOneToManyMapping extends AbstractJavaMultiRelationshipMa
}
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(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
index 97c65c01cb..00d6c3498e 100644
--- 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
@@ -260,67 +260,66 @@ public class GenericJavaOneToOneMapping
// ********** Validation **********
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if (this.mappedBy != null) {
- this.checkMappedBy(messages ,astRoot);
+ this.validateMappedBy(messages ,astRoot);
}
}
@Override
- protected void checkJoinColumns(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateJoinColumns(List<IMessage> messages, CompilationUnit astRoot) {
if (this.primaryKeyJoinColumns.isEmpty() || this.containsSpecifiedJoinColumns()) {
- super.checkJoinColumns(messages, astRoot);
+ super.validateJoinColumns(messages, astRoot);
}
}
- protected void checkMappedBy(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateMappedBy(List<IMessage> messages, CompilationUnit astRoot) {
Entity targetEntity = this.getResolvedTargetEntity();
if (targetEntity == null) {
- // already have validation messages for that
- return;
+ return; // null target entity is validated elsewhere
}
PersistentAttribute attribute = targetEntity.getPersistentType().resolveAttribute(this.mappedBy);
if (attribute == null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
- new String[] {this.mappedBy},
- this,
- this.getMappedByTextRange(astRoot)
- )
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
+ new String[] {this.mappedBy},
+ this,
+ this.getMappedByTextRange(astRoot)
+ )
+ );
return;
}
- if ( ! this.mappedByIsValid(attribute.getMapping())) {
+ AttributeMapping mappedByMapping = attribute.getMapping();
+ if ( ! this.mappedByIsValid(mappedByMapping)) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
- new String[] {this.mappedBy},
- this,
- this.getMappedByTextRange(astRoot)
- )
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
+ new String[] {this.mappedBy},
+ this,
+ this.getMappedByTextRange(astRoot)
+ )
+ );
return;
}
- AttributeMapping mappedByMapping = attribute.getMapping();
if ((mappedByMapping instanceof NonOwningMapping)
&& ((NonOwningMapping) mappedByMapping).getMappedBy() != null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_MAPPED_BY_ON_BOTH_SIDES,
- this,
- this.getMappedByTextRange(astRoot)
- )
- );
+ 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
index 9e80466e0c..c88db4a8c3 100644
--- 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
@@ -29,7 +29,11 @@ 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
+/**
+ *
+ */
+public class GenericJavaPersistentAttribute
+ extends AbstractJavaJpaContextNode
implements JavaPersistentAttribute
{
protected String name;
@@ -40,6 +44,7 @@ public class GenericJavaPersistentAttribute extends AbstractJavaJpaContextNode
protected JavaResourcePersistentAttribute resourcePersistentAttribute;
+
public GenericJavaPersistentAttribute(JavaPersistentType parent, JavaResourcePersistentAttribute jrpa) {
super(parent);
this.initialize(jrpa);
@@ -301,28 +306,33 @@ public class GenericJavaPersistentAttribute extends AbstractJavaJpaContextNode
}
return this.getMapping().javaCompletionProposals(pos, filter, astRoot);
}
-
- //************* Validation ******************************
-
+
+
+ // ********** validation **********
+
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if (this.specifiedMapping != null) {
- this.specifiedMapping.addToMessages(messages, astRoot);
+ this.specifiedMapping.validate(messages, astRoot);
}
else if (this.defaultMapping != null) {
- this.defaultMapping.addToMessages(messages, astRoot);
+ this.defaultMapping.validate(messages, astRoot);
}
}
+
+ // ********** misc **********
+
@Override
public void toString(StringBuilder sb) {
super.toString(sb);
- sb.append(getName());
+ sb.append(this.name);
}
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
index b66a329fdf..77846f0b45 100644
--- 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
@@ -507,36 +507,50 @@ public class GenericJavaPersistentType extends AbstractJavaJpaContextNode implem
return getPersistenceUnit().getPersistentType(fullyQualifiedTypeName);
}
- //*************** Validation ******************************************
- public void addToMessages(List<IMessage> messages) {
- //get astRoot here to pass down
- addToMessages(messages, this.buildASTRoot());
+
+ // ********** validation **********
+
+ public void validate(List<IMessage> messages) {
+ // build the AST root here to pass down
+ this.validate(messages, this.buildASTRoot());
}
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
+ this.validateMapping(messages, astRoot);
+ this.validateAttributes(messages, astRoot);
+ }
+
+ protected void validateMapping(List<IMessage> messages, CompilationUnit astRoot) {
try {
- this.mapping.addToMessages(messages, astRoot);
+ this.mapping.validate(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);
- }
+ protected void validateAttributes(List<IMessage> messages, CompilationUnit astRoot) {
+ for (Iterator<JavaPersistentAttribute> stream = this.attributes(); stream.hasNext(); ) {
+ this.validateAttribute(stream.next(), messages, astRoot);
}
}
+ protected void validateAttribute(JavaPersistentAttribute attribute, List<IMessage> messages, CompilationUnit astRoot) {
+ try {
+ attribute.validate(messages, astRoot);
+ } catch(Throwable t) {
+ JptCorePlugin.log(t);
+ }
+ }
+
+
+ // ********** misc **********
+
@Override
public void toString(StringBuilder sb) {
super.toString(sb);
- sb.append(getName());
+ sb.append(this.name);
}
public void dispose() {
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
index 874026fd24..e27eb22db4 100644
--- 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
@@ -274,57 +274,63 @@ public class GenericJavaSecondaryTable
return new PrimaryKeyJoinColumnOwner();
}
+
+ // ********** validation **********
+
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if (this.connectionProfileIsActive()) {
- this.checkDatabase(messages, astRoot);
+ this.validateAgainstDatabase(messages, astRoot);
}
for (Iterator<JavaPrimaryKeyJoinColumn> stream = this.primaryKeyJoinColumns(); stream.hasNext(); ) {
- stream.next().addToMessages(messages, astRoot);
+ stream.next().validate(messages, astRoot);
}
}
- protected void checkDatabase(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateAgainstDatabase(List<IMessage> messages, CompilationUnit astRoot) {
if ( ! this.hasResolvedCatalog()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_CATALOG,
- new String[] {this.getCatalog(), this.getName()},
- this,
- this.getCatalogTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_CATALOG,
+ new String[] {this.getCatalog(), this.getName()},
+ this,
+ this.getCatalogTextRange(astRoot)
+ )
+ );
return;
}
if ( ! this.hasResolvedSchema()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_SCHEMA,
- new String[] {this.getSchema(), this.getName()},
- this,
- this.getSchemaTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_SCHEMA,
+ new String[] {this.getSchema(), this.getName()},
+ this,
+ this.getSchemaTextRange(astRoot)
+ )
+ );
return;
}
if ( ! this.isResolved()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_NAME,
- new String[] {this.getName()},
- this,
- this.getNameTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_NAME,
+ new String[] {this.getName()},
+ this,
+ this.getNameTextRange(astRoot)
+ )
+ );
return;
}
}
- //********************* code completion ************************
+ // ********** code completion **********
@Override
public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
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
index 9ca644deaa..d07923e75a 100644
--- 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
@@ -100,48 +100,50 @@ public class GenericJavaTable
//******************* validation **********************
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
if (this.connectionProfileIsActive()) {
- this.checkDatabase(messages, astRoot);
+ this.validateAgainstDatabase(messages, astRoot);
}
}
- protected void checkDatabase(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateAgainstDatabase(List<IMessage> messages, CompilationUnit astRoot) {
if ( ! this.hasResolvedCatalog()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.TABLE_UNRESOLVED_CATALOG,
- new String[] {this.getCatalog(), this.getName()},
- this,
- this.getCatalogTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.TABLE_UNRESOLVED_CATALOG,
+ new String[] {this.getCatalog(), this.getName()},
+ this,
+ this.getCatalogTextRange(astRoot)
+ )
+ );
return;
}
if ( ! this.hasResolvedSchema()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.TABLE_UNRESOLVED_SCHEMA,
- new String[] {this.getSchema(), this.getName()},
- this,
- this.getSchemaTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.TABLE_UNRESOLVED_SCHEMA,
+ new String[] {this.getSchema(), this.getName()},
+ this,
+ this.getSchemaTextRange(astRoot)
+ )
+ );
return;
}
if ( ! this.isResolved()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.TABLE_UNRESOLVED_NAME,
- new String[] {this.getName()},
- this,
- this.getNameTextRange(astRoot))
- );
- return;
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.TABLE_UNRESOLVED_NAME,
+ new String[] {this.getName()},
+ this,
+ this.getNameTextRange(astRoot)
+ )
+ );
}
}
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
index d7d919db68..05004e1822 100644
--- 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
@@ -40,8 +40,8 @@ public class GenericJavaTransientMapping extends AbstractJavaAttributeMapping<Tr
}
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
}
}
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
index b4f88454e2..f7afd9598b 100644
--- 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
@@ -177,35 +177,38 @@ public class GenericJavaVersionMapping extends AbstractJavaAttributeMapping<Vers
//*********** Validation ******************************
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- if (this.entityOwned() && this.connectionProfileIsActive()) {
- this.addColumnMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
+ if (this.ownerIsEntity() && this.connectionProfileIsActive()) {
+ this.validateColumn(messages, astRoot);
}
}
- protected void addColumnMessages(List<IMessage> messages, CompilationUnit astRoot) {
- if (this.getTypeMapping().tableNameIsInvalid(this.column.getTable())) {
+ protected void validateColumn(List<IMessage> messages, CompilationUnit astRoot) {
+ String tableName = this.column.getTable();
+ if (this.getTypeMapping().tableNameIsInvalid(tableName)) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {this.column.getTable(), this.column.getName()},
- this.column,
- this.column.getTableTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
+ new String[] {tableName, this.column.getName()},
+ this.column,
+ this.column.getTableTextRange(astRoot)
+ )
+ );
return;
}
if ( ! this.column.isResolved()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {this.column.getName()},
- this.column,
- this.column.getNameTextRange(astRoot))
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
+ new String[] {this.column.getName()},
+ this.column,
+ this.column.getNameTextRange(astRoot)
+ )
+ );
}
}
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
index b3067e7e93..8445bb0e91 100644
--- 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
@@ -42,19 +42,26 @@ public class JavaNullTypeMapping extends AbstractJavaTypeMapping
public Iterator<String> correspondingAnnotationNames() {
return EmptyIterator.instance();
}
-
+
+ /**
+ * We added this message here because the most likely solution is to add
+ * an annotation to the .java file.
+ * This message used to be found on the <class> tag in persistence.xml.
+ * The other possible way to fix the error is to remove it from persistence.xml.
+ * This can be accomplished with the Synchronize Classes action.
+ * We could also add a quick fix for this error.
+ */
@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)));
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ messages.add(
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.PERSISTENCE_UNIT_INVALID_CLASS,
+ new String[] {this.getPersistentType().getName()},
+ this,
+ this.getValidationTextRange(astRoot)
+ )
+ );
}
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmAttributeMapping.java
index 97cad49cb5..51e136aadc 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmAttributeMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmAttributeMapping.java
@@ -216,7 +216,7 @@ public abstract class AbstractOrmAttributeMapping<T extends XmlAttributeMapping>
}
- protected boolean entityOwned() {
+ protected boolean ownerIsEntity() {
return getTypeMapping().getKey() == MappingKeys.ENTITY_TYPE_MAPPING_KEY;
}
@@ -240,15 +240,15 @@ public abstract class AbstractOrmAttributeMapping<T extends XmlAttributeMapping>
// ********** validation **********
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- this.checkAttribute(messages);
- this.checkModifiers(messages);
- this.checkMapping(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.validateAttribute(messages);
+ this.validateModifiers(messages);
+ this.validateMapping(messages);
}
- protected void checkAttribute(List<IMessage> messages) {
- if (StringTools.stringIsEmpty(this.getName())) {
+ protected void validateAttribute(List<IMessage> messages) {
+ if (StringTools.stringIsEmpty(this.name)) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
@@ -265,7 +265,7 @@ public abstract class AbstractOrmAttributeMapping<T extends XmlAttributeMapping>
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENT_ATTRIBUTE_UNRESOLVED_NAME,
- new String[] {this.getName(), this.getPersistentAttribute().getPersistentType().getMapping().getClass_()},
+ new String[] {this.name, this.getPersistentAttribute().getPersistentType().getMapping().getClass_()},
this,
this.getNameTextRange()
)
@@ -273,7 +273,7 @@ public abstract class AbstractOrmAttributeMapping<T extends XmlAttributeMapping>
}
}
- protected void checkModifiers(List<IMessage> messages) {
+ protected void validateModifiers(List<IMessage> messages) {
if (this.getKey() == MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY) {
return;
}
@@ -284,43 +284,37 @@ public abstract class AbstractOrmAttributeMapping<T extends XmlAttributeMapping>
JavaResourcePersistentAttribute jrpa = jpa.getResourcePersistentAttribute();
if (jrpa.isForField()) {
- //TODO validation : need to have a validation message for final methods as well.
- //From the JPA spec : No methods or persistent instance variables of the entity class may be final.
if (jrpa.isFinal()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENT_ATTRIBUTE_FINAL_FIELD,
- new String[] {this.getName()},
- this.getPersistentAttribute(),
- this.getPersistentAttribute().getValidationTextRange()
- )
- );
+ messages.add(this.buildAttributeMessage(JpaValidationMessages.PERSISTENT_ATTRIBUTE_FINAL_FIELD));
}
-
if (jrpa.isPublic()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENT_ATTRIBUTE_PUBLIC_FIELD,
- new String[] {this.getName()},
- this.getPersistentAttribute(),
- this.getPersistentAttribute().getValidationTextRange()
- )
- );
-
+ messages.add(this.buildAttributeMessage(JpaValidationMessages.PERSISTENT_ATTRIBUTE_PUBLIC_FIELD));
}
+ } else {
+ //TODO validation : need to have a validation message for final methods as well.
+ //From the JPA spec : No methods or persistent instance variables of the entity class may be final.
}
}
+ protected IMessage buildAttributeMessage(String msgID) {
+ OrmPersistentAttribute pa = this.getPersistentAttribute();
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ msgID,
+ new String[] {this.name},
+ pa,
+ pa.getValidationTextRange()
+ );
+ }
+
//TODO validation message - i think more info is needed in this message. include type mapping type?
- protected void checkMapping(List<IMessage> messages) {
+ protected void validateMapping(List<IMessage> messages) {
if ( ! this.getTypeMapping().attributeMappingKeyAllowed(this.getKey())) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENT_ATTRIBUTE_INVALID_MAPPING,
- new String[] {this.getName()},
+ new String[] {this.name},
this,
this.getValidationTextRange()
)
@@ -328,4 +322,9 @@ public abstract class AbstractOrmAttributeMapping<T extends XmlAttributeMapping>
}
}
+ @Override
+ public void toString(StringBuilder sb) {
+ sb.append(this.getAttributeName());
+ }
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmJpaContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmJpaContextNode.java
index 22f59c6274..81d1bd36c8 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmJpaContextNode.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmJpaContextNode.java
@@ -34,7 +34,7 @@ public abstract class AbstractOrmJpaContextNode
* All subclass implementations {@link #addToMessages(List<IMessage>)}
* should be preceded by a "super" call to this method
*/
- public void addToMessages(List<IMessage> messages) {
+ public void validate(List<IMessage> messages) {
// do nothing by default
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java
index 0c7c7012fa..465a8f26bc 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java
@@ -13,6 +13,7 @@ import java.util.Iterator;
import java.util.List;
import org.eclipse.jpt.core.context.AttributeMapping;
+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;
@@ -129,7 +130,7 @@ public abstract class AbstractOrmMultiRelationshipMapping<T extends XmlMultiRela
boolean oldPkOrdering = this.isPkOrdering;
this.isPkOrdering = newPkOrdering;
if (newPkOrdering) {
- getAttributeMapping().setOrderBy("");
+ getAttributeMapping().setOrderBy(""); //$NON-NLS-1$
}
firePropertyChanged(PK_ORDERING_PROPERTY, oldPkOrdering, newPkOrdering);
}
@@ -148,7 +149,7 @@ public abstract class AbstractOrmMultiRelationshipMapping<T extends XmlMultiRela
boolean oldCustomOrdering = this.isCustomOrdering;
this.isCustomOrdering = newCustomOrdering;
if (newCustomOrdering) {
- setOrderBy("");
+ setOrderBy(""); //$NON-NLS-1$
}
firePropertyChanged(CUSTOM_ORDERING_PROPERTY, oldCustomOrdering, newCustomOrdering);
}
@@ -163,7 +164,7 @@ public abstract class AbstractOrmMultiRelationshipMapping<T extends XmlMultiRela
return this.joinTable;
}
- public boolean isJoinTableSpecified() {
+ public boolean joinTableIsSpecified() {
return getJoinTable().isSpecified();
}
@@ -302,70 +303,71 @@ public abstract class AbstractOrmMultiRelationshipMapping<T extends XmlMultiRela
//****************** validation ******************8
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
-
- if (entityOwned() && (this.isJoinTableSpecified() || isRelationshipOwner())) {
- getJoinTable().addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ if (this.ownerIsEntity() && (this.joinTableIsSpecified() || this.isRelationshipOwner())) {
+ this.joinTable.validate(messages);
}
- if (getMappedBy() != null) {
- addMappedByMessages(messages);
+ if (this.mappedBy != null) {
+ this.validateMappedBy(messages);
}
}
- protected void addMappedByMessages(List<IMessage> messages) {
- if (isJoinTableSpecified()) {
+ protected void validateMappedBy(List<IMessage> messages) {
+ if (this.joinTableIsSpecified()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_MAPPED_BY_WITH_JOIN_TABLE,
- getJoinTable(),
- getJoinTable().getValidationTextRange())
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_MAPPED_BY_WITH_JOIN_TABLE,
+ this.joinTable,
+ this.joinTable.getValidationTextRange()
+ )
+ );
}
-
- if (getResolvedTargetEntity() == null) {
- // already have validation messages for that
- return;
+ Entity targetEntity = this.getResolvedTargetEntity();
+ if (targetEntity == null) {
+ return; // validated elsewhere
}
- PersistentAttribute attribute = getResolvedTargetEntity().getPersistentType().resolveAttribute(getMappedBy());
+ PersistentAttribute attribute = targetEntity.getPersistentType().resolveAttribute(this.mappedBy);
if (attribute == null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
- new String[] {getMappedBy()},
- this,
- getMappedByTextRange())
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
+ new String[] {this.mappedBy},
+ this,
+ this.getMappedByTextRange()
+ )
+ );
return;
}
- if (! mappedByIsValid(attribute.getMapping())) {
+ AttributeMapping mappedByMapping = attribute.getMapping();
+ if ( ! this.mappedByIsValid(mappedByMapping)) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
- new String[] {getMappedBy()},
- this,
- getMappedByTextRange())
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
+ new String[] {this.mappedBy},
+ this,
+ this.getMappedByTextRange()
+ )
+ );
return;
}
- AttributeMapping mappedByMapping = attribute.getMapping();
if ((mappedByMapping instanceof NonOwningMapping)
&& ((NonOwningMapping) mappedByMapping).getMappedBy() != null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_MAPPED_BY_ON_BOTH_SIDES,
- this,
- getMappedByTextRange()
- )
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_MAPPED_BY_ON_BOTH_SIDES,
+ this,
+ this.getMappedByTextRange()
+ )
+ );
}
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java
index 10041beb72..81e2761160 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java
@@ -301,11 +301,10 @@ public abstract class AbstractOrmSingleRelationshipMapping<T extends XmlSingleRe
// ********** validation **********
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
-
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
if (this.connectionProfileIsActive()) {
- this.checkJoinColumns(messages);
+ this.validateJoinColumns(messages);
}
}
@@ -313,33 +312,33 @@ public abstract class AbstractOrmSingleRelationshipMapping<T extends XmlSingleRe
//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 void checkJoinColumns(List<IMessage> messages) {
- if (this.entityOwned() && this.isRelationshipOwner()) {
+ protected void validateJoinColumns(List<IMessage> messages) {
+ if (this.ownerIsEntity() && this.isRelationshipOwner()) {
for (Iterator<OrmJoinColumn> stream = this.joinColumns(); stream.hasNext(); ) {
- this.checkJoinColumn(stream.next(), messages);
+ this.validateJoinColumn(stream.next(), messages);
}
}
}
- protected void checkJoinColumn(OrmJoinColumn joinColumn, List<IMessage> messages) {
- if (this.getTypeMapping().tableNameIsInvalid(joinColumn.getTable())) {
+ protected void validateJoinColumn(OrmJoinColumn joinColumn, List<IMessage> messages) {
+ String tableName = joinColumn.getTable();
+ if (this.getTypeMapping().tableNameIsInvalid(tableName)) {
if (this.getPersistentAttribute().isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_JOIN_COLUMN_UNRESOLVED_TABLE,
- new String[] {this.getName(), joinColumn.getTable(), joinColumn.getName()},
+ new String[] {this.getName(), tableName, joinColumn.getName()},
joinColumn,
joinColumn.getTableTextRange()
)
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.JOIN_COLUMN_UNRESOLVED_TABLE,
- new String[] {joinColumn.getTable(), joinColumn.getName()},
+ new String[] {tableName, joinColumn.getName()},
joinColumn,
joinColumn.getTableTextRange()
)
@@ -359,8 +358,7 @@ public abstract class AbstractOrmSingleRelationshipMapping<T extends XmlSingleRe
joinColumn.getNameTextRange()
)
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
@@ -374,7 +372,7 @@ public abstract class AbstractOrmSingleRelationshipMapping<T extends XmlSingleRe
}
if ( ! joinColumn.isReferencedColumnResolved()) {
- if (getPersistentAttribute().isVirtual()) {
+ if (this.getPersistentAttribute().isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
@@ -384,8 +382,7 @@ public abstract class AbstractOrmSingleRelationshipMapping<T extends XmlSingleRe
joinColumn.getReferencedColumnNameTextRange()
)
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
@@ -400,7 +397,7 @@ public abstract class AbstractOrmSingleRelationshipMapping<T extends XmlSingleRe
}
- // ********** OrmJoinColumn.Owner implementation **********
+ // ********** join column owner adapter **********
public class JoinColumnOwner implements OrmJoinColumn.Owner {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java
index e8632c2135..ec6b282472 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java
@@ -246,7 +246,7 @@ public abstract class AbstractOrmTypeMapping<T extends AbstractXmlTypeMapping> e
JavaResourcePersistentType persistentTypeResource = getJpaProject().getJavaResourcePersistentType(getClass_());
if (persistentTypeResource == null) {
// try to resolve by prepending the global package name
- persistentTypeResource = getJpaProject().getJavaResourcePersistentType(getEntityMappings().getPackage() + "." + getClass_());
+ persistentTypeResource = getJpaProject().getJavaResourcePersistentType(getEntityMappings().getPackage() + '.' + getClass_());
}
return persistentTypeResource;
}
@@ -270,28 +270,28 @@ public abstract class AbstractOrmTypeMapping<T extends AbstractXmlTypeMapping> e
return getJpaFactory().buildJavaPersistentType(this, resourcePersistentType);
}
- public void initialize(T typeMapping) {
- this.typeMapping = typeMapping;
- this.class_ = typeMapping.getClassName();
+ public void initialize(T mapping) {
+ this.typeMapping = mapping;
+ this.class_ = mapping.getClassName();
this.initializeJavaPersistentType();
- this.specifiedMetadataComplete = this.metadataComplete(typeMapping);
+ this.specifiedMetadataComplete = this.metadataComplete(mapping);
this.defaultMetadataComplete = this.defaultMetadataComplete();
- this.specifiedAccess = AccessType.fromXmlResourceModel(typeMapping.getAccess());
+ this.specifiedAccess = AccessType.fromXmlResourceModel(mapping.getAccess());
this.defaultAccess = this.defaultAccess();
}
- public void update(T typeMapping) {
- this.typeMapping = typeMapping;
- this.setClass(typeMapping.getClassName());
+ public void update(T mapping) {
+ this.typeMapping = mapping;
+ this.setClass(mapping.getClassName());
this.updateJavaPersistentType();
- this.setSpecifiedMetadataComplete(this.metadataComplete(typeMapping));
+ this.setSpecifiedMetadataComplete(this.metadataComplete(mapping));
this.setDefaultMetadataComplete(this.defaultMetadataComplete());
- this.setSpecifiedAccess(AccessType.fromXmlResourceModel(typeMapping.getAccess()));
+ this.setSpecifiedAccess(AccessType.fromXmlResourceModel(mapping.getAccess()));
this.setDefaultAccess(this.defaultAccess());
}
- protected Boolean metadataComplete(AbstractXmlTypeMapping typeMapping) {
- return typeMapping.getMetadataComplete();
+ protected Boolean metadataComplete(AbstractXmlTypeMapping mapping) {
+ return mapping.getMetadataComplete();
}
@@ -326,37 +326,33 @@ public abstract class AbstractOrmTypeMapping<T extends AbstractXmlTypeMapping> e
//************************* validation ************************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- addClassMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.validateClass(messages);
}
- protected void addClassMessages(List<IMessage> messages) {
- addUnspecifiedClassMessage(messages);
- addUnresolvedClassMessage(messages);
- }
-
- protected void addUnspecifiedClassMessage(List<IMessage> messages) {
- if (StringTools.stringIsEmpty(getClass_())) {
+
+ protected void validateClass(List<IMessage> messages) {
+ if (StringTools.stringIsEmpty(this.class_)) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENT_TYPE_UNSPECIFIED_CLASS,
this,
- this.getClassTextRange())
+ this.getClassTextRange()
+ )
);
+ return;
}
- }
-
- protected void addUnresolvedClassMessage(List<IMessage> messages) {
- if (! StringTools.stringIsEmpty(getClass_())
- && getJavaPersistentType() == null) {
+
+ if (this.javaPersistentType == null) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENT_TYPE_UNRESOLVED_CLASS,
- new String[] {getClass_()},
+ new String[] {this.class_},
this,
- this.getClassTextRange())
+ this.getClassTextRange()
+ )
);
}
}
@@ -364,4 +360,10 @@ public abstract class AbstractOrmTypeMapping<T extends AbstractXmlTypeMapping> e
public TextRange getValidationTextRange() {
return this.typeMapping.getValidationTextRange();
}
+
+ @Override
+ public void toString(StringBuilder sb) {
+ sb.append(this.getPersistentType().getName());
+ }
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericEntityMappings.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericEntityMappings.java
index eb81c40b52..0cfe2753a2 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericEntityMappings.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericEntityMappings.java
@@ -37,8 +37,7 @@ import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
import org.eclipse.jpt.core.context.orm.OrmXml;
import org.eclipse.jpt.core.context.orm.PersistenceUnitDefaults;
import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata;
-import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
-import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
+import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
import org.eclipse.jpt.core.resource.orm.AbstractXmlTypeMapping;
import org.eclipse.jpt.core.resource.orm.OrmFactory;
import org.eclipse.jpt.core.resource.orm.XmlEmbeddable;
@@ -58,10 +57,12 @@ import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
+/**
+ *
+ */
public class GenericEntityMappings
extends AbstractOrmJpaContextNode
- implements EntityMappings
+ implements EntityMappings, PersistenceUnit.OrmGeneratorHolder, PersistenceUnit.OrmQueryHolder
{
protected XmlEntityMappings xmlEntityMappings;
@@ -805,9 +806,9 @@ public class GenericEntityMappings
}
}
-
- // *************************************************************************
-
+
+ // ********** validation **********
+
public JpaStructureNode getStructureNode(int textOffset) {
for (OrmPersistentType persistentType: CollectionTools.iterable(ormPersistentTypes())) {
if (persistentType.contains(textOffset)) {
@@ -833,71 +834,64 @@ public class GenericEntityMappings
}
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.validateGenerators(messages);
+ this.validateQueries(messages);
+ for (Iterator<OrmPersistentType> stream = this.ormPersistentTypes(); stream.hasNext(); ) {
+ this.validatePersistentType(stream.next(), messages);
+ }
+ }
+
+ protected void validateGenerators(List<IMessage> messages) {
try {
- addGeneratorMessages(messages);
- addQueryMessages(messages);
+ this.getPersistenceUnit().validateGenerators(this, messages);
} catch (Throwable exception) {
- JptCorePlugin.log(exception);
- }
- for (OrmPersistentType ormPersistentType : CollectionTools.iterable(this.ormPersistentTypes())) {
- try {
- ormPersistentType.addToMessages(messages);
- } catch (Throwable exception) {
- JptCorePlugin.log(exception);
- }
+ JptCorePlugin.log(exception); // unlikely...
}
}
-
+
+ /**
+ * Return all the generators, table and sequence.
+ */
@SuppressWarnings("unchecked")
- protected void addGeneratorMessages(List<IMessage> messages) {
- List<Generator> masterList = CollectionTools.list(getPersistenceUnit().allGenerators());
-
- for (Iterator<OrmGenerator> stream = new CompositeIterator<OrmGenerator>(this.tableGenerators(), this.sequenceGenerators()); stream.hasNext() ; ) {
- OrmGenerator 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())
- );
- }
- }
- masterList.add(current);
+ public Iterator<OrmGenerator> generators() {
+ return new CompositeIterator<OrmGenerator>(
+ this.tableGenerators(),
+ this.sequenceGenerators()
+ );
+ }
+
+ protected void validateQueries(List<IMessage> messages) {
+ try {
+ this.getPersistenceUnit().validateQueries(this, messages);
+ } catch (Throwable exception) {
+ JptCorePlugin.log(exception); // unlikely...
}
}
-
+
+ /**
+ * Return all the queries, named and named native.
+ */
@SuppressWarnings("unchecked")
- protected void addQueryMessages(List<IMessage> messages) {
- List<Query> masterList = CollectionTools.list(getPersistenceUnit().allQueries());
-
- for (Iterator<OrmQuery> stream = new CompositeIterator<OrmQuery>(this.namedQueries(), this.namedNativeQueries()); stream.hasNext() ; ) {
- OrmQuery 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())
- );
- }
- }
- masterList.add(current);
+ public Iterator<OrmQuery> queries() {
+ return new CompositeIterator<OrmQuery>(
+ this.namedQueries(),
+ this.namedNativeQueries()
+ );
+ }
+
+ protected void validatePersistentType(OrmPersistentType persistentType, List<IMessage> messages) {
+ try {
+ persistentType.validate(messages);
+ } catch (Throwable exception) {
+ JptCorePlugin.log(exception);
}
}
-
+
+
+ // ********** dispose **********
+
public void dispose() {
for (OrmPersistentType ormPersistentType : CollectionTools.iterable(ormPersistentTypes())) {
ormPersistentType.dispose();
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmAttributeOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmAttributeOverride.java
index a3d3ed12a8..fb14e2094a 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmAttributeOverride.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmAttributeOverride.java
@@ -154,58 +154,61 @@ public class GenericOrmAttributeOverride extends AbstractOrmJpaContextNode
//****************** validation ********************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
if (this.connectionProfileIsActive()) {
- this.addColumnMessages(messages);
+ this.validateColumn(messages);
}
}
- protected void addColumnMessages(List<IMessage> messages) {
- if (this.getTypeMapping().tableNameIsInvalid(this.column.getTable())) {
- if (isVirtual()) {
+ protected void validateColumn(List<IMessage> messages) {
+ String tableName = this.column.getTable();
+ if (this.getTypeMapping().tableNameIsInvalid(tableName)) {
+ if (this.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_TABLE,
- new String[] {getName(), this.column.getTable(), this.column.getName()},
+ new String[] {this.getName(), tableName, this.column.getName()},
this.column,
- this.column.getTableTextRange())
+ this.column.getTableTextRange()
+ )
);
- }
- else {
+ } else {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {this.column.getTable(), this.column.getName()},
- this.column,
- this.column.getTableTextRange())
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
+ new String[] {tableName, this.column.getName()},
+ this.column,
+ this.column.getTableTextRange()
+ )
+ );
}
return;
}
if ( ! this.column.isResolved()) {
- if (isVirtual()) {
+ if (this.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_OVERRIDE_COLUMN_UNRESOLVED_NAME,
- new String[] {getName(), this.column.getName()},
+ new String[] {this.getName(), this.column.getName()},
this.column,
- this.column.getNameTextRange())
+ this.column.getNameTextRange()
+ )
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {this.column.getName()},
- this.column,
- this.column.getNameTextRange())
- );
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
+ new String[] {this.column.getName()},
+ this.column,
+ this.column.getNameTextRange()
+ )
+ );
}
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmBasicMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmBasicMapping.java
index 40c68c9d35..3c74eee5e7 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmBasicMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmBasicMapping.java
@@ -272,57 +272,60 @@ public class GenericOrmBasicMapping extends AbstractOrmAttributeMapping<XmlBasic
// ****************** validation ****************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- if (this.connectionProfileIsActive() && this.entityOwned()) {
- this.addColumnMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ if (this.connectionProfileIsActive() && this.ownerIsEntity()) {
+ this.validateColumn(messages);
}
}
- protected void addColumnMessages(List<IMessage> messages) {
- if (this.getTypeMapping().tableNameIsInvalid(this.column.getTable())) {
- if (getPersistentAttribute().isVirtual()) {
+ protected void validateColumn(List<IMessage> messages) {
+ String tableName = this.column.getTable();
+ if (this.getTypeMapping().tableNameIsInvalid(tableName)) {
+ if (this.getPersistentAttribute().isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_TABLE,
- new String[] {getName(), this.column.getTable(), this.column.getName()},
+ new String[] {this.getName(), tableName, this.column.getName()},
this.column,
- this.column.getTableTextRange())
+ this.column.getTableTextRange()
+ )
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {this.column.getTable(), this.column.getName()},
+ new String[] {tableName, this.column.getName()},
this.column,
- this.column.getTableTextRange())
+ this.column.getTableTextRange()
+ )
);
}
return;
}
if ( ! this.column.isResolved()) {
- if (getPersistentAttribute().isVirtual()) {
+ if (this.getPersistentAttribute().isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME,
- new String[] {getName(), this.column.getName()},
+ new String[] {this.getName(), this.column.getName()},
this.column,
- this.column.getNameTextRange())
+ this.column.getNameTextRange()
+ )
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
new String[] {this.column.getName()},
this.column,
- this.column.getNameTextRange())
+ this.column.getNameTextRange()
+ )
);
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmEntity.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmEntity.java
index 92c70fc33b..59e0bc9e47 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmEntity.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmEntity.java
@@ -22,7 +22,6 @@ 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.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;
@@ -57,6 +56,7 @@ import org.eclipse.jpt.core.context.orm.OrmSecondaryTable;
import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator;
import org.eclipse.jpt.core.context.orm.OrmTable;
import org.eclipse.jpt.core.context.orm.OrmTableGenerator;
+import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
@@ -81,14 +81,14 @@ import org.eclipse.jpt.utility.internal.CollectionTools;
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.TransformationIterator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-public class GenericOrmEntity extends AbstractOrmTypeMapping<XmlEntity> implements OrmEntity
+public class GenericOrmEntity
+ extends AbstractOrmTypeMapping<XmlEntity>
+ implements OrmEntity, PersistenceUnit.OrmGeneratorHolder, PersistenceUnit.OrmQueryHolder
{
protected String specifiedName;
@@ -185,12 +185,12 @@ public class GenericOrmEntity extends AbstractOrmTypeMapping<XmlEntity> implemen
@Override
public String getPrimaryTableName() {
- return getTable().getName();
+ return this.table.getName();
}
@Override
public org.eclipse.jpt.db.Table getPrimaryDbTable() {
- return getTable().getDbTable();
+ return this.table.getDbTable();
}
private static final org.eclipse.jpt.db.Table[] EMPTY_DB_TABLE_ARRAY = new org.eclipse.jpt.db.Table[0];
@@ -224,7 +224,7 @@ public class GenericOrmEntity extends AbstractOrmTypeMapping<XmlEntity> implemen
@Override
public Schema getDbSchema() {
- return getTable().getDbSchema();
+ return this.table.getDbSchema();
}
public JavaEntity getJavaEntity() {
@@ -458,7 +458,7 @@ public class GenericOrmEntity extends AbstractOrmTypeMapping<XmlEntity> implemen
}
public Iterator<Table> associatedTables() {
- return new CompositeIterator<Table>(this.getTable(), this.secondaryTables());
+ return new CompositeIterator<Table>(this.table, this.secondaryTables());
}
public Iterator<Table> associatedTablesIncludingInherited() {
@@ -602,11 +602,19 @@ public class GenericOrmEntity extends AbstractOrmTypeMapping<XmlEntity> implemen
firePropertyChanged(TABLE_GENERATOR_PROPERTY, oldTableGenerator, newTableGenerator);
}
- @SuppressWarnings("unchecked")
- protected Iterator<OrmGenerator> generators() {
- return new CompositeIterator<OrmGenerator>(
- (getSequenceGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getSequenceGenerator()),
- (getTableGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getTableGenerator()));
+ public Iterator<OrmGenerator> generators() {
+ ArrayList<OrmGenerator> generators = new ArrayList<OrmGenerator>();
+ this.addGeneratorsTo(generators);
+ return generators.iterator();
+ }
+
+ protected void addGeneratorsTo(ArrayList<OrmGenerator> generators) {
+ if (this.sequenceGenerator != null) {
+ generators.add(this.sequenceGenerator);
+ }
+ if (this.tableGenerator != null) {
+ generators.add(this.tableGenerator);
+ }
}
public String getDefaultDiscriminatorValue() {
@@ -1032,7 +1040,7 @@ public class GenericOrmEntity extends AbstractOrmTypeMapping<XmlEntity> implemen
}
@SuppressWarnings("unchecked")
- protected Iterator<OrmQuery> queries() {
+ public Iterator<OrmQuery> queries() {
return new CompositeIterator<OrmQuery>(this.namedQueries(), this.namedNativeQueries());
}
@@ -1873,38 +1881,37 @@ public class GenericOrmEntity extends AbstractOrmTypeMapping<XmlEntity> implemen
//********** Validation **************************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- getTable().addToMessages(messages);
- addIdMessages(messages);
- addGeneratorMessages(messages);
- addQueryMessages(messages);
- for (OrmSecondaryTable secondaryTable : CollectionTools.iterable(secondaryTables())) {
- secondaryTable.addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+
+ this.table.validate(messages);
+ this.validateId(messages);
+ this.getPersistenceUnit().validateGenerators(this, messages);
+ this.getPersistenceUnit().validateQueries(this, messages);
+
+ for (Iterator<OrmSecondaryTable> stream = this.secondaryTables(); stream.hasNext(); ) {
+ stream.next().validate(messages);
}
- for (OrmAttributeOverride attributeOverride : CollectionTools.iterable(attributeOverrides())) {
- attributeOverride.addToMessages(messages);
+ for (Iterator<OrmAttributeOverride> stream = this.attributeOverrides(); stream.hasNext(); ) {
+ stream.next().validate(messages);
}
- for (OrmAssociationOverride associationOverride : CollectionTools.iterable(associationOverrides())) {
- associationOverride.addToMessages(messages);
+ for (Iterator<OrmAssociationOverride> stream = this.associationOverrides(); stream.hasNext(); ) {
+ stream.next().validate(messages);
}
}
- protected void addIdMessages(List<IMessage> messages) {
- addNoIdMessage(messages);
- }
-
- protected void addNoIdMessage(List<IMessage> messages) {
- if (entityHasNoId()) {
+ protected void validateId(List<IMessage> messages) {
+ if (this.entityHasNoId()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.ENTITY_NO_ID,
new String[] {this.getName()},
this,
- this.getValidationTextRange())
+ this.getValidationTextRange()
+ )
);
}
}
@@ -1913,54 +1920,6 @@ public class GenericOrmEntity extends AbstractOrmTypeMapping<XmlEntity> implemen
return ! this.entityHasId();
}
- protected void addGeneratorMessages(List<IMessage> messages) {
- List<Generator> masterList = CollectionTools.list(getPersistenceUnit().allGenerators());
-
- for (Iterator<OrmGenerator> stream = this.generators(); stream.hasNext() ; ) {
- OrmGenerator 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())
- );
- }
- }
-
- masterList.add(current);
- }
- }
-
- protected void addQueryMessages(List<IMessage> messages) {
- List<Query> masterList = CollectionTools.list(getPersistenceUnit().allQueries());
-
- for (Iterator<OrmQuery> stream = this.queries(); stream.hasNext() ; ) {
- OrmQuery 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())
- );
- }
- }
-
- masterList.add(current);
- }
- }
-
private boolean entityHasId() {
for (Iterator<PersistentAttribute> stream = this.getPersistentType().allAttributes(); stream.hasNext(); ) {
if (stream.next().isIdAttribute()) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java
index f5c33c3315..59719aabf2 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdMapping.java
@@ -9,11 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.orm;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.Generator;
import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
import org.eclipse.jpt.core.context.orm.OrmColumn;
import org.eclipse.jpt.core.context.orm.OrmColumnMapping;
@@ -24,6 +25,7 @@ import org.eclipse.jpt.core.context.orm.OrmIdMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator;
import org.eclipse.jpt.core.context.orm.OrmTableGenerator;
+import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
import org.eclipse.jpt.core.resource.orm.AbstractXmlTypeMapping;
@@ -34,15 +36,14 @@ import org.eclipse.jpt.core.resource.orm.XmlId;
import org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator;
import org.eclipse.jpt.core.resource.orm.XmlTableGenerator;
import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-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 GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
- implements OrmIdMapping
+/**
+ *
+ */
+public class GenericOrmIdMapping
+ extends AbstractOrmAttributeMapping<XmlId>
+ implements OrmIdMapping, PersistenceUnit.OrmGeneratorHolder, PersistenceUnit.OrmGeneratedValueHolder
{
protected final OrmColumn column;
@@ -128,7 +129,7 @@ public class GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
public OrmGeneratedValue addGeneratedValue() {
if (getGeneratedValue() != null) {
- throw new IllegalStateException("gemeratedValue already exists");
+ throw new IllegalStateException("gemeratedValue already exists"); //$NON-NLS-1$
}
XmlGeneratedValue resourceGeneratedValue = OrmFactory.eINSTANCE.createXmlGeneratedValueImpl();
this.generatedValue = buildGeneratedValue(resourceGeneratedValue);
@@ -139,7 +140,7 @@ public class GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
public void removeGeneratedValue() {
if (getGeneratedValue() == null) {
- throw new IllegalStateException("gemeratedValue does not exist, cannot be removed");
+ throw new IllegalStateException("gemeratedValue does not exist, cannot be removed"); //$NON-NLS-1$
}
OrmGeneratedValue oldGeneratedValue = this.generatedValue;
this.generatedValue = null;
@@ -159,7 +160,7 @@ public class GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
public OrmSequenceGenerator addSequenceGenerator() {
if (getSequenceGenerator() != null) {
- throw new IllegalStateException("sequenceGenerator already exists");
+ throw new IllegalStateException("sequenceGenerator already exists"); //$NON-NLS-1$
}
XmlSequenceGenerator resourceSequenceGenerator = OrmFactory.eINSTANCE.createXmlSequenceGeneratorImpl();
this.sequenceGenerator = buildSequenceGenerator(resourceSequenceGenerator);
@@ -170,7 +171,7 @@ public class GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
public void removeSequenceGenerator() {
if (getSequenceGenerator() == null) {
- throw new IllegalStateException("sequenceGenerator does not exist, cannot be removed");
+ throw new IllegalStateException("sequenceGenerator does not exist, cannot be removed"); //$NON-NLS-1$
}
OrmSequenceGenerator oldSequenceGenerator = this.sequenceGenerator;
this.sequenceGenerator = null;
@@ -190,7 +191,7 @@ public class GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
public OrmTableGenerator addTableGenerator() {
if (getTableGenerator() != null) {
- throw new IllegalStateException("tableGenerator already exists");
+ throw new IllegalStateException("tableGenerator already exists"); //$NON-NLS-1$
}
XmlTableGenerator resourceTableGenerator = OrmFactory.eINSTANCE.createXmlTableGeneratorImpl();
this.tableGenerator = buildTableGenerator(resourceTableGenerator);
@@ -201,7 +202,7 @@ public class GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
public void removeTableGenerator() {
if (getTableGenerator() == null) {
- throw new IllegalStateException("tableGenerator does not exist, cannot be removed");
+ throw new IllegalStateException("tableGenerator does not exist, cannot be removed"); //$NON-NLS-1$
}
OrmTableGenerator oldTableGenerator = this.tableGenerator;
this.tableGenerator = null;
@@ -219,11 +220,19 @@ public class GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
firePropertyChanged(TABLE_GENERATOR_PROPERTY, oldTableGenerator, newTableGenerator);
}
- @SuppressWarnings("unchecked")
- protected Iterator<OrmGenerator> generators() {
- return new CompositeIterator<OrmGenerator>(
- (getSequenceGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getSequenceGenerator()),
- (getTableGenerator() == null) ? EmptyIterator.instance() : new SingleElementIterator(getTableGenerator()));
+ public Iterator<OrmGenerator> generators() {
+ ArrayList<OrmGenerator> generators = new ArrayList<OrmGenerator>();
+ this.addGeneratorsTo(generators);
+ return generators.iterator();
+ }
+
+ protected void addGeneratorsTo(ArrayList<OrmGenerator> generators) {
+ if (this.sequenceGenerator != null) {
+ generators.add(this.sequenceGenerator);
+ }
+ if (this.tableGenerator != null) {
+ generators.add(this.tableGenerator);
+ }
}
@Override
@@ -414,114 +423,67 @@ public class GenericOrmIdMapping extends AbstractOrmAttributeMapping<XmlId>
// ****************** validation ****************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
- if (this.connectionProfileIsActive() && this.entityOwned()) {
- this.addColumnMessages(messages);
+ if (this.connectionProfileIsActive() && this.ownerIsEntity()) {
+ this.validateColumn(messages);
}
- this.addGeneratedValueMessages(messages);
- this.addGeneratorMessages(messages);
+ this.getPersistenceUnit().validateGeneratedValue(this, messages);
+ this.getPersistenceUnit().validateGenerators(this, messages);
}
- protected void addColumnMessages(List<IMessage> messages) {
- if (this.getTypeMapping().tableNameIsInvalid(this.column.getTable())) {
- if (getPersistentAttribute().isVirtual()) {
+ protected void validateColumn(List<IMessage> messages) {
+ OrmPersistentAttribute pa = this.getPersistentAttribute();
+ String tableName = this.column.getTable();
+ if (this.getTypeMapping().tableNameIsInvalid(tableName)) {
+ if (pa.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_TABLE,
- new String[] {getPersistentAttribute().getName(), this.column.getTable(), this.column.getName()},
+ new String[] {pa.getName(), tableName, this.column.getName()},
this.column,
- this.column.getTableTextRange())
+ this.column.getTableTextRange()
+ )
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {this.column.getTable(), this.column.getName()},
+ new String[] {tableName, this.column.getName()},
this.column,
- this.column.getTableTextRange())
+ this.column.getTableTextRange()
+ )
);
}
return;
}
if ( ! this.column.isResolved()) {
- if (getPersistentAttribute().isVirtual()) {
+ if (pa.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME,
- new String[] {getPersistentAttribute().getName(), this.column.getName()},
+ new String[] {pa.getName(), this.column.getName()},
this.column,
- this.column.getNameTextRange())
+ this.column.getNameTextRange()
+ )
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
new String[] {this.column.getName()},
this.column,
- this.column.getNameTextRange())
+ this.column.getNameTextRange()
+ )
);
}
}
}
- protected void addGeneratedValueMessages(List<IMessage> messages) {
- if (this.generatedValue == null) {
- return;
- }
- String generatorName = this.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,
- this.generatedValue.getGeneratorTextRange())
- );
- }
-
- protected void addGeneratorMessages(List<IMessage> messages) {
- List<Generator> masterList = CollectionTools.list(getPersistenceUnit().allGenerators());
-
- for (Iterator<OrmGenerator> stream = this.generators(); stream.hasNext() ; ) {
- OrmGenerator current = stream.next();
- if (current.isVirtual()) {
- return;
- }
- 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())
- );
- }
- }
-
- masterList.add(current);
- }
- }
-} \ No newline at end of file
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinColumn.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinColumn.java
index abfd559e85..311c64f0ef 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinColumn.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinColumn.java
@@ -129,43 +129,29 @@ public class GenericOrmJoinColumn extends AbstractOrmBaseColumn<XmlJoinColumn> i
protected void initialize(XmlJoinColumn xjc) {
this.resourceJoinColumn = xjc;
super.initialize(xjc);
- this.specifiedReferencedColumnName = specifiedReferencedColumnName(xjc);
- this.defaultReferencedColumnName = defaultReferencedColumnName();
+ this.specifiedReferencedColumnName = buildSpecifiedReferencedColumnName(xjc);
+ this.defaultReferencedColumnName = buildDefaultReferencedColumnName();
}
@Override
public void update(XmlJoinColumn xjc) {
this.resourceJoinColumn = xjc;
super.update(xjc);
- this.setSpecifiedReferencedColumnName_(specifiedReferencedColumnName(xjc));
- this.setDefaultReferencedColumnName(defaultReferencedColumnName());
+ this.setSpecifiedReferencedColumnName_(buildSpecifiedReferencedColumnName(xjc));
+ this.setDefaultReferencedColumnName(buildDefaultReferencedColumnName());
}
- protected String specifiedReferencedColumnName(XmlJoinColumn xjc) {
- return xjc == null ? null : xjc.getReferencedColumnName();
+ protected String buildSpecifiedReferencedColumnName(XmlJoinColumn xjc) {
+ return (xjc == null) ? null : xjc.getReferencedColumnName();
}
@Override
protected String buildDefaultName() {
- 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 (!relationshipMapping.isRelationshipOwner()) {
- return null;
- }
- return MappingTools.buildJoinColumnDefaultReferencedColumnName(this);
+ protected String buildDefaultReferencedColumnName() {
+ return MappingTools.buildJoinColumnDefaultReferencedColumnName(this.getOwner());
}
@Override
@@ -184,30 +170,34 @@ public class GenericOrmJoinColumn extends AbstractOrmBaseColumn<XmlJoinColumn> i
//******************* validation ***********************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
-
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
if ( ! this.isResolved()) {
- OrmRelationshipMapping mapping = (OrmRelationshipMapping) this.getOwner().getRelationshipMapping();
- if (mapping.getPersistentAttribute().isVirtual()) {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
+ messages.add(this.buildUnresolvedMessage());
+ }
+ }
+
+ protected IMessage buildUnresolvedMessage() {
+ OrmRelationshipMapping mapping = (OrmRelationshipMapping) this.getOwner().getRelationshipMapping();
+ return mapping.getPersistentAttribute().isVirtual() ? this.buildVirtualUnresolvedMessage(mapping) : this.buildNonVirtualUnresolvedMessage();
+ }
+
+ protected IMessage buildVirtualUnresolvedMessage(OrmRelationshipMapping mapping) {
+ return this.buildMessage(
JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME,
- new String[] {mapping.getName(), this.getName()},
- this,
- this.getNameTextRange())
- );
- } else {
- messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
+ new String[] {mapping.getName(), this.getName()}
+ );
+ }
+
+ protected IMessage buildNonVirtualUnresolvedMessage() {
+ return this.buildMessage(
JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {this.getName()},
- this,
- this.getNameTextRange())
- );
- }
- }
+ new String[] {this.getName()}
+ );
}
+
+ protected IMessage buildMessage(String msgID, String[] parms) {
+ return DefaultJpaValidationMessages.buildMessage(IMessage.HIGH_SEVERITY, msgID, parms, this, this.getNameTextRange());
+ }
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinTable.java
index 17dbde1582..765edd785a 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinTable.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmJoinTable.java
@@ -470,14 +470,14 @@ public class GenericOrmJoinTable
// ************************** validation ***********************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
if (this.connectionProfileIsActive()) {
- this.checkDatabase(messages);
+ this.validateAgainstDatabase(messages);
}
}
- protected void checkDatabase(List<IMessage> messages) {
+ protected void validateAgainstDatabase(List<IMessage> messages) {
OrmRelationshipMapping mapping = this.getRelationshipMapping();
if ( ! this.hasResolvedCatalog()) {
@@ -488,7 +488,8 @@ public class GenericOrmJoinTable
JpaValidationMessages.VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_CATALOG,
new String[] {mapping.getName(), this.getCatalog(), this.getName()},
this,
- this.getCatalogTextRange())
+ this.getCatalogTextRange()
+ )
);
} else {
@@ -498,7 +499,8 @@ public class GenericOrmJoinTable
JpaValidationMessages.JOIN_TABLE_UNRESOLVED_CATALOG,
new String[] {this.getCatalog(), this.getName()},
this,
- this.getCatalogTextRange())
+ this.getCatalogTextRange()
+ )
);
}
return;
@@ -512,9 +514,9 @@ public class GenericOrmJoinTable
JpaValidationMessages.VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_SCHEMA,
new String[] {mapping.getName(), this.getSchema(), this.getName()},
this,
- this.getSchemaTextRange())
+ this.getSchemaTextRange()
+ )
);
-
} else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
@@ -522,7 +524,8 @@ public class GenericOrmJoinTable
JpaValidationMessages.JOIN_TABLE_UNRESOLVED_SCHEMA,
new String[] {this.getSchema(), this.getName()},
this,
- this.getSchemaTextRange())
+ this.getSchemaTextRange()
+ )
);
}
return;
@@ -536,10 +539,10 @@ public class GenericOrmJoinTable
JpaValidationMessages.VIRTUAL_ATTRIBUTE_JOIN_TABLE_UNRESOLVED_NAME,
new String[] {mapping.getName(), this.getName()},
this,
- this.getNameTextRange())
+ this.getNameTextRange()
+ )
);
- }
- else {
+ } else {
String attributeName = mapping.getPersistentAttribute().getName();
messages.add(
DefaultJpaValidationMessages.buildMessage(
@@ -547,19 +550,20 @@ public class GenericOrmJoinTable
JpaValidationMessages.JOIN_TABLE_CANNOT_BE_DETERMINED,
new String[] {attributeName},
this,
- this.getNameTextRange())
+ this.getNameTextRange()
+ )
);
}
return;
}
- this.checkJoinColumns(this.joinColumns(), messages);
- this.checkJoinColumns(this.inverseJoinColumns(), messages);
+ this.validateJoinColumns(this.joinColumns(), messages);
+ this.validateJoinColumns(this.inverseJoinColumns(), messages);
}
- protected void checkJoinColumns(Iterator<OrmJoinColumn> joinColumns, List<IMessage> messages) {
+ protected void validateJoinColumns(Iterator<OrmJoinColumn> joinColumns, List<IMessage> messages) {
while (joinColumns.hasNext()) {
- joinColumns.next().addToMessages(messages);
+ joinColumns.next().validate(messages);
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmOneToOneMapping.java
index 6aa760e9f4..462ee8bd9a 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmOneToOneMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmOneToOneMapping.java
@@ -241,57 +241,55 @@ public class GenericOrmOneToOneMapping
// ********** Validation **********
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
-
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
if (this.mappedBy != null) {
- this.checkMappedBy(messages);
+ this.validateMappedBy(messages);
}
}
@Override
- protected void checkJoinColumns(List<IMessage> messages) {
+ protected void validateJoinColumns(List<IMessage> messages) {
if (this.primaryKeyJoinColumns.isEmpty() || this.containsSpecifiedJoinColumns()) {
- super.checkJoinColumns(messages);
+ super.validateJoinColumns(messages);
}
}
- protected void checkMappedBy(List<IMessage> messages) {
+ protected void validateMappedBy(List<IMessage> messages) {
Entity targetEntity = this.getResolvedTargetEntity();
if (targetEntity == null) {
- // already have validation messages for that
- return;
+ return; // validated elsewhere
}
PersistentAttribute attribute = targetEntity.getPersistentType().resolveAttribute(this.mappedBy);
if (attribute == null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
- new String[] {this.mappedBy},
- this,
- this.getMappedByTextRange()
- )
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_UNRESOLVED_MAPPED_BY,
+ new String[] {this.mappedBy},
+ this,
+ this.getMappedByTextRange()
+ )
+ );
return;
}
- if ( ! this.mappedByIsValid(attribute.getMapping())) {
+ AttributeMapping mappedByMapping = attribute.getMapping();
+ if ( ! this.mappedByIsValid(mappedByMapping)) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
- new String[] {this.mappedBy},
- this,
- this.getMappedByTextRange()
- )
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.MAPPING_INVALID_MAPPED_BY,
+ new String[] {this.mappedBy},
+ this,
+ this.getMappedByTextRange()
+ )
+ );
return;
}
- AttributeMapping mappedByMapping = attribute.getMapping();
if ((mappedByMapping instanceof NonOwningMapping)
&& ((NonOwningMapping) mappedByMapping).getMappedBy() != null) {
messages.add(
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentAttribute.java
index 98d1a5c909..a6fb2240da 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentAttribute.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentAttribute.java
@@ -333,9 +333,9 @@ public class GenericOrmPersistentAttribute extends AbstractOrmJpaContextNode
}
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- getMapping().addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.attributeMapping.validate(messages);
}
public TextRange getValidationTextRange() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentType.java
index a62e7d4c56..328999fc70 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentType.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmPersistentType.java
@@ -15,6 +15,7 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
+
import org.eclipse.jpt.core.JpaStructureNode;
import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.MappingKeys;
@@ -71,8 +72,12 @@ 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 GenericOrmPersistentType extends AbstractOrmJpaContextNode implements OrmPersistentType
+/**
+ *
+ */
+public class GenericOrmPersistentType
+ extends AbstractOrmJpaContextNode
+ implements OrmPersistentType
{
protected final List<OrmPersistentAttribute> specifiedPersistentAttributes;
@@ -104,7 +109,7 @@ public class GenericOrmPersistentType extends AbstractOrmJpaContextNode implemen
if (className.equals(fullyQualifiedTypeName)) {
return true;
}
- if ((getEntityMappings().getPackage() + "." + className).equals(fullyQualifiedTypeName)) {
+ if ((getEntityMappings().getPackage() + '.' + className).equals(fullyQualifiedTypeName)) {
return true;
}
return false;
@@ -212,7 +217,7 @@ public class GenericOrmPersistentType extends AbstractOrmJpaContextNode implemen
public void makePersistentAttributeVirtual(OrmPersistentAttribute ormPersistentAttribute) {
if (ormPersistentAttribute.isVirtual()) {
- throw new IllegalStateException("Attribute is already virtual");
+ throw new IllegalStateException("Attribute is already virtual"); //$NON-NLS-1$
}
JavaPersistentAttribute javaPersistentAttribute = ormPersistentAttribute.getMapping().getJavaPersistentAttribute();
OrmPersistentAttribute virtualPersistentAttribute = null;
@@ -232,10 +237,10 @@ public class GenericOrmPersistentType extends AbstractOrmJpaContextNode implemen
public void makePersistentAttributeSpecified(OrmPersistentAttribute ormPersistentAttribute, String mappingKey) {
if (!ormPersistentAttribute.isVirtual()) {
- throw new IllegalStateException("Attribute is already specified");
+ throw new IllegalStateException("Attribute is already specified"); //$NON-NLS-1$
}
if (mappingKey == MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY) {
- throw new IllegalStateException("Use makePersistentAttributeSpecified(OrmPersistentAttribute, String) instead and specify a mapping type");
+ throw new IllegalStateException("Use makePersistentAttributeSpecified(OrmPersistentAttribute, String) instead and specify a mapping type"); //$NON-NLS-1$
}
OrmPersistentAttribute newPersistentAttribute = getJpaFactory().buildOrmPersistentAttribute(this, mappingKey);
@@ -876,21 +881,31 @@ public class GenericOrmPersistentType extends AbstractOrmJpaContextNode implemen
//******************** validation **********************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
-
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.validateMapping(messages);
+ this.validateAttributes(messages);
+ }
+
+ protected void validateMapping(List<IMessage> messages) {
try {
- getMapping().addToMessages(messages);
+ this.ormTypeMapping.validate(messages);
} catch(Throwable t) {
JptCorePlugin.log(t);
}
-
- for (OrmPersistentAttribute persistentAttribute : CollectionTools.iterable(this.attributes())) {
- try {
- persistentAttribute.addToMessages(messages);
- } catch(Throwable t) {
- JptCorePlugin.log(t);
- }
+ }
+
+ protected void validateAttributes(List<IMessage> messages) {
+ for (Iterator<OrmPersistentAttribute> stream = this.attributes(); stream.hasNext(); ) {
+ this.validateAttribute(stream.next(), messages);
+ }
+ }
+
+ protected void validateAttribute(OrmPersistentAttribute attribute, List<IMessage> messages) {
+ try {
+ attribute.validate(messages);
+ } catch(Throwable t) {
+ JptCorePlugin.log(t);
}
}
@@ -903,4 +918,10 @@ public class GenericOrmPersistentType extends AbstractOrmJpaContextNode implemen
getJavaPersistentType().dispose();
}
}
+
+ @Override
+ public void toString(StringBuilder sb) {
+ sb.append(this.getName());
+ }
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmSecondaryTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmSecondaryTable.java
index 5c649153a5..7e39370f9b 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmSecondaryTable.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmSecondaryTable.java
@@ -283,55 +283,64 @@ public class GenericOrmSecondaryTable
return this.getContextDefaultCatalog();
}
+
+ // ********** validation **********
+
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
if (this.connectionProfileIsActive()) {
- this.checkDatabase(messages);
+ this.validateAgainstDatabase(messages);
}
for (Iterator<OrmPrimaryKeyJoinColumn> stream = this.primaryKeyJoinColumns(); stream.hasNext(); ) {
- stream.next().addToMessages(messages);
+ stream.next().validate(messages);
}
}
- protected void checkDatabase(List<IMessage> messages) {
+ protected void validateAgainstDatabase(List<IMessage> messages) {
if ( ! this.hasResolvedCatalog()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_CATALOG,
- new String[] {this.getCatalog(), this.getName()},
- this,
- this.getCatalogTextRange())
- );
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_CATALOG,
+ new String[] {this.getCatalog(), this.getName()},
+ this,
+ this.getCatalogTextRange()
+ )
+ );
return;
}
if ( ! this.hasResolvedSchema()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_SCHEMA,
- new String[] {this.getSchema(), this.getName()},
- this,
- this.getSchemaTextRange())
- );
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_SCHEMA,
+ new String[] {this.getSchema(), this.getName()},
+ this,
+ this.getSchemaTextRange()
+ )
+ );
return;
}
if ( ! this.isResolved()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_NAME,
- new String[] {this.getName()},
- this,
- this.getNameTextRange())
- );
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.SECONDARY_TABLE_UNRESOLVED_NAME,
+ new String[] {this.getName()},
+ this,
+ this.getNameTextRange()
+ )
+ );
return;
}
}
+
+ // ********** pk join column owner adapter **********
+
class PrimaryKeyJoinColumnOwner implements OrmBaseJoinColumn.Owner
{
@@ -366,5 +375,7 @@ public class GenericOrmSecondaryTable
// TODO Auto-generated method stub
return null;
}
+
}
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTable.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTable.java
index 142f733a86..5bfd2bedc3 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTable.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmTable.java
@@ -86,47 +86,50 @@ public class GenericOrmTable
//*********** Validation *******************************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
if (this.connectionProfileIsActive()) {
- this.checkDatabase(messages);
+ this.validateAgainstDatabase(messages);
}
}
- protected void checkDatabase(List<IMessage> messages) {
+ protected void validateAgainstDatabase(List<IMessage> messages) {
if ( ! this.hasResolvedCatalog()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.TABLE_UNRESOLVED_CATALOG,
- new String[] {this.getCatalog(), this.getName()},
- this,
- this.getCatalogTextRange())
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.TABLE_UNRESOLVED_CATALOG,
+ new String[] {this.getCatalog(), this.getName()},
+ this,
+ this.getCatalogTextRange()
+ )
+ );
return;
}
if ( ! this.hasResolvedSchema()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.TABLE_UNRESOLVED_SCHEMA,
- new String[] {this.getSchema(), this.getName()},
- this,
- this.getSchemaTextRange())
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.TABLE_UNRESOLVED_SCHEMA,
+ new String[] {this.getSchema(), this.getName()},
+ this,
+ this.getSchemaTextRange()
+ )
+ );
return;
}
if ( ! this.isResolved()) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.TABLE_UNRESOLVED_NAME,
- new String[] {this.getName()},
- this,
- this.getNameTextRange())
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.TABLE_UNRESOLVED_NAME,
+ new String[] {this.getName()},
+ this,
+ this.getNameTextRange()
+ )
+ );
return;
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmVersionMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmVersionMapping.java
index 5d518ca956..b5e55db157 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmVersionMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmVersionMapping.java
@@ -183,60 +183,65 @@ public class GenericOrmVersionMapping extends AbstractOrmAttributeMapping<XmlVer
// ****************** validation ****************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
- if (this.connectionProfileIsActive() && this.entityOwned()) {
- this.addColumnMessages(messages);
+ if (this.connectionProfileIsActive() && this.ownerIsEntity()) {
+ this.validateColumn(messages);
}
}
- protected void addColumnMessages(List<IMessage> messages) {
- if (this.getTypeMapping().tableNameIsInvalid(this.column.getTable())) {
- if (getPersistentAttribute().isVirtual()) {
+ protected void validateColumn(List<IMessage> messages) {
+ OrmPersistentAttribute pa = this.getPersistentAttribute();
+ String tableName = this.column.getTable();
+ if (this.getTypeMapping().tableNameIsInvalid(tableName)) {
+ if (pa.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_TABLE,
- new String[] {getPersistentAttribute().getName(), this.column.getTable(), this.column.getName()},
+ new String[] {pa.getName(), tableName, this.column.getName()},
this.column,
- this.column.getTableTextRange())
+ this.column.getTableTextRange()
+ )
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.COLUMN_UNRESOLVED_TABLE,
- new String[] {this.column.getTable(), this.column.getName()},
+ new String[] {tableName, this.column.getName()},
this.column,
- this.column.getTableTextRange())
+ this.column.getTableTextRange()
+ )
);
}
return;
}
if ( ! this.column.isResolved()) {
- if (getPersistentAttribute().isVirtual()) {
+ if (pa.isVirtual()) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.VIRTUAL_ATTRIBUTE_COLUMN_UNRESOLVED_NAME,
- new String[] {getPersistentAttribute().getName(), this.column.getName()},
+ new String[] {pa.getName(), this.column.getName()},
this.column,
- this.column.getNameTextRange())
+ this.column.getNameTextRange()
+ )
);
- }
- else {
+ } else {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.COLUMN_UNRESOLVED_NAME,
- new String[] {this.column.getName()},
+ new String[] {this.column.getName()},
this.column,
- this.column.getNameTextRange())
+ this.column.getNameTextRange()
+ )
);
}
}
}
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/OrmXmlImpl.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/OrmXmlImpl.java
index 28e5218d82..56a3cf3907 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/OrmXmlImpl.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/OrmXmlImpl.java
@@ -1,13 +1,12 @@
/*******************************************************************************
- * Copyright (c) 2007 Oracle.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
- *******************************************************************************/
+ * 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.orm;
import java.util.List;
@@ -24,7 +23,11 @@ import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-public class OrmXmlImpl extends AbstractOrmJpaContextNode
+/**
+ *
+ */
+public class OrmXmlImpl
+ extends AbstractOrmJpaContextNode
implements OrmXml
{
protected OrmResource ormResource;
@@ -48,10 +51,7 @@ public class OrmXmlImpl extends AbstractOrmJpaContextNode
}
public OrmPersistentType getPersistentType(String fullyQualifiedTypeName) {
- if (getEntityMappings() != null) {
- return getEntityMappings().getPersistentType(fullyQualifiedTypeName);
- }
- return null;
+ return (this.entityMappings == null) ? null : this.entityMappings.getPersistentType(fullyQualifiedTypeName);
}
@Override
@@ -99,37 +99,36 @@ public class OrmXmlImpl extends AbstractOrmJpaContextNode
}
public PersistenceUnitDefaults getPersistenceUnitDefaults() {
- if (getEntityMappings() != null) {
- return getEntityMappings().getPersistenceUnitDefaults();
- }
- return null;
+ return (this.entityMappings == null) ? null : this.entityMappings.getPersistenceUnitDefaults();
}
+
+
// **************** updating ***********************************************
- protected void initialize(OrmResource ormResource) {
- this.ormResource = ormResource;
- if (ormResource.getEntityMappings() != null) {
- this.entityMappings = buildEntityMappings(ormResource.getEntityMappings());
+ protected void initialize(OrmResource resource) {
+ this.ormResource = resource;
+ XmlEntityMappings xmlEntityMappings = resource.getEntityMappings();
+ if (xmlEntityMappings != null) {
+ this.entityMappings = buildEntityMappings(xmlEntityMappings);
}
}
- public void update(OrmResource ormResource) {
- this.ormResource = ormResource;
- if (ormResource.getEntityMappings() != null) {
+ public void update(OrmResource resource) {
+ this.ormResource = resource;
+ XmlEntityMappings xmlEntityMappings = resource.getEntityMappings();
+ if (xmlEntityMappings != null) {
if (this.entityMappings != null) {
- getJpaFile(this.ormResource.getResourceModel()).addRootStructureNode(this.ormResource, this.entityMappings);
- this.entityMappings.update(ormResource.getEntityMappings());
+ this.getJpaFile(this.ormResource.getResourceModel()).addRootStructureNode(this.ormResource, this.entityMappings);
+ this.entityMappings.update(xmlEntityMappings);
+ } else {
+ this.setEntityMappings(this.buildEntityMappings(xmlEntityMappings));
}
- else {
- setEntityMappings(buildEntityMappings(ormResource.getEntityMappings()));
- }
- }
- else {
- if (getEntityMappings() != null) {
- getJpaFile(this.ormResource.getResourceModel()).removeRootStructureNode(this.ormResource);
- getEntityMappings().dispose();
+ } else {
+ if (this.entityMappings != null) {
+ this.getJpaFile(this.ormResource.getResourceModel()).removeRootStructureNode(this.ormResource);
+ this.entityMappings.dispose();
}
- setEntityMappings(null);
+ this.setEntityMappings(null);
}
}
@@ -158,16 +157,17 @@ public class OrmXmlImpl extends AbstractOrmJpaContextNode
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- if (getEntityMappings() != null) {
- getEntityMappings().addToMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ if (this.entityMappings != null) {
+ this.entityMappings.validate(messages);
}
}
public void dispose() {
- if (getEntityMappings() != null) {
- getEntityMappings().dispose();
+ if (this.entityMappings != null) {
+ this.entityMappings.dispose();
}
}
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceJpaContextNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceJpaContextNode.java
index 0896417bdd..1c0c376663 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceJpaContextNode.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceJpaContextNode.java
@@ -15,22 +15,26 @@ import org.eclipse.jpt.core.context.persistence.PersistenceJpaContextNode;
import org.eclipse.jpt.core.internal.context.AbstractJpaContextNode;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-public abstract class AbstractPersistenceJpaContextNode extends AbstractJpaContextNode implements PersistenceJpaContextNode
+public abstract class AbstractPersistenceJpaContextNode
+ extends AbstractJpaContextNode
+ implements PersistenceJpaContextNode
{
+
// ********** constructor **********
protected AbstractPersistenceJpaContextNode(JpaContextNode parent) {
super(parent);
}
+
// ********** validation **********
/**
* All subclass implementations {@link #addToMessages(List<IMessage>)}
* should be preceded by a "super" call to this method
*/
- public void addToMessages(List<IMessage> messages) {
-
+ public void validate(List<IMessage> messages) {
+ // do nothing by default
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericClassRef.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericClassRef.java
index 47698fe05a..88f7f19bf9 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericClassRef.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericClassRef.java
@@ -11,6 +11,7 @@
package org.eclipse.jpt.core.internal.context.persistence;
import java.util.List;
+
import org.eclipse.jpt.core.JpaStructureNode;
import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
@@ -155,63 +156,59 @@ public class GenericClassRef extends AbstractPersistenceJpaContextNode
protected JavaPersistentType buildJavaPersistentType(JavaResourcePersistentType jrpt) {
return getJpaFactory().buildJavaPersistentType(this, jrpt);
}
-
-
- // *************************************************************************
- // ************************* validation *********************************
+
+ // ********** validation **********
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- addUnspecifiedClassMessage(messages);
- addUnresolvedClassMessage(messages);
- addJavaPersistentTypeMessages(messages);
- }
-
- protected void addUnspecifiedClassMessage(List<IMessage> messages) {
- if (StringTools.stringIsEmpty(getClassName())) {
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ if (StringTools.stringIsEmpty(this.className)) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENCE_UNIT_UNSPECIFIED_CLASS,
- this, getValidationTextRange())
+ this,
+ this.getValidationTextRange()
+ )
);
+ return;
}
- }
-
- protected void addUnresolvedClassMessage(List<IMessage> messages) {
- if (! StringTools.stringIsEmpty(getClassName()) && getJavaPersistentType() == null) {
+ if (this.javaPersistentType == null) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENCE_UNIT_NONEXISTENT_CLASS,
- new String[] {getClassName()},
+ new String[] {this.className},
this,
- this.getValidationTextRange())
+ this.getValidationTextRange()
+ )
);
+ return;
}
- }
-
- protected void addJavaPersistentTypeMessages(List<IMessage> messages) {
- if (getJavaPersistentType() != null) { //class might not resolve to a java type
- MappingFileRef mappingFileRef = getMappingFileContaining(getClassName());
- if (mappingFileRef != null) {
- messages.add(DefaultJpaValidationMessages.buildMessage(
+ MappingFileRef mappingFileRef = this.getMappingFileContaining(this.className);
+ if (mappingFileRef != null) {
+ messages.add(
+ DefaultJpaValidationMessages.buildMessage(
IMessage.LOW_SEVERITY,
JpaValidationMessages.PERSISTENCE_UNIT_REDUNDANT_CLASS,
- new String[] { this.getClassName(), mappingFileRef.getFileName()},
+ new String[] {this.className, mappingFileRef.getFileName()},
this,
- this.getValidationTextRange()));
- }
- else {
- try {
- //bug 190062 - only add java validation messages if this class is not listed in a mapping file
- getJavaPersistentType().addToMessages(messages);
- } catch (Throwable t) {
- JptCorePlugin.log(t);
- }
- }
+ this.getValidationTextRange()
+ )
+ );
+ return;
+ }
+ // 190062 only add Java validation messages if this class is not listed
+ // in a mapping file
+ this.validateJavaPersistentType(messages);
+ }
+
+ protected void validateJavaPersistentType(List<IMessage> messages) {
+ try {
+ this.javaPersistentType.validate(messages);
+ } catch (Throwable t) {
+ JptCorePlugin.log(t);
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericMappingFileRef.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericMappingFileRef.java
index 5cf0ddf4b1..07e7728dfd 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericMappingFileRef.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericMappingFileRef.java
@@ -200,69 +200,64 @@ public class GenericMappingFileRef extends AbstractPersistenceJpaContextNode
}
return this.xmlMappingFileRef.getValidationTextRange();
}
-
- //**************** Validation *************************
-
+
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- this.addUnspecifiedMappingFileMessage(messages);
- this.addUnresolvedMappingFileMessage(messages);
- this.addInvalidMappingFileContentMessage(messages);
- if (getOrmXml() != null) {
- getOrmXml().addToMessages(messages);
+ public void toString(StringBuilder sb) {
+ super.toString(sb);
+ sb.append(this.getFileName());
+ }
+
+ public void dispose() {
+ if (this.getOrmXml() != null) {
+ this.getOrmXml().dispose();
}
}
-
-
- protected void addUnspecifiedMappingFileMessage(List<IMessage> messages) {
- if (StringTools.stringIsEmpty(getFileName())) {
+
+
+ //**************** Validation *************************
+
+ @Override
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+
+ if (StringTools.stringIsEmpty(this.fileName)) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENCE_UNIT_UNSPECIFIED_MAPPING_FILE,
- this,
- getValidationTextRange())
+ this,
+ this.getValidationTextRange()
+ )
);
+ return;
}
- }
-
- protected void addUnresolvedMappingFileMessage(List<IMessage> messages) {
- if (!StringTools.stringIsEmpty(getFileName()) && getOrmXml() == null) {
+
+ if (this.ormXml == null) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENCE_UNIT_NONEXISTENT_MAPPING_FILE,
- new String[] {getFileName()},
- this,
- getValidationTextRange())
+ new String[] {this.fileName},
+ this,
+ this.getValidationTextRange()
+ )
);
+ return;
}
- }
-
- protected void addInvalidMappingFileContentMessage(List<IMessage> messages) {
- if (getOrmXml() != null
- && getOrmXml().getEntityMappings() == null) {
+
+ if (this.ormXml.getEntityMappings() == null) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENCE_UNIT_INVALID_MAPPING_FILE,
- new String[] {getFileName()},
+ new String[] {this.fileName},
this,
- getValidationTextRange())
+ this.getValidationTextRange()
+ )
);
}
- }
- @Override
- public void toString(StringBuilder sb) {
- super.toString(sb);
- sb.append(getFileName());
- }
-
- public void dispose() {
- if (getOrmXml() != null) {
- getOrmXml().dispose();
- }
+ this.ormXml.validate(messages);
}
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java
index 9da975a37c..26fc0a6c8f 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistence.java
@@ -51,16 +51,15 @@ public class GenericPersistence extends AbstractPersistenceJpaContextNode
// **************** persistence units **************************************
public ListIterator<PersistenceUnit> persistenceUnits() {
- if (persistenceUnit == null) {
- return EmptyListIterator.instance();
- }
- else {
- return new SingleElementListIterator<PersistenceUnit>(persistenceUnit);
- }
+ return (this.persistenceUnit == null) ? EmptyListIterator.<PersistenceUnit>instance() : this.persistenceUnits_();
+ }
+
+ protected ListIterator<PersistenceUnit> persistenceUnits_() {
+ return new SingleElementListIterator<PersistenceUnit>(this.persistenceUnit);
}
public int persistenceUnitsSize() {
- return (persistenceUnit == null) ? 0 : 1;
+ return (this.persistenceUnit == null) ? 0 : 1;
}
public PersistenceUnit addPersistenceUnit() {
@@ -68,54 +67,57 @@ public class GenericPersistence extends AbstractPersistenceJpaContextNode
}
public PersistenceUnit addPersistenceUnit(int index) {
- if (index > 0 || persistenceUnit != null) {
- throw new IllegalStateException("This implementation does not support multiple persistence units.");
+ if (index > 0 || this.persistenceUnit != null) {
+ throw new IllegalStateException("This implementation does not support multiple persistence units."); //$NON-NLS-1$
}
XmlPersistenceUnit xmlPersistenceUnit = PersistenceFactory.eINSTANCE.createXmlPersistenceUnit();
- persistenceUnit = createPersistenceUnit(xmlPersistenceUnit);
- xmlPersistence.getPersistenceUnits().add(xmlPersistenceUnit);
- fireItemAdded(PERSISTENCE_UNITS_LIST, index, persistenceUnit);
- return persistenceUnit;
+ this.persistenceUnit = createPersistenceUnit(xmlPersistenceUnit);
+ this.xmlPersistence.getPersistenceUnits().add(xmlPersistenceUnit);
+ fireItemAdded(PERSISTENCE_UNITS_LIST, index, this.persistenceUnit);
+ return this.persistenceUnit;
}
- public void removePersistenceUnit(PersistenceUnit persistenceUnit) {
+ public void removePersistenceUnit(PersistenceUnit pu) {
+ if (pu != this.persistenceUnit) {
+ throw new IllegalArgumentException("Invalid persistence unit: " + pu); //$NON-NLS-1$
+ }
removePersistenceUnit(0);
}
public void removePersistenceUnit(int index) {
- if (index > 0 ) {
- throw new IllegalArgumentException(new Integer(index).toString());
+ if (index > 0 || this.persistenceUnit == null) {
+ throw new IndexOutOfBoundsException("index: " + index); //$NON-NLS-1$
}
- PersistenceUnit oldPersistenceUnit = persistenceUnit;
- persistenceUnit.dispose();
- persistenceUnit = null;
- xmlPersistence.getPersistenceUnits().remove(index);
+ PersistenceUnit oldPersistenceUnit = this.persistenceUnit;
+ this.persistenceUnit.dispose();
+ this.persistenceUnit = null;
+ this.xmlPersistence.getPersistenceUnits().remove(index);
fireItemRemoved(PERSISTENCE_UNITS_LIST, index, oldPersistenceUnit);
}
protected void addPersistenceUnit_(PersistenceUnit newPersistenceUnit) {
- persistenceUnit = newPersistenceUnit;
- fireItemAdded(PERSISTENCE_UNITS_LIST, 0, persistenceUnit);
+ this.persistenceUnit = newPersistenceUnit;
+ fireItemAdded(PERSISTENCE_UNITS_LIST, 0, this.persistenceUnit);
}
protected void removePersistenceUnit_(PersistenceUnit oldPersistenceUnit) {
- persistenceUnit.dispose();
- persistenceUnit = null;
+ this.persistenceUnit.dispose();
+ this.persistenceUnit = null;
fireItemRemoved(PERSISTENCE_UNITS_LIST, 0, oldPersistenceUnit);
}
// **************** updating ***********************************************
- protected void initialize(XmlPersistence xmlPersistence) {
- this.xmlPersistence = xmlPersistence;
- initializePersistenceUnits(xmlPersistence);
+ protected void initialize(XmlPersistence persistence) {
+ this.xmlPersistence = persistence;
+ initializePersistenceUnits(persistence);
}
protected void initializePersistenceUnits(XmlPersistence persistence) {
// only adding one here, until we support multiple persistence units
- if (xmlPersistence.getPersistenceUnits().size() > 0) {
- persistenceUnit = createPersistenceUnit(persistence.getPersistenceUnits().get(0));
+ if (this.xmlPersistence.getPersistenceUnits().size() > 0) {
+ this.persistenceUnit = createPersistenceUnit(persistence.getPersistenceUnits().get(0));
}
}
@@ -126,12 +128,12 @@ public class GenericPersistence extends AbstractPersistenceJpaContextNode
xmlPersistenceUnit = persistence.getPersistenceUnits().get(0);
}
- if (persistenceUnit != null) {
+ if (this.persistenceUnit != null) {
if (xmlPersistenceUnit != null) {
- persistenceUnit.update(xmlPersistenceUnit);
+ this.persistenceUnit.update(xmlPersistenceUnit);
}
else {
- removePersistenceUnit_(persistenceUnit);
+ removePersistenceUnit_(this.persistenceUnit);
}
}
else {
@@ -150,78 +152,76 @@ public class GenericPersistence extends AbstractPersistenceJpaContextNode
@Override
public PersistenceUnit getPersistenceUnit() {
- throw new UnsupportedOperationException("No PersistenceUnit in this context");
+ throw new UnsupportedOperationException("No PersistenceUnit in this context"); //$NON-NLS-1$
}
public JpaStructureNode getStructureNode(int textOffset) {
- for (PersistenceUnit persistenceUnit : CollectionTools.iterable(persistenceUnits())) {
- if (persistenceUnit.containsOffset(textOffset)) {
- return persistenceUnit.getStructureNode(textOffset);
+ for (PersistenceUnit pu : CollectionTools.iterable(persistenceUnits())) {
+ if (pu.containsOffset(textOffset)) {
+ return pu.getStructureNode(textOffset);
}
}
return this;
}
public boolean containsOffset(int textOffset) {
- if (xmlPersistence == null) {
- return false;
- }
- return xmlPersistence.containsOffset(textOffset);
+ return (this.xmlPersistence == null) ? false : this.xmlPersistence.containsOffset(textOffset);
}
public TextRange getSelectionTextRange() {
- return xmlPersistence.getSelectionTextRange();
+ return this.xmlPersistence.getSelectionTextRange();
}
public TextRange getValidationTextRange() {
- return xmlPersistence.getValidationTextRange();
+ return this.xmlPersistence.getValidationTextRange();
+ }
+
+ public void dispose() {
+ for (PersistenceUnit pu : CollectionTools.iterable(persistenceUnits())) {
+ pu.dispose();
+ }
}
+ // ********** validation **********
+
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- //persistence root validation
- addNoPersistenceUnitMessage(messages);
-
- // note to neil (or whomever): extraneous persistence units can be
- // accessed through the XmlPersistence resource object
- addMultiplePersistenceUnitMessage(messages);
-
-
- //persistence unit validation
- if (persistenceUnit != null) {
- persistenceUnit.addToMessages(messages);
- }
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.checkForMultiplePersistenceUnits(messages);
+ this.validatePersistenceUnit(messages);
}
-
- protected void addNoPersistenceUnitMessage(List<IMessage> messages) {
- if (persistenceUnit == null) {
+
+ /**
+ * extraneous persistence units can be
+ * accessed through the XmlPersistence resource object
+ */
+ protected void checkForMultiplePersistenceUnits(List<IMessage> messages) {
+ if (this.xmlPersistence.getPersistenceUnits().size() > 1) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENCE_NO_PERSISTENCE_UNIT,
- this,
- this.getValidationTextRange())
- );
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.NORMAL_SEVERITY,
+ JpaValidationMessages.PERSISTENCE_MULTIPLE_PERSISTENCE_UNITS,
+ this,
+ this.getValidationTextRange()
+ )
+ );
}
}
- protected void addMultiplePersistenceUnitMessage(List<IMessage> messages) {
- if (xmlPersistence.getPersistenceUnits().size() > 1) {
+ protected void validatePersistenceUnit(List<IMessage> messages) {
+ if (this.persistenceUnit == null) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
- IMessage.NORMAL_SEVERITY,
- JpaValidationMessages.PERSISTENCE_MULTIPLE_PERSISTENCE_UNITS,
- this,
- this.getValidationTextRange())
- );
- }
- }
-
- public void dispose() {
- for (PersistenceUnit persistenceUnit : CollectionTools.iterable(persistenceUnits())) {
- persistenceUnit.dispose();
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.PERSISTENCE_NO_PERSISTENCE_UNIT,
+ this,
+ this.getValidationTextRange()
+ )
+ );
+ return;
}
+ this.persistenceUnit.validate(messages);
}
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceUnit.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceUnit.java
index b5e46f0a6d..3a899f9480 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceUnit.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceUnit.java
@@ -11,18 +11,28 @@ package org.eclipse.jpt.core.internal.context.persistence;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.NoSuchElementException;
import java.util.Set;
+
+import org.eclipse.jdt.core.dom.CompilationUnit;
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.GeneratedValue;
import org.eclipse.jpt.core.context.Generator;
import org.eclipse.jpt.core.context.PersistentType;
import org.eclipse.jpt.core.context.Query;
+import org.eclipse.jpt.core.context.java.JavaGeneratedValue;
+import org.eclipse.jpt.core.context.java.JavaGenerator;
+import org.eclipse.jpt.core.context.java.JavaQuery;
+import org.eclipse.jpt.core.context.orm.OrmGeneratedValue;
+import org.eclipse.jpt.core.context.orm.OrmGenerator;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.context.orm.OrmQuery;
import org.eclipse.jpt.core.context.orm.PersistenceUnitDefaults;
import org.eclipse.jpt.core.context.persistence.ClassRef;
import org.eclipse.jpt.core.context.persistence.MappingFileRef;
@@ -47,6 +57,7 @@ import org.eclipse.jpt.utility.internal.HashBag;
import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
+import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
import org.eclipse.jpt.utility.internal.iterators.ReadOnlyCompositeListIterator;
import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
@@ -679,7 +690,7 @@ public class GenericPersistenceUnit extends AbstractPersistenceJpaContextNode
}
- // **************** global generator and query support *********************
+ // **************** generators *********************
public void addGenerator(Generator generator) {
this.generators.add(generator);
@@ -688,6 +699,110 @@ public class GenericPersistenceUnit extends AbstractPersistenceJpaContextNode
public ListIterator<Generator> allGenerators() {
return new CloneListIterator<Generator>(this.generators);
}
+
+ protected Iterator<String> allGeneratorNames() {
+ return new TransformationIterator<Generator, String>(this.allGenerators()) {
+ @Override
+ protected String transform(Generator generator) {
+ return generator.getName();
+ }
+ };
+ }
+
+ protected Iterator<String> allNonNullGeneratorNames() {
+ return new FilteringIterator<String, String>(this.allGeneratorNames()) {
+ @Override
+ protected boolean accept(String generatorName) {
+ return generatorName != null;
+ }
+ };
+ }
+
+ public String[] uniqueGeneratorNames() {
+ HashSet<String> names = CollectionTools.set(this.allNonNullGeneratorNames());
+ return names.toArray(new String[names.size()]);
+ }
+
+ public void validateGenerators(OrmGeneratorHolder generatorHolder, List<IMessage> messages) {
+ ArrayList<Generator> allGenerators = CollectionTools.list(this.allGenerators());
+ for (Iterator<OrmGenerator> stream = generatorHolder.generators(); stream.hasNext(); ) {
+ OrmGenerator generator = stream.next();
+ this.validateGenerator(generator, generator.getNameTextRange(), allGenerators, messages);
+ }
+ }
+
+ public void validateGenerators(JavaGeneratorHolder generatorHolder, List<IMessage> messages, CompilationUnit astRoot) {
+ ArrayList<Generator> allGenerators = CollectionTools.list(this.allGenerators());
+ for (Iterator<JavaGenerator> stream = generatorHolder.generators(); stream.hasNext(); ) {
+ JavaGenerator generator = stream.next();
+ this.validateGenerator(generator, generator.getNameTextRange(astRoot), allGenerators, messages);
+ }
+ }
+
+ protected void validateGenerator(Generator generator, TextRange generatorNameTextRange, ArrayList<Generator> allGenerators, List<IMessage> messages) {
+ for (Generator otherGenerator : allGenerators) {
+ if (this.generatorsAreDuplicates(generator, otherGenerator)) {
+ messages.add(
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.GENERATOR_DUPLICATE_NAME,
+ new String[] {generator.getName()},
+ generator,
+ generatorNameTextRange
+ )
+ );
+ }
+ }
+ }
+
+ protected boolean generatorsAreDuplicates(Generator generator, Generator otherGenerator) {
+ if (otherGenerator == generator) {
+ return false;
+ }
+ if (otherGenerator.overrides(generator)) {
+ return false;
+ }
+ String otherName = otherGenerator.getName();
+ return (otherName != null) && otherName.equals(generator.getName());
+ }
+
+ public void validateGeneratedValue(OrmGeneratedValueHolder generatedValueHolder, List<IMessage> messages) {
+ OrmGeneratedValue generatedValue = generatedValueHolder.getGeneratedValue();
+ if (generatedValue != null) {
+ this.validateGeneratedValue(generatedValue, generatedValue.getGeneratorTextRange(), generatedValueHolder, messages);
+ }
+ }
+
+ public void validateGeneratedValue(JavaGeneratedValueHolder generatedValueHolder, List<IMessage> messages, CompilationUnit astRoot) {
+ JavaGeneratedValue generatedValue = generatedValueHolder.getGeneratedValue();
+ if (generatedValue != null) {
+ this.validateGeneratedValue(generatedValue, generatedValue.getGeneratorTextRange(astRoot), generatedValueHolder, messages);
+ }
+ }
+
+ protected void validateGeneratedValue(GeneratedValue generatedValue, TextRange generatedValueGeneratorTextRange, Object holder, List<IMessage> messages) {
+ String generatorName = generatedValue.getGenerator();
+ if (generatorName == null) {
+ return;
+ }
+ for (Iterator<Generator> stream = this.allGenerators(); stream.hasNext(); ) {
+ if (generatorName.equals(stream.next().getName())) {
+ return; // match found
+ }
+ }
+ messages.add(
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.ID_MAPPING_UNRESOLVED_GENERATOR_NAME,
+ new String[] {generatorName},
+ holder,
+ generatedValueGeneratorTextRange
+ )
+ );
+ }
+
+
+ // **************** queries *********************
public void addQuery(Query query) {
this.queries.add(query);
@@ -696,7 +811,50 @@ public class GenericPersistenceUnit extends AbstractPersistenceJpaContextNode
public ListIterator<Query> allQueries() {
return new CloneListIterator<Query>(this.queries);
}
+
+ public void validateQueries(OrmQueryHolder queryHolder, List<IMessage> messages) {
+ ArrayList<Query> allQueries = CollectionTools.list(this.allQueries());
+ for (Iterator<OrmQuery> stream = queryHolder.queries(); stream.hasNext(); ) {
+ OrmQuery query = stream.next();
+ this.validateQuery(query, query.getNameTextRange(), allQueries, messages);
+ }
+ }
+
+ public void validateQueries(JavaQueryHolder queryHolder, List<IMessage> messages, CompilationUnit astRoot) {
+ ArrayList<Query> allQueries = CollectionTools.list(this.allQueries());
+ for (Iterator<JavaQuery> stream = queryHolder.queries(); stream.hasNext(); ) {
+ JavaQuery query = stream.next();
+ this.validateQuery(query, query.getNameTextRange(astRoot), allQueries, messages);
+ }
+ }
+ protected void validateQuery(Query query, TextRange queryNameTextRange, ArrayList<Query> allQueries, List<IMessage> messages) {
+ for (Query otherQuery : allQueries) {
+ if (this.queriesAreDuplicates(query, otherQuery)) {
+ messages.add(
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.QUERY_DUPLICATE_NAME,
+ new String[] {query.getName()},
+ query,
+ queryNameTextRange
+ )
+ );
+ }
+ }
+ }
+
+ protected boolean queriesAreDuplicates(Query query, Query otherQuery) {
+ if (otherQuery == query) {
+ return false;
+ }
+ if (otherQuery.overrides(query)) {
+ return false;
+ }
+ String otherName = otherQuery.getName();
+ return (otherName != null) && otherName.equals(query.getName());
+ }
+
// **************** updating ***********************************************
@@ -973,8 +1131,8 @@ public class GenericPersistenceUnit extends AbstractPersistenceJpaContextNode
return true;
}
}
- for (MappingFileRef mappingFileRef : CollectionTools.iterable(mappingFileRefs())) {
- if (mappingFileRef.getPersistentType(className) != null) {
+ for (Iterator<MappingFileRef> stream = this.mappingFileRefs(); stream.hasNext(); ) {
+ if (stream.next().getPersistentType(className) != null) {
return true;
}
}
@@ -1059,23 +1217,22 @@ public class GenericPersistenceUnit extends AbstractPersistenceJpaContextNode
// ********** Validation ***********************************************
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- addMappingFileMessages(messages);
- addClassMessages(messages);
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.validateMappingFiles(messages);
+ this.validateClassRefs(messages);
}
- protected void addMappingFileMessages(List<IMessage> messages) {
- addMultipleMetadataMessages(messages);
- addDuplicateMappingFileMessages(messages);
-
- for (Iterator<MappingFileRef> stream = mappingFileRefs(); stream.hasNext();) {
- stream.next().addToMessages(messages);
+ protected void validateMappingFiles(List<IMessage> messages) {
+ this.checkForMultiplePersistenceUnitDefaults(messages);
+ this.checkForDuplicateMappingFiles(messages);
+ for (Iterator<MappingFileRef> stream = this.mappingFileRefs(); stream.hasNext();) {
+ stream.next().validate(messages);
}
}
- protected void addMultipleMetadataMessages(List<IMessage> messages) {
- Collection<PersistenceUnitDefaults> puDefaultsCollection = persistenceUnitDefaultsForValidation();
+ protected void checkForMultiplePersistenceUnitDefaults(List<IMessage> messages) {
+ Collection<PersistenceUnitDefaults> puDefaultsCollection = this.buildPersistenceUnitDefaultsCollection();
if (puDefaultsCollection.size() > 1) {
for (PersistenceUnitDefaults puDefaults : puDefaultsCollection) {
messages.add(
@@ -1083,72 +1240,77 @@ public class GenericPersistenceUnit extends AbstractPersistenceJpaContextNode
IMessage.HIGH_SEVERITY,
JpaValidationMessages.ENTITY_MAPPINGS_MULTIPLE_METADATA,
new String[] {this.getName()},
- puDefaults)
+ puDefaults
+ )
);
}
}
}
-
- protected void addDuplicateMappingFileMessages(List<IMessage> messages) {
- HashBag<String> fileBag = new HashBag<String>(
- CollectionTools.collection(
- new TransformationIterator<MappingFileRef, String>(this.mappingFileRefs()) {
- @Override
- protected String transform(MappingFileRef mappingFileRef) {
- return mappingFileRef.getFileName();
- }
- }
- )
- );
+
+ protected void checkForDuplicateMappingFiles(List<IMessage> messages) {
+ HashBag<String> fileNames = new HashBag<String>();
+ CollectionTools.addAll(fileNames, this.mappingFileRefNames());
for (MappingFileRef mappingFileRef : CollectionTools.iterable(this.mappingFileRefs())) {
- if (fileBag.count(mappingFileRef.getFileName()) > 1) {
+ String fileName = mappingFileRef.getFileName();
+ if (fileNames.count(fileName) > 1) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENCE_UNIT_DUPLICATE_MAPPING_FILE,
- new String[] {mappingFileRef.getFileName()},
+ new String[] {fileName},
mappingFileRef,
- mappingFileRef.getValidationTextRange())
+ mappingFileRef.getValidationTextRange()
+ )
);
}
}
}
- protected void addClassMessages(List<IMessage> messages) {
- addDuplicateClassMessages(messages);
-
- for (ClassRef classRef : CollectionTools.iterable(classRefs())) {
- classRef.addToMessages(messages);
- }
+ protected Iterator<String> mappingFileRefNames() {
+ return new TransformationIterator<MappingFileRef, String>(this.mappingFileRefs()) {
+ @Override
+ protected String transform(MappingFileRef mappingFileRef) {
+ return mappingFileRef.getFileName();
+ }
+ };
}
- protected void addDuplicateClassMessages(List<IMessage> messages) {
- HashBag<String> classNameBag = new HashBag<String>(
- CollectionTools.collection(
- new TransformationIterator<ClassRef, String>(this.classRefs()) {
- @Override
- protected String transform(ClassRef classRef) {
- return classRef.getClassName();
- }
- }
- )
- );
- for (ClassRef javaClassRef : CollectionTools.iterable(this.classRefs())) {
- if (javaClassRef.getClassName() != null
- && classNameBag.count(javaClassRef.getClassName()) > 1) {
+ protected void validateClassRefs(List<IMessage> messages) {
+ this.checkForDuplicateClasses(messages);
+ for (Iterator<ClassRef> stream = this.classRefs(); stream.hasNext(); ) {
+ stream.next().validate(messages);
+ }
+ }
+
+ protected void checkForDuplicateClasses(List<IMessage> messages) {
+ HashBag<String> classNames = new HashBag<String>();
+ CollectionTools.addAll(classNames, this.classRefNames());
+ for (ClassRef classRef : CollectionTools.iterable(this.classRefs())) {
+ String className = classRef.getClassName();
+ if ((className != null) && (classNames.count(className) > 1)) {
messages.add(
DefaultJpaValidationMessages.buildMessage(
IMessage.HIGH_SEVERITY,
JpaValidationMessages.PERSISTENCE_UNIT_DUPLICATE_CLASS,
- new String[] {javaClassRef.getClassName()},
- javaClassRef,
- javaClassRef.getValidationTextRange())
+ new String[] {className},
+ classRef,
+ classRef.getValidationTextRange()
+ )
);
}
}
}
- private Collection<PersistenceUnitDefaults> persistenceUnitDefaultsForValidation() {
+ protected Iterator<String> classRefNames() {
+ return new TransformationIterator<ClassRef, String>(this.classRefs()) {
+ @Override
+ protected String transform(ClassRef classRef) {
+ return classRef.getClassName();
+ }
+ };
+ }
+
+ protected Collection<PersistenceUnitDefaults> buildPersistenceUnitDefaultsCollection() {
ArrayList<PersistenceUnitDefaults> result = new ArrayList<PersistenceUnitDefaults>();
for (Iterator<MappingFileRef> stream = this.mappingFileRefs(); stream.hasNext(); ) {
PersistenceUnitDefaults defaults = stream.next().getPersistenceUnitDefaults();
@@ -1162,8 +1324,8 @@ public class GenericPersistenceUnit extends AbstractPersistenceJpaContextNode
//*************************************
public PersistentType getPersistentType(String fullyQualifiedTypeName) {
- for (MappingFileRef mappingFileRef : CollectionTools.iterable(mappingFileRefs())) {
- OrmPersistentType ormPersistentType = mappingFileRef.getPersistentType(fullyQualifiedTypeName);
+ for (Iterator<MappingFileRef> stream = this.mappingFileRefs(); stream.hasNext(); ) {
+ OrmPersistentType ormPersistentType = stream.next().getPersistentType(fullyQualifiedTypeName);
if (ormPersistentType != null) {
return ormPersistentType;
}
@@ -1212,11 +1374,11 @@ public class GenericPersistenceUnit extends AbstractPersistenceJpaContextNode
}
public void dispose() {
- for (ClassRef classRef : CollectionTools.iterable(classRefs())) {
- classRef.dispose();
+ for (Iterator<ClassRef> stream = this.classRefs(); stream.hasNext(); ) {
+ stream.next().dispose();
}
- for (MappingFileRef mappingFileRef : CollectionTools.iterable(mappingFileRefs())) {
- mappingFileRef.dispose();
+ for (Iterator<MappingFileRef> stream = this.mappingFileRefs(); stream.hasNext(); ) {
+ stream.next().dispose();
}
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceXml.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceXml.java
index 0789b2034b..6a9936a910 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceXml.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/GenericPersistenceXml.java
@@ -25,7 +25,11 @@ import org.eclipse.jpt.core.resource.persistence.XmlPersistence;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-public class GenericPersistenceXml extends AbstractPersistenceJpaContextNode
+/**
+ *
+ */
+public class GenericPersistenceXml
+ extends AbstractPersistenceJpaContextNode
implements PersistenceXml
{
protected PersistenceResource persistenceResource;
@@ -50,71 +54,71 @@ public class GenericPersistenceXml extends AbstractPersistenceJpaContextNode
@Override
public IResource getResource() {
- return persistenceResource.getFile();
+ return this.persistenceResource.getFile();
}
// **************** persistence ********************************************
public Persistence getPersistence() {
- return persistence;
+ return this.persistence;
}
public Persistence addPersistence() {
- if (persistence != null) {
+ if (this.persistence != null) {
throw new IllegalStateException();
}
XmlPersistence xmlPersistence = PersistenceFactory.eINSTANCE.createXmlPersistence();
- persistence = buildPersistence(xmlPersistence);
- persistenceResource.getContents().add(xmlPersistence);
- firePropertyChanged(PERSISTENCE_PROPERTY, null, persistence);
- return persistence;
+ this.persistence = buildPersistence(xmlPersistence);
+ this.persistenceResource.getContents().add(xmlPersistence);
+ firePropertyChanged(PERSISTENCE_PROPERTY, null, this.persistence);
+ return this.persistence;
}
public void removePersistence() {
- if (persistence == null) {
+ if (this.persistence == null) {
throw new IllegalStateException();
}
getJpaFile(this.persistenceResource.getResourceModel()).removeRootStructureNode(this.persistenceResource);
this.persistence.dispose();
- Persistence oldPersistence = persistence;
- persistence = null;
- XmlPersistence xmlPersistence = persistenceResource.getPersistence();
- persistenceResource.getContents().remove(xmlPersistence);
+ Persistence oldPersistence = this.persistence;
+ this.persistence = null;
+ XmlPersistence xmlPersistence = this.persistenceResource.getPersistence();
+ this.persistenceResource.getContents().remove(xmlPersistence);
firePropertyChanged(PERSISTENCE_PROPERTY, oldPersistence, null);
}
protected void setPersistence_(Persistence newPersistence) {
- Persistence oldPersistence = persistence;
- persistence = newPersistence;
+ Persistence oldPersistence = this.persistence;
+ this.persistence = newPersistence;
firePropertyChanged(PERSISTENCE_PROPERTY, oldPersistence, newPersistence);
}
// **************** updating ***********************************************
- protected void initialize(PersistenceResource persistenceResource) {
- this.persistenceResource = persistenceResource;
- if (persistenceResource.getPersistence() != null) {
- this.persistence = buildPersistence(persistenceResource.getPersistence());
+ protected void initialize(PersistenceResource pr) {
+ this.persistenceResource = pr;
+ if (pr.getPersistence() != null) {
+ this.persistence = buildPersistence(pr.getPersistence());
}
}
- public void update(PersistenceResource persistenceResource) {
- this.persistenceResource = persistenceResource;
- if (persistenceResource.getPersistence() != null) {
+ public void update(PersistenceResource pr) {
+ this.persistenceResource = pr;
+ if (pr.getPersistence() != null) {
if (this.persistence != null) {
- getJpaFile(this.persistenceResource.getResourceModel()).addRootStructureNode(this.persistenceResource, this.persistence);
- this.persistence.update(persistenceResource.getPersistence());
+ this.getJpaFile(this.persistenceResource.getResourceModel()).addRootStructureNode(this.persistenceResource, this.persistence);
+ this.persistence.update(pr.getPersistence());
}
else {
- setPersistence_(buildPersistence(persistenceResource.getPersistence()));
+ setPersistence_(buildPersistence(pr.getPersistence()));
}
}
else {
- if (getPersistence() != null) {
- getJpaFile(this.persistenceResource.getResourceModel()).removeRootStructureNode(this.persistenceResource);
- getPersistence().dispose();
+ if (this.persistence != null) {
+ this.getJpaFile(this.persistenceResource.getResourceModel()).removeRootStructureNode(this.persistenceResource);
+ this.persistence.dispose();
}
setPersistence_(null);
}
@@ -129,13 +133,13 @@ public class GenericPersistenceXml extends AbstractPersistenceJpaContextNode
@Override
public PersistenceUnit getPersistenceUnit() {
- throw new UnsupportedOperationException("No PersistenceUnit in this context");
+ throw new UnsupportedOperationException("No Persistence Unit in this context"); //$NON-NLS-1$
}
public JpaStructureNode getStructureNode(int textOffset) {
- if (persistence.containsOffset(textOffset)) {
- return persistence.getStructureNode(textOffset);
+ if (this.persistence.containsOffset(textOffset)) {
+ return this.persistence.getStructureNode(textOffset);
}
return this;
}
@@ -152,28 +156,22 @@ public class GenericPersistenceXml extends AbstractPersistenceJpaContextNode
// **************** validation *********************************************
- private boolean okToContinueValidation = true;
-
@Override
- public void addToMessages(List<IMessage> messages) {
- super.addToMessages(messages);
- addInvalidPersistenceXmlContentMessage(messages);
-
- if (okToContinueValidation){
- getPersistence().addToMessages(messages);
- }
- }
-
- protected void addInvalidPersistenceXmlContentMessage(List<IMessage> messages) {
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+
if (this.persistence == null) {
messages.add(
- DefaultJpaValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JpaValidationMessages.PERSISTENCE_XML_INVALID_CONTENT,
- this)
- );
- okToContinueValidation = false;
+ DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ JpaValidationMessages.PERSISTENCE_XML_INVALID_CONTENT,
+ this
+ )
+ );
+ return;
}
+
+ this.persistence.validate(messages);
}
public void dispose() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationDataModelProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationDataModelProvider.java
index 8a4d527887..beb5a513fd 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationDataModelProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationDataModelProvider.java
@@ -398,7 +398,7 @@ public class OrmFileCreationDataModelProvider extends AbstractDataModelProvider
if (jpaProject == null) {
return null;
}
- PersistenceXml persistenceXml = jpaProject.getRootContext().getPersistenceXml();
+ PersistenceXml persistenceXml = jpaProject.getRootContextNode().getPersistenceXml();
if (persistenceXml == null) {
return null;
}
@@ -417,7 +417,7 @@ public class OrmFileCreationDataModelProvider extends AbstractDataModelProvider
JpaProject jpaProject =
(StringTools.stringIsEmpty(pUnitName)) ? null : getJpaProject();
PersistenceXml persistenceXml =
- (jpaProject == null) ? null : jpaProject.getRootContext().getPersistenceXml();
+ (jpaProject == null) ? null : jpaProject.getRootContextNode().getPersistenceXml();
Persistence persistence =
(persistenceXml == null) ? null : persistenceXml.getPersistence();
if (persistence != null) {
@@ -452,7 +452,7 @@ public class OrmFileCreationDataModelProvider extends AbstractDataModelProvider
protected Iterator<PersistenceUnit> transform(IProject jpaIProject) {
JpaProject jpaProject = JptCorePlugin.getJpaProject(jpaIProject);
PersistenceXml persistenceXml =
- (jpaProject == null) ? null : jpaProject.getRootContext().getPersistenceXml();
+ (jpaProject == null) ? null : jpaProject.getRootContextNode().getPersistenceXml();
Persistence persistence =
(persistenceXml == null) ? null : persistenceXml.getPersistence();
return (persistence == null) ? EmptyIterator.<PersistenceUnit>instance() : persistence.persistenceUnits();
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationOperation.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationOperation.java
index ca1d1c6134..326d702b02 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationOperation.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/operations/OrmFileCreationOperation.java
@@ -78,7 +78,7 @@ public class OrmFileCreationOperation extends AbstractDataModelOperation
private PersistenceUnit getPersistenceUnit() throws ExecutionException {
String pUnitName = getDataModel().getStringProperty(PERSISTENCE_UNIT);
JpaProject jpaProject = getJpaProject();
- PersistenceXml persistenceXml = jpaProject.getRootContext().getPersistenceXml();
+ PersistenceXml persistenceXml = jpaProject.getRootContextNode().getPersistenceXml();
if (persistenceXml == null) {
throw new ExecutionException("Project does not have a persistence.xml file");
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaPlatform.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaPlatform.java
index 454877278d..a3a2e7d34f 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaPlatform.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaPlatform.java
@@ -15,6 +15,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Platform;
@@ -55,7 +56,6 @@ import org.eclipse.jpt.db.DatabaseFinder;
import org.eclipse.jpt.db.JptDbPlugin;
import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
public class GenericJpaPlatform
implements JpaPlatform
@@ -331,13 +331,6 @@ public class GenericJpaPlatform
}
- // **************** Validation *********************************************
-
- public void addToMessages(JpaProject project, List<IMessage> messages) {
- project.addToMessages(messages);
- }
-
-
// **************** Database *********************************************
public ConnectionProfileFactory getConnectionProfileFactory() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/synch/SynchronizeClassesJob.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/synch/SynchronizeClassesJob.java
index 9ae194d51c..de759897b4 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/synch/SynchronizeClassesJob.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/synch/SynchronizeClassesJob.java
@@ -105,7 +105,7 @@ public class SynchronizeClassesJob extends WorkspaceJob
}
private boolean mappingFileContains(JpaProject jpaProject, String fullyQualifiedTypeName) {
- PersistenceXml persistenceXml = jpaProject.getRootContext().getPersistenceXml();
+ PersistenceXml persistenceXml = jpaProject.getRootContextNode().getPersistenceXml();
if (persistenceXml == null) {
return false;
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCachingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCachingImpl.java
index 7deeba51a1..659a759dc2 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCachingImpl.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCachingImpl.java
@@ -534,12 +534,12 @@ public class EclipseLinkJavaCachingImpl extends AbstractJavaJpaContextNode imple
}
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- addExpiryMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
+ this.validateExpiry(messages, astRoot);
}
- protected void addExpiryMessages(List<IMessage> messages, CompilationUnit astRoot) {
+ protected void validateExpiry(List<IMessage> messages, CompilationUnit astRoot) {
CacheAnnotation cache = getCacheAnnotation();
if (cache.getExpiry() != null && cache.getExpiryTimeOfDay() != null) {
messages.add(
@@ -548,7 +548,8 @@ public class EclipseLinkJavaCachingImpl extends AbstractJavaJpaContextNode imple
EclipseLinkJpaValidationMessages.CACHE_EXPIRY_AND_EXPIRY_TIME_OF_DAY_BOTH_SPECIFIED,
new String[] {this.getParent().getPersistentType().getName()},
this,
- getValidationTextRange(astRoot))
+ getValidationTextRange(astRoot)
+ )
);
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEntityImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEntityImpl.java
index 642a292d92..3362e3a71f 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEntityImpl.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEntityImpl.java
@@ -54,8 +54,8 @@ public class EclipseLinkJavaEntityImpl extends GenericJavaEntity implements Ecli
//********** Validation ********************************************
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- getCaching().addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
+ this.eclipseLinkCaching.validate(messages, astRoot);
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMappedSuperclassImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMappedSuperclassImpl.java
index f745d99f86..0181df25b3 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMappedSuperclassImpl.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMappedSuperclassImpl.java
@@ -54,8 +54,8 @@ public class EclipseLinkJavaMappedSuperclassImpl extends GenericJavaMappedSuperc
//********** Validation ********************************************
@Override
- public void addToMessages(List<IMessage> messages, CompilationUnit astRoot) {
- super.addToMessages(messages, astRoot);
- getCaching().addToMessages(messages, astRoot);
+ public void validate(List<IMessage> messages, CompilationUnit astRoot) {
+ super.validate(messages, astRoot);
+ this.eclipseLinkCaching.validate(messages, astRoot);
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java
index 8db6f39213..0cc0c7502f 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java
@@ -116,7 +116,7 @@ public class EclipseLinkDDLGeneratorUi
}
protected Persistence getPersistence() {
- return this.project.getRootContext().getPersistenceXml().getPersistence();
+ return this.project.getRootContextNode().getPersistenceXml().getPersistence();
}
// ********** runnable **********
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/editors/PersistenceEditor.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/editors/PersistenceEditor.java
index 95d9e9fec7..8f2a941dea 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/editors/PersistenceEditor.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/editors/PersistenceEditor.java
@@ -219,7 +219,7 @@ public class PersistenceEditor extends FormEditor
return new TransformationPropertyValueModel<JpaProject, JpaRootContextNode>(buildJpaProjectHolder()) {
@Override
protected JpaRootContextNode transform_(JpaProject value) {
- return value.getRootContext();
+ return value.getRootContextNode();
}
};
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java
index c5124bcd51..f2ad54542f 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/mappings/details/GeneratedValueComposite.java
@@ -10,21 +10,19 @@
package org.eclipse.jpt.ui.internal.mappings.details;
import java.util.Collection;
+
import org.eclipse.jpt.core.context.GeneratedValue;
import org.eclipse.jpt.core.context.GenerationType;
-import org.eclipse.jpt.core.context.Generator;
import org.eclipse.jpt.core.context.IdMapping;
import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
import org.eclipse.jpt.ui.internal.listeners.SWTListChangeListenerWrapper;
import org.eclipse.jpt.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
+import org.eclipse.jpt.ui.internal.widgets.FormPane;
import org.eclipse.jpt.utility.internal.CollectionTools;
import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
import org.eclipse.jpt.utility.model.event.ListChangeEvent;
import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
@@ -408,22 +406,7 @@ public class GeneratedValueComposite extends FormPane<IdMapping>
}
private String[] sortedUniqueGeneratorNames() {
- return CollectionTools.array(
- CollectionTools.sortedSet(
- new TransformationIterator<Generator, String>(
- new FilteringIterator<Generator, Generator>(getSubject().getPersistenceUnit().allGenerators())
- {
- @Override
- protected boolean accept(Generator o) {
- return o.getName() != null;
- }
- })
- {
- @Override
- protected String transform(Generator next) {
- return next.getName();
- }
- }),
- new String[0]);
+ return CollectionTools.sort(this.getSubject().getPersistenceUnit().uniqueGeneratorNames());
}
-} \ No newline at end of file
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorContentProvider.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorContentProvider.java
index 7d88736920..f7dd114c65 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorContentProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/navigator/JpaNavigatorContentProvider.java
@@ -132,7 +132,7 @@ public class JpaNavigatorContentProvider
JpaPlatformUi platformUi = JptUiPlugin.getPlugin().jpaPlatformUi(jpaProject.getJpaPlatform());
if (platformUi != null) {
- return new Object[] {jpaProject.getRootContext()};
+ return new Object[] {jpaProject.getRootContextNode()};
}
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java
index f859879bb0..063d971c20 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/platform/base/EntitiesGenerator.java
@@ -90,7 +90,7 @@ public class EntitiesGenerator {
if (wizard.synchronizePersistenceXml()) {
// we currently only support *one* persistence.xml file per project
- PersistenceXml persistenceXml = this.project.getRootContext().getPersistenceXml();
+ PersistenceXml persistenceXml = this.project.getRootContextNode().getPersistenceXml();
if (persistenceXml != null) {
// TODO casting to IFile - just trying to get rid of all compiler errors for now
synchClassesJob = new SynchronizeClassesJob((IFile) persistenceXml.getResource());
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/ContextModelTestCase.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/ContextModelTestCase.java
index 7953e80e7d..e7245fd8f6 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/ContextModelTestCase.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/ContextModelTestCase.java
@@ -124,7 +124,7 @@ public abstract class ContextModelTestCase extends AnnotationTestCase
}
protected PersistenceUnit persistenceUnit() {
- return rootContext().getPersistenceXml().getPersistence().persistenceUnits().next();
+ return getRootContextNode().getPersistenceXml().getPersistence().persistenceUnits().next();
}
protected ClassRef classRef() {
@@ -161,8 +161,8 @@ public abstract class ContextModelTestCase extends AnnotationTestCase
xmlPersistenceUnit.getClasses().remove(xmlJavaClassRefToRemove);
}
- protected JpaRootContextNode rootContext() {
- return getJavaProject().getJpaProject().getRootContext();
+ protected JpaRootContextNode getRootContextNode() {
+ return getJavaProject().getJpaProject().getRootContextNode();
}
@Override
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java
index 1f683e4c67..d35c8e92fa 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java
@@ -121,9 +121,9 @@ public class JpaFileTests extends ContextModelTestCase
public void testUpdatePersistenceRootStructureNodePersistenceRemoved() throws Exception {
IFile file = persistenceResource().getResourceModel().getFile();
JpaFile persistenceXmlJpaFile = JptCorePlugin.getJpaFile(file);
- assertEquals(rootContext().getPersistenceXml().getPersistence(), persistenceXmlJpaFile.rootStructureNodes().next());
+ assertEquals(getRootContextNode().getPersistenceXml().getPersistence(), persistenceXmlJpaFile.rootStructureNodes().next());
- rootContext().getPersistenceXml().removePersistence();
+ getRootContextNode().getPersistenceXml().removePersistence();
assertFalse(persistenceXmlJpaFile.rootStructureNodes().hasNext());
}
@@ -135,7 +135,7 @@ public class JpaFileTests extends ContextModelTestCase
assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
- rootContext().getPersistenceXml().removePersistence();
+ getRootContextNode().getPersistenceXml().removePersistence();
assertFalse(javaJpaFile.rootStructureNodes().hasNext());
}
@@ -147,15 +147,15 @@ public class JpaFileTests extends ContextModelTestCase
assertEquals(javaPersistentType(), javaJpaFile.rootStructureNodes().next());
- rootContext().getPersistenceXml().removePersistence();
+ getRootContextNode().getPersistenceXml().removePersistence();
assertFalse(javaJpaFile.rootStructureNodes().hasNext());
}
public void testPersistenceRootStructureNodeRemovedFromResourceModel() throws Exception {
IFile file = persistenceResource().getResourceModel().getFile();
JpaFile persistenceXmlJpaFile = JptCorePlugin.getJpaFile(file);
- rootContext().getPersistenceXml().getPersistence();
- assertEquals(rootContext().getPersistenceXml().getPersistence(), persistenceXmlJpaFile.rootStructureNodes().next());
+ getRootContextNode().getPersistenceXml().getPersistence();
+ assertEquals(getRootContextNode().getPersistenceXml().getPersistence(), persistenceXmlJpaFile.rootStructureNodes().next());
persistenceResource().getContents().remove(persistenceResource().getPersistence());
@@ -165,9 +165,9 @@ public class JpaFileTests extends ContextModelTestCase
public void testUpdatePersistenceRootStructureNodePersistenceXmlRemoved() throws Exception {
IFile file = persistenceResource().getResourceModel().getFile();
JpaFile persistenceXmlJpaFile = JptCorePlugin.getJpaFile(file);
- assertEquals(rootContext().getPersistenceXml().getPersistence(), persistenceXmlJpaFile.rootStructureNodes().next());
+ assertEquals(getRootContextNode().getPersistenceXml().getPersistence(), persistenceXmlJpaFile.rootStructureNodes().next());
- rootContext().removePersistenceXml();
+ getRootContextNode().removePersistenceXml();
assertFalse(persistenceXmlJpaFile.rootStructureNodes().hasNext());
}
@@ -179,7 +179,7 @@ public class JpaFileTests extends ContextModelTestCase
assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
- rootContext().removePersistenceXml();
+ getRootContextNode().removePersistenceXml();
assertFalse(javaJpaFile.rootStructureNodes().hasNext());
}
@@ -191,7 +191,7 @@ public class JpaFileTests extends ContextModelTestCase
assertEquals(javaPersistentType(), javaJpaFile.rootStructureNodes().next());
- rootContext().removePersistenceXml();
+ getRootContextNode().removePersistenceXml();
assertFalse(javaJpaFile.rootStructureNodes().hasNext());
}
@@ -312,7 +312,7 @@ public class JpaFileTests extends ContextModelTestCase
JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
- jpaProject().getRootContext().getPersistenceXml().getPersistence().removePersistenceUnit(0);
+ jpaProject().getRootContextNode().getPersistenceXml().getPersistence().removePersistenceUnit(0);
assertFalse(javaJpaFile.rootStructureNodes().hasNext());
assertEquals(0, javaJpaFile.rootStructureNodesSize());
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinTableTests.java
index 09533a9785..b4a1da69d8 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinTableTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinTableTests.java
@@ -37,6 +37,7 @@ import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+@SuppressWarnings("nls")
public class OrmJoinTableTests extends ContextModelTestCase
{
public OrmJoinTableTests(String name) {
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmXmlTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmXmlTests.java
index c210d14c5d..1e7947c8b0 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmXmlTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmXmlTests.java
@@ -36,7 +36,7 @@ public class OrmXmlTests extends ContextModelTestCase
}
protected PersistenceXml persistenceXml() {
- return rootContext().getPersistenceXml();
+ return getRootContextNode().getPersistenceXml();
}
protected OrmXml ormXml() {
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java
index 5dd87d2a34..71707d99c2 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java
@@ -22,7 +22,7 @@ public class JptCorePersistenceContextModelTests extends TestCase
public static Test suite(boolean all) {
TestSuite suite = new TestSuite(JptCorePersistenceContextModelTests.class.getName());
- suite.addTestSuite(RootContextTests.class);
+ suite.addTestSuite(RootContextNodeTests.class);
suite.addTestSuite(PersistenceXmlTests.class);
suite.addTestSuite(PersistenceTests.class);
suite.addTestSuite(PersistenceUnitTests.class);
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceTests.java
index 4dc384a858..9c76269325 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceTests.java
@@ -24,13 +24,13 @@ public class PersistenceTests extends ContextModelTestCase
}
protected Persistence persistence() {
- return rootContext().getPersistenceXml().getPersistence();
+ return getRootContextNode().getPersistenceXml().getPersistence();
}
public void testUpdateAddPersistenceUnit() throws Exception {
PersistenceResource prm = persistenceResource();
XmlPersistence xmlPersistence = prm.getPersistence();
- Persistence persistence = rootContext().getPersistenceXml().getPersistence();
+ Persistence persistence = getRootContextNode().getPersistenceXml().getPersistence();
// clear xml persistence units, test that it's clear in context
xmlPersistence.getPersistenceUnits().clear();
@@ -80,7 +80,7 @@ public class PersistenceTests extends ContextModelTestCase
public void testUpdateRemovePersistenceUnit() throws Exception {
PersistenceResource prm = persistenceResource();
XmlPersistence xmlPersistence = prm.getPersistence();
- Persistence persistence = rootContext().getPersistenceXml().getPersistence();
+ Persistence persistence = getRootContextNode().getPersistenceXml().getPersistence();
// add a persistence unit and test that there are two existing xml and
// one context persistence unit
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceXmlTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceXmlTests.java
index 343f7f2ca6..5e7c816754 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceXmlTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceXmlTests.java
@@ -22,7 +22,7 @@ public class PersistenceXmlTests extends ContextModelTestCase
}
protected PersistenceXml persistenceXml() {
- return rootContext().getPersistenceXml();
+ return getRootContextNode().getPersistenceXml();
}
public void testUpdateAddPersistence() throws Exception {
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextNodeTests.java
index 6e719084f2..6cf8b7ecd2 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextTests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextNodeTests.java
@@ -15,9 +15,9 @@ import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
import org.eclipse.jpt.core.resource.persistence.PersistenceResource;
import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-public class RootContextTests extends ContextModelTestCase
+public class RootContextNodeTests extends ContextModelTestCase
{
- public RootContextTests(String name) {
+ public RootContextNodeTests(String name) {
super(name);
}
@@ -27,7 +27,7 @@ public class RootContextTests extends ContextModelTestCase
assertFalse(pr.exists());
- JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContext();
+ JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContextNode();
assertNull(baseJpaContent.getPersistenceXml());
baseJpaContent.addPersistenceXml();
@@ -46,7 +46,7 @@ public class RootContextTests extends ContextModelTestCase
}
public void testModifyRemovePersistenceXml() throws Exception {
- JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContext();
+ JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContextNode();
assertNotNull(baseJpaContent.getPersistenceXml());
@@ -72,7 +72,7 @@ public class RootContextTests extends ContextModelTestCase
assertFalse(pr.exists());
- JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContext();
+ JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContextNode();
assertNull(baseJpaContent.getPersistenceXml());
pr.getContents().add(PersistenceFactory.eINSTANCE.createXmlPersistence());
@@ -82,7 +82,7 @@ public class RootContextTests extends ContextModelTestCase
public void testUpdateRemovePersistenceXml() throws Exception {
PersistenceResource pr = persistenceResource();
- JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContext();
+ JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContextNode();
assertNotNull(baseJpaContent.getPersistenceXml());

Back to the top