diff options
13 files changed, 169 insertions, 233 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkConverter.java index 6e07569c49..8f6c193e9d 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkConverter.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkConverter.java @@ -41,15 +41,4 @@ public interface EclipseLinkConverter extends JpaContextNode String getName(); void setName(String name); String NAME_PROPERTY = "nameProperty"; //$NON-NLS-1$ - - /** - * Remove the EclipseLinkNamedConverter from the resource model - */ - void removeFromResourceModel(); - - /** - * Add the appropriate EclipseLinkNamedConverter to the resource model - */ - void addToResourceModel(); - } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaConverter.java index cf28bcbce7..b5102e4f47 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaConverter.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaConverter.java @@ -31,4 +31,6 @@ public interface EclipseLinkJavaConverter extends EclipseLinkConverter, JavaJpaC * resource model object. see {@link org.eclipse.jpt.core.JpaProject#update()} */ void update(JavaResourcePersistentMember jrpm); + + String getAnnotationName(); } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java index 032d2a2d4c..4865b1e095 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java @@ -59,7 +59,7 @@ public class EclipseLinkJavaConvert extends AbstractJavaJpaContextNode implement public void removeFromResourceModel() { this.resourcePersistentAttribute.removeSupportingAnnotation(getAnnotationName()); if (getConverter() != null) { - getConverter().removeFromResourceModel(); + this.resourcePersistentAttribute.removeSupportingAnnotation(getConverter().getAnnotationName()); } } @@ -115,11 +115,11 @@ public class EclipseLinkJavaConvert extends AbstractJavaJpaContextNode implement EclipseLinkJavaConverter newConverter = buildConverter(converterType); this.converter = null; if (oldConverter != null) { - oldConverter.removeFromResourceModel(); + this.resourcePersistentAttribute.removeSupportingAnnotation(oldConverter.getAnnotationName()); } this.converter = newConverter; if (newConverter != null) { - newConverter.addToResourceModel(); + this.resourcePersistentAttribute.addSupportingAnnotation(newConverter.getAnnotationName()); } firePropertyChanged(CONVERTER_PROPERTY, oldConverter, newConverter); } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterHolder.java index fec29d331e..039d092242 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterHolder.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterHolder.java @@ -49,7 +49,7 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i throw new IllegalStateException("converter already exists"); //$NON-NLS-1$ } this.converter = new EclipseLinkJavaConverterImpl(this, this.resourcePersistentType); - this.addResourceConverter(); + this.resourcePersistentType.addSupportingAnnotation(this.converter.getAnnotationName()); firePropertyChanged(CONVERTER_PROPERTY, null, this.converter); return this.converter; } @@ -63,9 +63,9 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i if (this.converter == null) { throw new IllegalStateException("converter is null"); //$NON-NLS-1$ } - Converter oldConverter = this.converter; + EclipseLinkJavaConverterImpl oldConverter = this.converter; this.converter = null; - removeResourceConverter(); + this.resourcePersistentType.removeSupportingAnnotation(oldConverter.getAnnotationName()); firePropertyChanged(CONVERTER_PROPERTY, oldConverter, null); } @@ -82,14 +82,6 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i return (ConverterAnnotation) this.resourcePersistentType.getSupportingAnnotation(getConverterAnnotationName()); } - protected void removeResourceConverter() { - this.resourcePersistentType.removeSupportingAnnotation(getConverterAnnotationName()); - } - - protected void addResourceConverter() { - this.resourcePersistentType.addSupportingAnnotation(getConverterAnnotationName()); - } - //************** object type converter ************* public ObjectTypeConverter getObjectTypeConverter() { @@ -101,7 +93,7 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i throw new IllegalStateException("object type converter already exists"); //$NON-NLS-1$ } this.objectTypeConverter = new EclipseLinkJavaObjectTypeConverter(this, this.resourcePersistentType); - this.addResourceObjectTypeConverter(); + this.resourcePersistentType.addSupportingAnnotation(this.objectTypeConverter.getAnnotationName()); firePropertyChanged(OBJECT_TYPE_CONVERTER_PROPERTY, null, this.objectTypeConverter); return this.objectTypeConverter; } @@ -115,9 +107,9 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i if (this.objectTypeConverter == null) { throw new IllegalStateException("object type converter is null"); //$NON-NLS-1$ } - ObjectTypeConverter oldConverter = this.objectTypeConverter; + EclipseLinkJavaObjectTypeConverter oldConverter = this.objectTypeConverter; this.objectTypeConverter = null; - removeResourceObjectTypeConverter(); + this.resourcePersistentType.removeSupportingAnnotation(oldConverter.getAnnotationName()); firePropertyChanged(OBJECT_TYPE_CONVERTER_PROPERTY, oldConverter, null); } @@ -135,14 +127,6 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i return (ObjectTypeConverterAnnotation) this.resourcePersistentType.getSupportingAnnotation(getObjectTypeConverterAnnotationName()); } - protected void removeResourceObjectTypeConverter() { - this.resourcePersistentType.removeSupportingAnnotation(getObjectTypeConverterAnnotationName()); - } - - protected void addResourceObjectTypeConverter() { - this.resourcePersistentType.addSupportingAnnotation(getObjectTypeConverterAnnotationName()); - } - //************** type converter ************* public TypeConverter getTypeConverter() { @@ -154,7 +138,7 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i throw new IllegalStateException("type converter already exists"); //$NON-NLS-1$ } this.typeConverter = new EclipseLinkJavaTypeConverter(this, this.resourcePersistentType); - this.addResourceTypeConverter(); + this.resourcePersistentType.addSupportingAnnotation(this.typeConverter.getAnnotationName()); firePropertyChanged(TYPE_CONVERTER_PROPERTY, null, this.typeConverter); return this.typeConverter; } @@ -168,9 +152,9 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i if (this.typeConverter == null) { throw new IllegalStateException("type converter is null"); //$NON-NLS-1$ } - TypeConverter oldConverter = this.typeConverter; + EclipseLinkJavaTypeConverter oldConverter = this.typeConverter; this.typeConverter = null; - removeResourceTypeConverter(); + this.resourcePersistentType.removeSupportingAnnotation(oldConverter.getAnnotationName()); firePropertyChanged(TYPE_CONVERTER_PROPERTY, oldConverter, null); } @@ -188,14 +172,6 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i return (TypeConverterAnnotation) this.resourcePersistentType.getSupportingAnnotation(getTypeConverterAnnotationName()); } - protected void removeResourceTypeConverter() { - this.resourcePersistentType.removeSupportingAnnotation(getTypeConverterAnnotationName()); - } - - protected void addResourceTypeConverter() { - this.resourcePersistentType.addSupportingAnnotation(getTypeConverterAnnotationName()); - } - //************** struct converter ************* public StructConverter getStructConverter() { @@ -207,7 +183,7 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i throw new IllegalStateException("struct converter already exists"); //$NON-NLS-1$ } this.structConverter = new EclipseLinkJavaStructConverter(this, this.resourcePersistentType); - this.addResourceStructConverter(); + this.resourcePersistentType.addSupportingAnnotation(this.structConverter.getAnnotationName()); firePropertyChanged(STRUCT_CONVERTER_PROPERTY, null, this.structConverter); return this.structConverter; } @@ -221,9 +197,9 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i if (this.structConverter == null) { throw new IllegalStateException("struct converter is null"); //$NON-NLS-1$ } - StructConverter oldConverter = this.structConverter; + EclipseLinkJavaStructConverter oldConverter = this.structConverter; this.structConverter = null; - removeResourceStructConverter(); + this.resourcePersistentType.removeSupportingAnnotation(oldConverter.getAnnotationName()); firePropertyChanged(STRUCT_CONVERTER_PROPERTY, oldConverter, null); } @@ -241,14 +217,6 @@ public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode i return (StructConverterAnnotation) this.resourcePersistentType.getSupportingAnnotation(getStructConverterAnnotationName()); } - protected void removeResourceStructConverter() { - this.resourcePersistentType.removeSupportingAnnotation(getStructConverterAnnotationName()); - } - - protected void addResourceStructConverter() { - this.resourcePersistentType.addSupportingAnnotation(getStructConverterAnnotationName()); - } - public void update(JavaResourcePersistentType jrpt) { this.resourcePersistentType = jrpt; this.updateConverter(); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterImpl.java index d5bd16fcd4..93cf707777 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterImpl.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterImpl.java @@ -40,17 +40,9 @@ public class EclipseLinkJavaConverterImpl extends AbstractJavaJpaContextNode imp return EclipseLinkConverter.CONVERTER; } - protected String getAnnotationName() { + public String getAnnotationName() { return ConverterAnnotation.ANNOTATION_NAME; } - - public void addToResourceModel() { - this.resourcePersistentMember.addSupportingAnnotation(getAnnotationName()); - } - - public void removeFromResourceModel() { - this.resourcePersistentMember.removeSupportingAnnotation(getAnnotationName()); - } public TextRange getValidationTextRange(CompilationUnit astRoot) { return getResourceConverter().getTextRange(astRoot); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaObjectTypeConverter.java index 27f5fa65a8..d99826c050 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaObjectTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaObjectTypeConverter.java @@ -53,17 +53,9 @@ public class EclipseLinkJavaObjectTypeConverter extends AbstractJavaJpaContextNo return EclipseLinkConverter.OBJECT_TYPE_CONVERTER; } - protected String getAnnotationName() { + public String getAnnotationName() { return ObjectTypeConverterAnnotation.ANNOTATION_NAME; } - - public void addToResourceModel() { - this.resourcePersistentMember.addSupportingAnnotation(getAnnotationName()); - } - - public void removeFromResourceModel() { - this.resourcePersistentMember.removeSupportingAnnotation(getAnnotationName()); - } public TextRange getValidationTextRange(CompilationUnit astRoot) { return getResourceConverter().getTextRange(astRoot); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaStructConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaStructConverter.java index c778c02215..4bd61f9865 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaStructConverter.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaStructConverter.java @@ -36,17 +36,9 @@ public class EclipseLinkJavaStructConverter extends AbstractJavaJpaContextNode i return EclipseLinkConverter.STRUCT_CONVERTER; } - protected String getAnnotationName() { + public String getAnnotationName() { return StructConverterAnnotation.ANNOTATION_NAME; } - - public void addToResourceModel() { - this.resourcePersistentMember.addSupportingAnnotation(getAnnotationName()); - } - - public void removeFromResourceModel() { - this.resourcePersistentMember.removeSupportingAnnotation(getAnnotationName()); - } public TextRange getValidationTextRange(CompilationUnit astRoot) { return getResourceConverter().getTextRange(astRoot); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaTypeConverter.java index 90ec2f37ca..8e25f8a3d5 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaTypeConverter.java @@ -38,17 +38,9 @@ public class EclipseLinkJavaTypeConverter extends AbstractJavaJpaContextNode imp return EclipseLinkConverter.TYPE_CONVERTER; } - protected String getAnnotationName() { + public String getAnnotationName() { return TypeConverterAnnotation.ANNOTATION_NAME; } - - public void addToResourceModel() { - this.resourcePersistentMember.addSupportingAnnotation(getAnnotationName()); - } - - public void removeFromResourceModel() { - this.resourcePersistentMember.removeSupportingAnnotation(getAnnotationName()); - } public TextRange getValidationTextRange(CompilationUnit astRoot) { return getResourceConverter().getTextRange(astRoot); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConvert.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConvert.java index 9138bbc030..fc59c7b91b 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConvert.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConvert.java @@ -13,10 +13,16 @@ import java.util.List; import org.eclipse.jpt.core.context.orm.OrmAttributeMapping; import org.eclipse.jpt.core.context.orm.OrmConverter; import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode; +import org.eclipse.jpt.core.resource.common.JpaEObject; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.jpt.eclipselink.core.context.Convert; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter; +import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory; +import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping; +import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter; +import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter; +import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter; import org.eclipse.wst.validation.internal.provisional.core.IMessage; public class EclipseLinkOrmConvert extends AbstractXmlContextNode implements Convert, OrmConverter @@ -94,18 +100,86 @@ public class EclipseLinkOrmConvert extends AbstractXmlContextNode implements Con return; } EclipseLinkOrmConverter oldConverter = this.converter; - EclipseLinkOrmConverter newConverter = buildConverter(converterType); - this.converter = null; if (oldConverter != null) { - oldConverter.removeFromResourceModel(); + this.converter = null; //set to null now to avoid update triggering events + removeConverter(oldConverter.getType()); } + JpaEObject resourceConverter = buildResourceConverter(converterType); + EclipseLinkOrmConverter newConverter = buildConverter(converterType, resourceConverter); this.converter = newConverter; if (newConverter != null) { - newConverter.addToResourceModel(); + addConverter(converterType, resourceConverter); } firePropertyChanged(CONVERTER_PROPERTY, oldConverter, newConverter); } + + //TODO yes, i know, many if/else type checks in the methods below. + //will look at factoring this out when I have time after M3! Also EclipseLinkJavaConvert + protected void removeConverter(String converterType) { + if (converterType == EclipseLinkConverter.CONVERTER) { + this.resourceMapping.setConverter(null); + } + else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) { + this.resourceMapping.setTypeConverter(null); + } + else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) { + this.resourceMapping.setObjectTypeConverter(null); + } + else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) { + this.resourceMapping.setStructConverter(null); + } + } + protected JpaEObject buildResourceConverter(String converterType) { + if (converterType == EclipseLinkConverter.CONVERTER) { + return EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl(); + } + else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) { + return EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl(); + } + else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) { + return EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl(); + } + else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) { + return EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl(); + } + return null; + } + + protected void addConverter(String converterType, JpaEObject resourceConverter) { + if (converterType == EclipseLinkConverter.CONVERTER) { + this.resourceMapping.setConverter((XmlConverter) resourceConverter); + } + else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) { + this.resourceMapping.setTypeConverter((XmlTypeConverter) resourceConverter); + } + else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) { + this.resourceMapping.setObjectTypeConverter((XmlObjectTypeConverter) resourceConverter); + } + else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) { + this.resourceMapping.setStructConverter((XmlStructConverter) resourceConverter); + } + } + + protected EclipseLinkOrmConverter buildConverter(String converterType, JpaEObject resourceConverter) { + if (converterType == EclipseLinkConverter.NO_CONVERTER) { + return null; + } + if (converterType == EclipseLinkConverter.CONVERTER) { + return new EclipseLinkOrmConverterImpl(this, (XmlConverter) resourceConverter); + } + else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) { + return new EclipseLinkOrmTypeConverter(this, (XmlTypeConverter) resourceConverter); + } + else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) { + return new EclipseLinkOrmObjectTypeConverter(this, (XmlObjectTypeConverter) resourceConverter); + } + else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) { + return new EclipseLinkOrmStructConverter(this, (XmlStructConverter) resourceConverter); + } + return null; + } + protected void setConverter(EclipseLinkOrmConverter newConverter) { EclipseLinkOrmConverter oldConverter = this.converter; this.converter = newConverter; @@ -115,7 +189,7 @@ public class EclipseLinkOrmConvert extends AbstractXmlContextNode implements Con protected void initialize(XmlConvertibleMapping resourceMapping) { this.resourceMapping = resourceMapping; this.specifiedConverterName = this.specifiedConverterName(); - this.converter = this.buildConverter(this.converterType()); + this.converter = this.buildConverter(); } public void update() { @@ -124,8 +198,7 @@ public class EclipseLinkOrmConvert extends AbstractXmlContextNode implements Con this.converter.update(); } else { - EclipseLinkOrmConverter javaConverter = buildConverter(converterType()); - setConverter(javaConverter); + setConverter(buildConverter()); } } @@ -133,43 +206,40 @@ public class EclipseLinkOrmConvert extends AbstractXmlContextNode implements Con return this.resourceMapping == null ? null : this.resourceMapping.getConvert(); } - - protected EclipseLinkOrmConverter buildConverter(String converterType) { - if (converterType == EclipseLinkConverter.NO_CONVERTER) { - return null; - } - if (converterType == EclipseLinkConverter.CONVERTER) { - return new EclipseLinkOrmConverterImpl(this, this.resourceMapping); + protected String converterType() { + if (this.resourceMapping.getConverter() != null) { + return EclipseLinkConverter.CONVERTER; } - else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) { - return new EclipseLinkOrmTypeConverter(this, this.resourceMapping); + else if (this.resourceMapping.getTypeConverter() != null) { + return EclipseLinkConverter.TYPE_CONVERTER; } - else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) { - return new EclipseLinkOrmObjectTypeConverter(this, this.resourceMapping); + else if (this.resourceMapping.getObjectTypeConverter() != null) { + return EclipseLinkConverter.OBJECT_TYPE_CONVERTER; } - else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) { - return new EclipseLinkOrmStructConverter(this, this.resourceMapping); + else if (this.resourceMapping.getStructConverter() != null) { + return EclipseLinkConverter.STRUCT_CONVERTER; } + return null; } - - protected String converterType() { + protected EclipseLinkOrmConverter buildConverter() { if (this.resourceMapping.getConverter() != null) { - return EclipseLinkConverter.CONVERTER; + return new EclipseLinkOrmConverterImpl(this, this.resourceMapping.getConverter()); } else if (this.resourceMapping.getTypeConverter() != null) { - return EclipseLinkConverter.TYPE_CONVERTER; + return new EclipseLinkOrmTypeConverter(this, this.resourceMapping.getTypeConverter()); } else if (this.resourceMapping.getObjectTypeConverter() != null) { - return EclipseLinkConverter.OBJECT_TYPE_CONVERTER; + return new EclipseLinkOrmObjectTypeConverter(this, this.resourceMapping.getObjectTypeConverter()); } else if (this.resourceMapping.getStructConverter() != null) { - return EclipseLinkConverter.STRUCT_CONVERTER; + return new EclipseLinkOrmStructConverter(this, this.resourceMapping.getStructConverter()); } return null; } + @Override public void validate(List<IMessage> messages) { super.validate(messages); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverterImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverterImpl.java index 95e118356a..7c0ecc5ed8 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverterImpl.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverterImpl.java @@ -15,39 +15,25 @@ import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.jpt.eclipselink.core.context.Converter; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter; -import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter; -import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping; import org.eclipse.wst.validation.internal.provisional.core.IMessage; public class EclipseLinkOrmConverterImpl extends AbstractXmlContextNode implements Converter, EclipseLinkOrmConverter { - private XmlConvertibleMapping resourceMapping; + private XmlConverter resourceConverter; private String name; private String converterClass; - public EclipseLinkOrmConverterImpl(XmlContextNode parent, XmlConvertibleMapping resourceMapping) { + public EclipseLinkOrmConverterImpl(XmlContextNode parent, XmlConverter resourceConverter) { super(parent); - this.initialize(resourceMapping); + this.initialize(resourceConverter); } public String getType() { return EclipseLinkConverter.CONVERTER; } - - public void addToResourceModel() { - this.resourceMapping.setConverter(EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl()); - } - - public void removeFromResourceModel() { - this.resourceMapping.setConverter(null); - } - - protected XmlConverter getResourceConverter() { - return this.resourceMapping.getConverter(); - } public String getConverterClass() { return this.converterClass; @@ -56,7 +42,7 @@ public class EclipseLinkOrmConverterImpl extends AbstractXmlContextNode implemen public void setConverterClass(String newConverterClass) { String oldConverterClass = this.converterClass; this.converterClass = newConverterClass; - getResourceConverter().setClassName(newConverterClass); + this.resourceConverter.setClassName(newConverterClass); firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass); } @@ -73,7 +59,7 @@ public class EclipseLinkOrmConverterImpl extends AbstractXmlContextNode implemen public void setName(String newName) { String oldName = this.name; this.name = newName; - getResourceConverter().setName(newName); + this.resourceConverter.setName(newName); firePropertyChanged(NAME_PROPERTY, oldName, newName); } @@ -83,8 +69,8 @@ public class EclipseLinkOrmConverterImpl extends AbstractXmlContextNode implemen firePropertyChanged(NAME_PROPERTY, oldName, newName); } - protected void initialize(XmlConvertibleMapping resourceMapping) { - this.resourceMapping = resourceMapping; + protected void initialize(XmlConverter resourceConverter) { + this.resourceConverter = resourceConverter; this.name = this.name(); this.converterClass = this.converterClass(); } @@ -95,11 +81,11 @@ public class EclipseLinkOrmConverterImpl extends AbstractXmlContextNode implemen } protected String name() { - return getResourceConverter() == null ? null : getResourceConverter().getName(); + return this.resourceConverter.getName(); } protected String converterClass() { - return getResourceConverter() == null ? null : getResourceConverter().getClassName(); + return this.resourceConverter.getClassName(); } //************ validation *************** @@ -129,7 +115,6 @@ public class EclipseLinkOrmConverterImpl extends AbstractXmlContextNode implemen // } public TextRange getValidationTextRange() { - return getResourceConverter().getValidationTextRange(); + return this.resourceConverter.getValidationTextRange(); } - } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmObjectTypeConverter.java index 214f43e6e7..d8d0976340 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmObjectTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmObjectTypeConverter.java @@ -21,7 +21,6 @@ import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter; import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter; import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue; -import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter; import org.eclipse.jpt.utility.internal.CollectionTools; import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; @@ -30,7 +29,7 @@ import org.eclipse.wst.validation.internal.provisional.core.IMessage; public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode implements ObjectTypeConverter, EclipseLinkOrmConverter { - private XmlConvertibleMapping resourceMapping; + private XmlObjectTypeConverter resourceConverter; private String name; @@ -42,27 +41,15 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im private final List<EclipseLinkOrmConversionValue> conversionValues; - public EclipseLinkOrmObjectTypeConverter(XmlContextNode parent, XmlConvertibleMapping resourceMapping) { + public EclipseLinkOrmObjectTypeConverter(XmlContextNode parent, XmlObjectTypeConverter resourceConverter) { super(parent); this.conversionValues = new ArrayList<EclipseLinkOrmConversionValue>(); - this.initialize(resourceMapping); + this.initialize(resourceConverter); } public String getType() { return EclipseLinkConverter.OBJECT_TYPE_CONVERTER; } - - public void addToResourceModel() { - this.resourceMapping.setObjectTypeConverter(EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl()); - } - - public void removeFromResourceModel() { - this.resourceMapping.setObjectTypeConverter(null); - } - - protected XmlObjectTypeConverter getResourceConverter() { - return this.resourceMapping.getObjectTypeConverter(); - } public String getName() { return this.name; @@ -71,7 +58,7 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im public void setName(String newName) { String oldName = this.name; this.name = newName; - getResourceConverter().setName(newName); + this.resourceConverter.setName(newName); firePropertyChanged(NAME_PROPERTY, oldName, newName); } @@ -88,7 +75,7 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im public void setDataType(String newDataType) { String oldDataType = this.dataType; this.dataType = newDataType; - getResourceConverter().setDataType(newDataType); + this.resourceConverter.setDataType(newDataType); firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType); } @@ -105,7 +92,7 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im public void setObjectType(String newObjectType) { String oldObjectType = this.objectType; this.objectType = newObjectType; - getResourceConverter().setObjectType(newObjectType); + this.resourceConverter.setObjectType(newObjectType); firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType); } @@ -127,7 +114,7 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im XmlConversionValue resourceConversionValue = EclipseLinkOrmFactory.eINSTANCE.createXmlConversionValueImpl(); EclipseLinkOrmConversionValue contextConversionValue = buildConversionValue(resourceConversionValue); this.conversionValues.add(index, contextConversionValue); - this.getResourceConverter().getConversionValues().add(index, resourceConversionValue); + this.resourceConverter.getConversionValues().add(index, resourceConversionValue); this.fireItemAdded(CONVERSION_VALUES_LIST, index, contextConversionValue); return contextConversionValue; } @@ -146,7 +133,7 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im public void removeConversionValue(int index) { EclipseLinkOrmConversionValue removedJoinColumn = this.conversionValues.remove(index); - this.getResourceConverter().getConversionValues().remove(index); + this.resourceConverter.getConversionValues().remove(index); fireItemRemoved(CONVERSION_VALUES_LIST, index, removedJoinColumn); } @@ -160,7 +147,7 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im public void moveConversionValue(int targetIndex, int sourceIndex) { CollectionTools.move(this.conversionValues, targetIndex, sourceIndex); - this.getResourceConverter().getConversionValues().move(targetIndex, sourceIndex); + this.resourceConverter.getConversionValues().move(targetIndex, sourceIndex); fireItemMoved(CONVERSION_VALUES_LIST, targetIndex, sourceIndex); } @@ -180,7 +167,7 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im public void setDefaultObjectValue(String newDefaultObjectValue) { String oldDefaultObjectValue = this.defaultObjectValue; this.defaultObjectValue = newDefaultObjectValue; - getResourceConverter().setDefaultObjectValue(newDefaultObjectValue); + this.resourceConverter.setDefaultObjectValue(newDefaultObjectValue); firePropertyChanged(DEFAULT_OBJECT_VALUE_PROPERTY, oldDefaultObjectValue, newDefaultObjectValue); } @@ -191,8 +178,8 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im } - protected void initialize(XmlConvertibleMapping resourceMapping) { - this.resourceMapping = resourceMapping; + protected void initialize(XmlObjectTypeConverter resourceConverter) { + this.resourceConverter = resourceConverter; this.name = this.name(); this.dataType = this.dataType(); this.objectType = this.objectType(); @@ -200,12 +187,8 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im this.initializeConversionValues(); } - protected void initializeConversionValues() { - if (getResourceConverter() == null) { - return; - } - - for (XmlConversionValue resourceConversionValue : getResourceConverter().getConversionValues()) { + protected void initializeConversionValues() { + for (XmlConversionValue resourceConversionValue : this.resourceConverter.getConversionValues()) { this.conversionValues.add(buildConversionValue(resourceConversionValue)); } } @@ -220,7 +203,7 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im protected void updateConversionValues( ) { ListIterator<EclipseLinkOrmConversionValue> contextConversionValues = conversionValues(); - ListIterator<XmlConversionValue> resourceConversionValues = new CloneListIterator<XmlConversionValue>(getResourceConverter().getConversionValues());//prevent ConcurrentModificiationException + ListIterator<XmlConversionValue> resourceConversionValues = new CloneListIterator<XmlConversionValue>(this.resourceConverter.getConversionValues());//prevent ConcurrentModificiationException while (contextConversionValues.hasNext()) { EclipseLinkOrmConversionValue conversionValues = contextConversionValues.next(); if (resourceConversionValues.hasNext()) { @@ -243,23 +226,23 @@ public class EclipseLinkOrmObjectTypeConverter extends AbstractXmlContextNode im } protected String name() { - return getResourceConverter() == null ? null : getResourceConverter().getName(); + return this.resourceConverter.getName(); } protected String dataType() { - return getResourceConverter() == null ? null : getResourceConverter().getDataType(); + return this.resourceConverter.getDataType(); } protected String objectType() { - return getResourceConverter() == null ? null : getResourceConverter().getObjectType(); + return this.resourceConverter.getObjectType(); } protected String defaultObjectValue() { - return getResourceConverter() == null ? null : getResourceConverter().getDefaultObjectValue(); + return this.resourceConverter.getDefaultObjectValue(); } public TextRange getValidationTextRange() { - return getResourceConverter().getValidationTextRange(); + return this.resourceConverter.getValidationTextRange(); } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmStructConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmStructConverter.java index 62f0cb9d50..1ba1845480 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmStructConverter.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmStructConverter.java @@ -15,39 +15,25 @@ import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter; import org.eclipse.jpt.eclipselink.core.context.StructConverter; -import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory; -import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter; import org.eclipse.wst.validation.internal.provisional.core.IMessage; public class EclipseLinkOrmStructConverter extends AbstractXmlContextNode implements StructConverter, EclipseLinkOrmConverter { - private XmlConvertibleMapping resourceMapping; + private XmlStructConverter resourceConverter; private String name; private String converterClass; - public EclipseLinkOrmStructConverter(XmlContextNode parent, XmlConvertibleMapping resourceMapping) { + public EclipseLinkOrmStructConverter(XmlContextNode parent, XmlStructConverter resourceConverter) { super(parent); - this.initialize(resourceMapping); + this.initialize(resourceConverter); } public String getType() { return EclipseLinkConverter.STRUCT_CONVERTER; } - - public void addToResourceModel() { - this.resourceMapping.setStructConverter(EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl()); - } - - public void removeFromResourceModel() { - this.resourceMapping.setStructConverter(null); - } - - protected XmlStructConverter getResourceConverter() { - return this.resourceMapping.getStructConverter(); - } public String getConverterClass() { return this.converterClass; @@ -56,7 +42,7 @@ public class EclipseLinkOrmStructConverter extends AbstractXmlContextNode implem public void setConverterClass(String newConverterClass) { String oldConverterClass = this.converterClass; this.converterClass = newConverterClass; - getResourceConverter().setConverter(newConverterClass); + this.resourceConverter.setConverter(newConverterClass); firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass); } @@ -73,7 +59,7 @@ public class EclipseLinkOrmStructConverter extends AbstractXmlContextNode implem public void setName(String newName) { String oldName = this.name; this.name = newName; - getResourceConverter().setName(newName); + this.resourceConverter.setName(newName); firePropertyChanged(NAME_PROPERTY, oldName, newName); } @@ -83,8 +69,8 @@ public class EclipseLinkOrmStructConverter extends AbstractXmlContextNode implem firePropertyChanged(NAME_PROPERTY, oldName, newName); } - protected void initialize(XmlConvertibleMapping resourceMapping) { - this.resourceMapping = resourceMapping; + protected void initialize(XmlStructConverter resourceConverter) { + this.resourceConverter = resourceConverter; this.name = this.name(); this.converterClass = this.converterClass(); } @@ -95,11 +81,11 @@ public class EclipseLinkOrmStructConverter extends AbstractXmlContextNode implem } protected String name() { - return getResourceConverter() == null ? null : getResourceConverter().getName(); + return this.resourceConverter.getName(); } protected String converterClass() { - return getResourceConverter() == null ? null : getResourceConverter().getConverter(); + return this.resourceConverter.getConverter(); } //************ validation *************** @@ -129,7 +115,6 @@ public class EclipseLinkOrmStructConverter extends AbstractXmlContextNode implem // } public TextRange getValidationTextRange() { - return getResourceConverter().getValidationTextRange(); + return this.resourceConverter.getValidationTextRange(); } - } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmTypeConverter.java index d6b350f94e..e1dc1d5793 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmTypeConverter.java @@ -14,13 +14,11 @@ import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter; import org.eclipse.jpt.eclipselink.core.context.TypeConverter; -import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory; -import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping; import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter; public class EclipseLinkOrmTypeConverter extends AbstractXmlContextNode implements TypeConverter, EclipseLinkOrmConverter { - private XmlConvertibleMapping resourceMapping; + private XmlTypeConverter resourceConverter; private String name; @@ -28,27 +26,15 @@ public class EclipseLinkOrmTypeConverter extends AbstractXmlContextNode implemen private String objectType; - public EclipseLinkOrmTypeConverter(XmlContextNode parent, XmlConvertibleMapping resourceMapping) { + public EclipseLinkOrmTypeConverter(XmlContextNode parent, XmlTypeConverter resourceConverter) { super(parent); - this.initialize(resourceMapping); + this.initialize(resourceConverter); } public String getType() { return EclipseLinkConverter.TYPE_CONVERTER; } - - public void addToResourceModel() { - this.resourceMapping.setTypeConverter(EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl()); - } - public void removeFromResourceModel() { - this.resourceMapping.setTypeConverter(null); - } - - protected XmlTypeConverter getResourceConverter() { - return this.resourceMapping.getTypeConverter(); - } - public String getName() { return this.name; } @@ -56,7 +42,7 @@ public class EclipseLinkOrmTypeConverter extends AbstractXmlContextNode implemen public void setName(String newName) { String oldName = this.name; this.name = newName; - getResourceConverter().setName(newName); + this.resourceConverter.setName(newName); firePropertyChanged(NAME_PROPERTY, oldName, newName); } @@ -73,7 +59,7 @@ public class EclipseLinkOrmTypeConverter extends AbstractXmlContextNode implemen public void setDataType(String newDataType) { String oldDataType = this.dataType; this.dataType = newDataType; - getResourceConverter().setDataType(newDataType); + this.resourceConverter.setDataType(newDataType); firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType); } @@ -90,7 +76,7 @@ public class EclipseLinkOrmTypeConverter extends AbstractXmlContextNode implemen public void setObjectType(String newObjectType) { String oldObjectType = this.objectType; this.objectType = newObjectType; - getResourceConverter().setObjectType(newObjectType); + this.resourceConverter.setObjectType(newObjectType); firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType); } @@ -100,8 +86,8 @@ public class EclipseLinkOrmTypeConverter extends AbstractXmlContextNode implemen firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType); } - protected void initialize(XmlConvertibleMapping resourceMapping) { - this.resourceMapping = resourceMapping; + protected void initialize(XmlTypeConverter resourceConverter) { + this.resourceConverter = resourceConverter; this.name = this.name(); this.dataType = this.dataType(); this.objectType = this.objectType(); @@ -114,18 +100,18 @@ public class EclipseLinkOrmTypeConverter extends AbstractXmlContextNode implemen } protected String name() { - return getResourceConverter() == null ? null : getResourceConverter().getName(); + return this.resourceConverter.getName(); } protected String dataType() { - return getResourceConverter() == null ? null : getResourceConverter().getDataType(); + return this.resourceConverter.getDataType(); } protected String objectType() { - return getResourceConverter() == null ? null : getResourceConverter().getObjectType(); + return this.resourceConverter.getObjectType(); } public TextRange getValidationTextRange() { - return getResourceConverter().getValidationTextRange(); + return this.resourceConverter.getValidationTextRange(); } } |