Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2010-07-27 18:55:52 +0000
committerkmoore2010-07-27 18:55:52 +0000
commit4150fda15c5f63e3cf7852e7840189a1352355e3 (patch)
tree951ac6fea3e4996bfa52f07cb6a564d2be0da49a /jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context
parentf91f1da1682a7ba6ba4d39488f0cf98ba59617e6 (diff)
downloadwebtools.dali-4150fda15c5f63e3cf7852e7840189a1352355e3.tar.gz
webtools.dali-4150fda15c5f63e3cf7852e7840189a1352355e3.tar.xz
webtools.dali-4150fda15c5f63e3cf7852e7840189a1352355e3.zip
209489 - rename type refactoring participation
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaPersistentType.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractEntityMappings.java11
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmAttributeMapping.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java21
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMappedSuperclass.java23
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java34
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmPersistentAttribute.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java33
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmTypeMapping.java17
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdClassReference.java29
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractMappingFileRef.java7
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnit.java39
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnitProperties.java12
13 files changed, 238 insertions, 12 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaPersistentType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaPersistentType.java
index c3be5d891e..bc32d52603 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaPersistentType.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaPersistentType.java
@@ -632,6 +632,11 @@ public abstract class AbstractJavaPersistentType
// ********** misc **********
+ public boolean isFor(String typeName) {
+ String className = this.getName();
+ return className != null && className.equals(typeName);
+ }
+
public boolean isMapped() {
return this.mapping.isMapped();
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractEntityMappings.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractEntityMappings.java
index efabd0ad54..95dc7f6498 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractEntityMappings.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractEntityMappings.java
@@ -55,6 +55,7 @@ import org.eclipse.jpt.utility.internal.iterables.TransformationIterable;
import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
import org.eclipse.text.edits.DeleteEdit;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -828,6 +829,16 @@ public abstract class AbstractEntityMappings
);
}
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(final IType originalType, final String newName) {
+ return new CompositeIterable<ReplaceEdit>(
+ new TransformationIterable<OrmPersistentType, Iterable<ReplaceEdit>>(getPersistentTypes()) {
+ @Override
+ protected Iterable<ReplaceEdit> transform(OrmPersistentType persistentType) {
+ return persistentType.createReplaceTypeEdits(originalType, newName);
+ }
+ }
+ );
+ }
// ********** dispose **********
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 ed650203bb..ad10143e0b 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
@@ -13,6 +13,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.Column;
import org.eclipse.jpt.core.context.ColumnMapping;
@@ -50,8 +51,10 @@ import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.utility.internal.StringTools;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -345,6 +348,13 @@ public abstract class AbstractOrmAttributeMapping<T extends XmlAttributeMapping>
}
+ // ********** refactoring **********
+
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ return EmptyIterable.instance();
+ }
+
+
// ********** validation **********
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java
index e25a980363..725946ccda 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java
@@ -15,6 +15,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.JpaPlatformVariation.Supported;
import org.eclipse.jpt.core.context.AssociationOverride;
@@ -94,6 +95,7 @@ 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.TransformationIterator;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -1560,8 +1562,23 @@ public abstract class AbstractOrmEntity
public void removeFromResourceModel(XmlEntityMappings entityMappings) {
entityMappings.getEntities().remove(this.resourceTypeMapping);
}
-
-
+
+
+ //************************* refactoring ************************
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ return new CompositeIterable<ReplaceEdit>(
+ super.createReplaceTypeEdits(originalType, newName),
+ this.createIdClassReplaceTypeEdits(originalType, newName));
+ }
+
+ protected Iterable<ReplaceEdit> createIdClassReplaceTypeEdits(IType originalType, String newName) {
+ return this.idClassReference.createReplaceEdits(originalType, newName);
+ }
+
+
// **************** validation *********************************************
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMappedSuperclass.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMappedSuperclass.java
index bd30ea7c6b..cee2d7d566 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMappedSuperclass.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmMappedSuperclass.java
@@ -11,6 +11,7 @@ package org.eclipse.jpt.core.internal.context.orm;
import java.util.Iterator;
import java.util.List;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.Table;
import org.eclipse.jpt.core.context.java.JavaIdClassReference;
@@ -24,7 +25,9 @@ import org.eclipse.jpt.core.internal.context.PrimaryKeyValidator;
import org.eclipse.jpt.core.internal.jpa1.context.GenericMappedSuperclassPrimaryKeyValidator;
import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
import org.eclipse.jpt.core.resource.orm.XmlMappedSuperclass;
+import org.eclipse.jpt.utility.internal.iterables.CompositeIterable;
import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -126,7 +129,25 @@ public abstract class AbstractOrmMappedSuperclass extends AbstractOrmTypeMapping
super.update();
this.idClassReference.update(getJavaIdClassReferenceForDefaults());
}
-
+
+
+ //************************* refactoring ************************
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ return new CompositeIterable<ReplaceEdit>(
+ super.createReplaceTypeEdits(originalType, newName),
+ this.createIdClassReplaceTypeEdits(originalType, newName));
+ }
+
+ protected Iterable<ReplaceEdit> createIdClassReplaceTypeEdits(IType originalType, String newName) {
+ return this.idClassReference.createReplaceEdits(originalType, newName);
+ }
+
+
+ // **************** validation *********************************************
+
@Override
public void validate(List<IMessage> messages, IReporter reporter) {
super.validate(messages, reporter);
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 e460f4a76a..0bcd8e0a63 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.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.BaseColumn;
import org.eclipse.jpt.core.context.BaseOverride;
@@ -51,7 +52,11 @@ import org.eclipse.jpt.core.resource.orm.XmlColumn;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.db.Table;
import org.eclipse.jpt.utility.internal.StringTools;
+import org.eclipse.jpt.utility.internal.iterables.CompositeIterable;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
+import org.eclipse.jpt.utility.internal.iterables.SingleElementIterable;
import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -575,8 +580,33 @@ public abstract class AbstractOrmMultiRelationshipMapping<T extends AbstractXmlM
public String getMetamodelFieldMapKeyTypeName() {
return MappingTools.getMetamodelFieldMapKeyTypeName(this);
}
-
-
+
+
+ //************* refactoring *************
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ return new CompositeIterable<ReplaceEdit>(
+ super.createReplaceTypeEdits(originalType, newName),
+ this.createMapKeyClassReplaceTypeEdits(originalType, newName));
+ }
+
+ protected Iterable<ReplaceEdit> createMapKeyClassReplaceTypeEdits(IType originalType, String newName) {
+ if (this.specifiedMapKeyClass != null) {
+ String originalName = originalType.getFullyQualifiedName('.');
+ if (this.resolvedMapKeyType != null && this.resolvedMapKeyType.isFor(originalName)) {
+ return new SingleElementIterable<ReplaceEdit>(this.createReplaceMapKeyClassEdit(originalType, newName));
+ }
+ }
+ return EmptyIterable.instance();
+ }
+
+ protected ReplaceEdit createReplaceMapKeyClassEdit(IType originalType, String newName) {
+ return this.resourceAttributeMapping.createReplaceMapKeyClassEdit(originalType, newName);
+ }
+
+
// ********** validation **********
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmPersistentAttribute.java
index fb0eab8ee7..5a5e0a982b 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmPersistentAttribute.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmPersistentAttribute.java
@@ -10,6 +10,7 @@
package org.eclipse.jpt.core.internal.context.orm;
import java.util.List;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.JpaStructureNode;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AccessType;
@@ -27,6 +28,7 @@ import org.eclipse.jpt.core.jpa2.context.java.JavaPersistentAttribute2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmPersistentAttribute2_0;
import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -230,6 +232,13 @@ public abstract class AbstractOrmPersistentAttribute
}
+ // ********** refactoring **********
+
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ return this.attributeMapping.createReplaceTypeEdits(originalType, newName);
+ }
+
+
// ********** validation **********
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java
index 975ffef534..7405344df8 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java
@@ -11,6 +11,7 @@ package org.eclipse.jpt.core.internal.context.orm;
import java.util.Iterator;
import java.util.List;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.Entity;
import org.eclipse.jpt.core.context.FetchType;
@@ -29,9 +30,13 @@ import org.eclipse.jpt.core.jpa2.context.orm.OrmCascade2_0;
import org.eclipse.jpt.core.resource.orm.AbstractXmlRelationshipMapping;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.jpt.utility.internal.iterables.CompositeIterable;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
+import org.eclipse.jpt.utility.internal.iterables.SingleElementIterable;
import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -275,6 +280,34 @@ public abstract class AbstractOrmRelationshipMapping<T extends AbstractXmlRelati
return (this.resolvedTargetEntity == null) ? null : this.resolvedTargetEntity.getIdAttribute();
}
+
+ //************ refactoring ************
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ return new CompositeIterable<ReplaceEdit>(
+ super.createReplaceTypeEdits(originalType, newName),
+ this.createTargetEntityReplaceTypeEdits(originalType, newName));
+ }
+
+ protected Iterable<ReplaceEdit> createTargetEntityReplaceTypeEdits(IType originalType, String newName) {
+ if (this.specifiedTargetEntity != null) {
+ String originalName = originalType.getFullyQualifiedName('.');
+ if (this.resolvedTargetType != null && this.resolvedTargetType.isFor(originalName)) {
+ return new SingleElementIterable<ReplaceEdit>(this.createReplaceTargetEntityEdit(originalType, newName));
+ }
+ }
+ return EmptyIterable.instance();
+ }
+
+ protected ReplaceEdit createReplaceTargetEntityEdit(IType originalType, String newName) {
+ return this.resourceAttributeMapping.createReplaceTargetEntityEdit(originalType, newName);
+ }
+
+
+ //*********** validation ***********
+
@Override
public void validate(List<IMessage> messages, IReporter reporter) {
super.validate(messages, reporter);
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 c90b95eb1b..9583beda58 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
@@ -11,6 +11,7 @@ package org.eclipse.jpt.core.internal.context.orm;
import java.util.Iterator;
import java.util.List;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.JpaStructureNode;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.Column;
@@ -30,10 +31,13 @@ import org.eclipse.jpt.db.Schema;
import org.eclipse.jpt.db.Table;
import org.eclipse.jpt.utility.internal.CollectionTools;
import org.eclipse.jpt.utility.internal.StringTools;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
import org.eclipse.jpt.utility.internal.iterables.FilteringIterable;
+import org.eclipse.jpt.utility.internal.iterables.SingleElementIterable;
import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
import org.eclipse.text.edits.DeleteEdit;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -359,11 +363,22 @@ public abstract class AbstractOrmTypeMapping<T extends XmlTypeMapping>
//************************* refactoring ************************
-
+
public DeleteEdit createDeleteEdit() {
return this.resourceTypeMapping.createDeleteEdit();
}
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ if (getPersistentType().isFor(originalType.getFullyQualifiedName('.'))) {
+ return new SingleElementIterable<ReplaceEdit>(this.createReplaceTypeEdit(originalType, newName));
+ }
+ return EmptyIterable.instance();
+ }
+
+ protected ReplaceEdit createReplaceTypeEdit(IType originalType, String newName) {
+ return this.resourceTypeMapping.createReplaceTypeEdit(originalType, newName);
+ }
+
// ********** misc **********
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdClassReference.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdClassReference.java
index 5b9a999399..a963f4c851 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdClassReference.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmIdClassReference.java
@@ -11,6 +11,7 @@
package org.eclipse.jpt.core.internal.context.orm;
import java.util.List;
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.context.AccessType;
import org.eclipse.jpt.core.context.java.JavaIdClassReference;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
@@ -25,6 +26,9 @@ import org.eclipse.jpt.core.resource.orm.XmlClassReference;
import org.eclipse.jpt.core.resource.orm.XmlIdClassContainer;
import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
+import org.eclipse.jpt.utility.internal.iterables.SingleElementIterable;
+import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -207,8 +211,29 @@ public class GenericOrmIdClassReference
}
}
}
-
-
+
+
+ //************************* refactoring ************************
+
+ public Iterable<ReplaceEdit> createReplaceEdits(IType originalType, String newName) {
+ if (this.isFor(originalType.getFullyQualifiedName('.'))) {
+ return new SingleElementIterable<ReplaceEdit>(this.createReplaceEdit(originalType, newName));
+ }
+ return EmptyIterable.instance();
+ }
+
+ protected ReplaceEdit createReplaceEdit(IType originalType, String newName) {
+ return getIdXmlClassRef().createReplaceEdit(originalType, newName);
+ }
+
+ protected boolean isFor(String typeName) {
+ if (this.idClass != null && this.idClass.isFor(typeName)) {
+ return true;
+ }
+ return false;
+ }
+
+
// **************** validation ********************************************
public TextRange getValidationTextRange() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractMappingFileRef.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractMappingFileRef.java
index 2d4c57ef2d..f2f7fb1598 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractMappingFileRef.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractMappingFileRef.java
@@ -293,6 +293,13 @@ public abstract class AbstractMappingFileRef
return EmptyIterable.instance();
}
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ if (this.mappingFile != null) {
+ return this.mappingFile.createReplaceTypeEdits(originalType, newName);
+ }
+ return EmptyIterable.instance();
+ }
+
public Iterable<ReplaceEdit> createReplaceMappingFileEdits(IFile originalFile, String newName) {
if (this.isFor(originalFile)) {
return new SingleElementIterable<ReplaceEdit>(this.createReplaceEdit(originalFile, newName));
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnit.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnit.java
index 06bade806f..701d717c28 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnit.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnit.java
@@ -137,8 +137,8 @@ public abstract class AbstractPersistenceUnit
protected boolean defaultDelimitedIdentifiers;
//****** PersistenceUnit2_0 features
- private PersistenceUnitProperties connection;
- private PersistenceUnitProperties options;
+ protected PersistenceUnitProperties connection;
+ protected PersistenceUnitProperties options;
protected SharedCacheMode specifiedSharedCacheMode;
protected SharedCacheMode defaultSharedCacheMode;
@@ -967,6 +967,19 @@ public abstract class AbstractPersistenceUnit
return null;
}
+ public Iterable<Property> getPropertiesNamed(final String propertyName) {
+ if (propertyName == null) {
+ throw new NullPointerException();
+ }
+ return new FilteringIterable<Property>(CollectionTools.iterable(this.properties())) {
+ @Override
+ protected boolean accept(Property property) {
+ String pName = property.getName();
+ return (pName != null) && pName.equals(propertyName);
+ }
+ };
+ }
+
public Iterator<Property> propertiesWithNamePrefix(final String propertyNamePrefix) {
if (propertyNamePrefix == null) {
throw new NullPointerException();
@@ -1629,6 +1642,28 @@ public abstract class AbstractPersistenceUnit
);
}
+ @SuppressWarnings("unchecked")
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ return new CompositeIterable<ReplaceEdit>(
+ createSpecifiedClassRefReplaceTypeEdits(originalType, newName),
+ createPersistenceUnitPropertiesReplaceTypeEdits(originalType, newName));
+ }
+
+ protected Iterable<ReplaceEdit> createSpecifiedClassRefReplaceTypeEdits(final IType originalType, final String newName) {
+ return new CompositeIterable<ReplaceEdit>(
+ new TransformationIterable<ClassRef, Iterable<ReplaceEdit>>(getSpecifiedClassRefs()) {
+ @Override
+ protected Iterable<ReplaceEdit> transform(ClassRef classRef) {
+ return classRef.createReplaceTypeEdits(originalType, newName);
+ }
+ }
+ );
+ }
+
+ protected Iterable<ReplaceEdit> createPersistenceUnitPropertiesReplaceTypeEdits(IType originalType, String newName) {
+ return this.options.createReplaceTypeEdits(originalType, newName);
+ }
+
public Iterable<ReplaceEdit> createReplaceMappingFileEdits(final IFile originalFile, final String newName) {
return new CompositeIterable<ReplaceEdit>(
new TransformationIterable<MappingFileRef, Iterable<ReplaceEdit>>(getMappingFileRefs()) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnitProperties.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnitProperties.java
index 0fe0ea4cd0..55b72fc134 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnitProperties.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/persistence/AbstractPersistenceUnitProperties.java
@@ -14,13 +14,15 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-
+import org.eclipse.jdt.core.IType;
import org.eclipse.jpt.core.JpaProject;
import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
import org.eclipse.jpt.core.context.persistence.PersistenceUnitProperties;
import org.eclipse.jpt.utility.internal.ReflectionTools;
import org.eclipse.jpt.utility.internal.StringTools;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
import org.eclipse.jpt.utility.internal.model.AbstractModel;
+import org.eclipse.text.edits.ReplaceEdit;
/**
* AbstractPersistenceUnitProperties
@@ -508,5 +510,11 @@ public abstract class AbstractPersistenceUnitProperties extends AbstractModel
sb.deleteCharAt(sb.length() - 1); // remove the last delimiter
return sb.toString();
}
-
+
+
+ // ********** refactoring ************
+
+ public Iterable<ReplaceEdit> createReplaceTypeEdits(IType originalType, String newName) {
+ return EmptyIterable.instance();
+ }
}

Back to the top