diff options
author | Karen Butzke | 2013-02-04 18:56:25 +0000 |
---|---|---|
committer | Karen Butzke | 2013-02-04 18:56:25 +0000 |
commit | 0e9a5dab9bcb82efb2b0f2d16f600be7307b4479 (patch) | |
tree | b2ae90410cff7077fe6f97379db272479910c835 | |
parent | 84f7322c6a43fb315d92942bd1efa2ca13e71ef7 (diff) | |
download | webtools.dali-0e9a5dab9bcb82efb2b0f2d16f600be7307b4479.tar.gz webtools.dali-0e9a5dab9bcb82efb2b0f2d16f600be7307b4479.tar.xz webtools.dali-0e9a5dab9bcb82efb2b0f2d16f600be7307b4479.zip |
refactored Query context model hierarchy to combine 1_0 and 2_0 implementations
9 files changed, 273 insertions, 451 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java index 82c27209ca..2067ebfe8a 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2012 Oracle. All rights reserved. + * Copyright (c) 2007, 2013 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. @@ -11,10 +11,14 @@ package org.eclipse.jpt.jpa.core.internal.jpa1.context.java; import java.util.List; import org.eclipse.jpt.jpa.core.context.NamedQuery; -import org.eclipse.jpt.jpa.core.context.java.JavaNamedQuery; +import org.eclipse.jpt.jpa.core.context.Query; import org.eclipse.jpt.jpa.core.context.java.JavaQueryContainer; import org.eclipse.jpt.jpa.core.context.orm.OrmQueryContainer; import org.eclipse.jpt.jpa.core.internal.context.java.AbstractJavaQuery; +import org.eclipse.jpt.jpa.core.jpa2.context.LockModeType2_0; +import org.eclipse.jpt.jpa.core.jpa2.context.NamedQuery2_0; +import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaNamedQuery2_0; +import org.eclipse.jpt.jpa.core.jpa2.resource.java.NamedQuery2_0Annotation; import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper; import org.eclipse.jpt.jpa.core.resource.java.NamedQueryAnnotation; import org.eclipse.wst.validation.internal.provisional.core.IMessage; @@ -25,10 +29,72 @@ import org.eclipse.wst.validation.internal.provisional.core.IReporter; */ public class GenericJavaNamedQuery extends AbstractJavaQuery<NamedQueryAnnotation> - implements JavaNamedQuery + implements JavaNamedQuery2_0 { + protected LockModeType2_0 specifiedLockMode; + protected LockModeType2_0 defaultLockMode; + public GenericJavaNamedQuery(JavaQueryContainer parent, NamedQueryAnnotation queryAnnotation) { super(parent, queryAnnotation); + this.specifiedLockMode = this.buildSpecifiedLockMode(); + } + + // ********** synchronize/update ********** + + @Override + public void synchronizeWithResourceModel() { + super.synchronizeWithResourceModel(); + this.setSpecifiedLockMode_(this.buildSpecifiedLockMode()); + } + + @Override + public void update() { + super.update(); + this.setDefaultLockMode(this.buildDefaultLockMode()); + } + // ********** lock mode ********** + + public LockModeType2_0 getLockMode() { + return (this.specifiedLockMode != null) ? this.specifiedLockMode : this.defaultLockMode; + } + + public LockModeType2_0 getSpecifiedLockMode() { + return this.specifiedLockMode; + } + + public void setSpecifiedLockMode(LockModeType2_0 lockMode) { + ((NamedQuery2_0Annotation) this.queryAnnotation).setLockMode(LockModeType2_0.toJavaResourceModel(lockMode)); + this.setSpecifiedLockMode_(lockMode); + } + + protected void setSpecifiedLockMode_(LockModeType2_0 lockMode) { + LockModeType2_0 old = this.specifiedLockMode; + this.specifiedLockMode = lockMode; + this.firePropertyChanged(SPECIFIED_LOCK_MODE_PROPERTY, old, lockMode); + } + + protected LockModeType2_0 buildSpecifiedLockMode() { + if (isJpa2_0Compatible()) { + return LockModeType2_0.fromJavaResourceModel(((NamedQuery2_0Annotation) this.queryAnnotation).getLockMode()); + } + return null; + } + + public LockModeType2_0 getDefaultLockMode() { + return this.defaultLockMode; + } + + protected void setDefaultLockMode(LockModeType2_0 lockMode) { + LockModeType2_0 old = this.defaultLockMode; + this.defaultLockMode = lockMode; + this.firePropertyChanged(DEFAULT_LOCK_MODE_PROPERTY, old, lockMode); + } + + protected LockModeType2_0 buildDefaultLockMode() { + if (isJpa2_0Compatible()) { + return LockModeType2_0.NONE; + } + return null; } // ********** metadata conversion ********* @@ -56,6 +122,24 @@ public class GenericJavaNamedQuery ); } + @Override + protected boolean isEquivalentTo(Query other) { + return super.isEquivalentTo(other) + && this.isEquivalentTo((NamedQuery) other); + } + + protected boolean isEquivalentTo(NamedQuery other) { + boolean queriesEquivalent = super.isEquivalentTo(other); + if (this.isJpa2_0Compatible()) { + return queriesEquivalent && this.isEquivalentTo((NamedQuery2_0) other); + } + return queriesEquivalent; + } + + protected boolean isEquivalentTo(NamedQuery2_0 other) { + return this.specifiedLockMode == other.getSpecifiedLockMode(); + } + // ********** misc ********** public Class<NamedQuery> getType() { diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/AbstractOrmNamedQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/AbstractOrmNamedQuery.java deleted file mode 100644 index 625d3c23fb..0000000000 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/AbstractOrmNamedQuery.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2013 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.jpa.core.internal.jpa1.context.orm; - -import java.util.Collections; -import java.util.List; -import org.eclipse.jpt.common.core.utility.TextRange; -import org.eclipse.jpt.common.utility.internal.ObjectTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.jpa.core.context.JpaContextNode; -import org.eclipse.jpt.jpa.core.context.NamedQuery; -import org.eclipse.jpt.jpa.core.context.Query; -import org.eclipse.jpt.jpa.core.context.java.JavaNamedQuery; -import org.eclipse.jpt.jpa.core.context.orm.OrmNamedQuery; -import org.eclipse.jpt.jpa.core.internal.context.orm.AbstractOrmQuery; -import org.eclipse.jpt.jpa.core.internal.validation.DefaultJpaValidationMessages; -import org.eclipse.jpt.jpa.core.internal.validation.JpaValidationMessages; -import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper; -import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper.EscapeType; -import org.eclipse.jpt.jpa.core.resource.orm.XmlNamedQuery; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * <code>orm.xml</code> named query - */ -public abstract class AbstractOrmNamedQuery - extends AbstractOrmQuery<XmlNamedQuery> - implements OrmNamedQuery -{ - - protected String query; - - protected AbstractOrmNamedQuery(JpaContextNode parent, XmlNamedQuery resourceNamedQuery) { - super(parent, resourceNamedQuery); - this.query = this.xmlQuery.getQuery(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setQuery_(this.xmlQuery.getQuery()); - } - - - // ********** query ********** - - public String getQuery() { - return this.query; - } - - public void setQuery(String query) { - this.setQuery_(query); - this.xmlQuery.setQuery(query); - } - - protected void setQuery_(String query) { - String old = this.query; - this.query = query; - this.firePropertyChanged(QUERY_PROPERTY, old, query); - } - - // ********** metadata conversion ********** - - public void convertFrom(JavaNamedQuery javaQuery) { - super.convertFrom(javaQuery); - this.setQuery(javaQuery.getQuery()); - } - - - // ********** validation ********** - - @Override - public void validate(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) { - super.validate(messages, reporter); - this.validateQuery(queryHelper, messages, reporter); - } - - protected void validateQuery(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) { - if (StringTools.isBlank(this.query)){ - messages.add( - DefaultJpaValidationMessages.buildMessage( - IMessage.HIGH_SEVERITY, - JpaValidationMessages.QUERY_STATEMENT_UNDEFINED, - new String[] {this.name}, - this, - this.getNameTextRange() - ) - ); - } else { - this.validateQuery_(queryHelper, messages, reporter); - } - } - - protected void validateQuery_(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) { - XmlNamedQuery xmlQuery = this.getXmlQuery(); - EscapeType escapeType = xmlQuery.isQueryInsideCDATASection() ? EscapeType.NONE : EscapeType.XML; - - queryHelper.validate( - this, - this.query, - xmlQuery.getActualQuery(), - this.getQueryTextRanges(), - xmlQuery.getQueryOffset(), - escapeType, - messages - ); - } - - public List<TextRange> getQueryTextRanges() { - return Collections.singletonList(this.xmlQuery.getQueryTextRange()); - } - - @Override - protected boolean isEquivalentTo(Query other) { - return super.isEquivalentTo(other) - && this.isEquivalentTo((NamedQuery) other); - } - - protected boolean isEquivalentTo(NamedQuery other) { - return ObjectTools.equals(this.query, other.getQuery()); - } - - - // ********** misc ********** - - public Class<NamedQuery> getType() { - return NamedQuery.class; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java index bbf14c1f03..10ebf3de3c 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java @@ -9,17 +9,197 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.core.internal.jpa1.context.orm; +import java.util.Collections; +import java.util.List; +import org.eclipse.jpt.common.core.utility.TextRange; +import org.eclipse.jpt.common.utility.internal.ObjectTools; +import org.eclipse.jpt.common.utility.internal.StringTools; import org.eclipse.jpt.jpa.core.context.JpaContextNode; +import org.eclipse.jpt.jpa.core.context.NamedQuery; +import org.eclipse.jpt.jpa.core.context.Query; +import org.eclipse.jpt.jpa.core.context.java.JavaNamedQuery; +import org.eclipse.jpt.jpa.core.internal.context.orm.AbstractOrmQuery; +import org.eclipse.jpt.jpa.core.internal.validation.DefaultJpaValidationMessages; +import org.eclipse.jpt.jpa.core.internal.validation.JpaValidationMessages; +import org.eclipse.jpt.jpa.core.jpa2.context.LockModeType2_0; +import org.eclipse.jpt.jpa.core.jpa2.context.NamedQuery2_0; +import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaNamedQuery2_0; +import org.eclipse.jpt.jpa.core.jpa2.context.orm.OrmNamedQuery2_0; +import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper; +import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper.EscapeType; import org.eclipse.jpt.jpa.core.resource.orm.XmlNamedQuery; +import org.eclipse.wst.validation.internal.provisional.core.IMessage; +import org.eclipse.wst.validation.internal.provisional.core.IReporter; /** * <code>orm.xml</code> named query */ -public class GenericOrmNamedQuery - extends AbstractOrmNamedQuery +public final class GenericOrmNamedQuery + extends AbstractOrmQuery<XmlNamedQuery> + implements OrmNamedQuery2_0 { + protected String query; + + private LockModeType2_0 specifiedLockMode; + private LockModeType2_0 defaultLockMode; + public GenericOrmNamedQuery(JpaContextNode parent, XmlNamedQuery resourceNamedQuery) { super(parent, resourceNamedQuery); + this.query = this.xmlQuery.getQuery(); + this.specifiedLockMode = this.buildSpecifiedLockMode(); + } + + + // ********** synchronize/update ********** + + @Override + public void synchronizeWithResourceModel() { + super.synchronizeWithResourceModel(); + this.setQuery_(this.xmlQuery.getQuery()); + this.setSpecifiedLockMode_(this.buildSpecifiedLockMode()); + } + + @Override + public void update() { + super.update(); + this.setDefaultLockMode(this.buildDefaultLockMode()); + } + + + // ********** query ********** + + public String getQuery() { + return this.query; + } + + public void setQuery(String query) { + this.setQuery_(query); + this.xmlQuery.setQuery(query); + } + + protected void setQuery_(String query) { + String old = this.query; + this.query = query; + this.firePropertyChanged(QUERY_PROPERTY, old, query); + } + + + // ********** lock mode ********** + + public LockModeType2_0 getLockMode() { + return (this.specifiedLockMode != null) ? this.specifiedLockMode : this.defaultLockMode; + } + + public LockModeType2_0 getSpecifiedLockMode() { + return this.specifiedLockMode; + } + + public void setSpecifiedLockMode(LockModeType2_0 lockMode) { + this.setSpecifiedLockMode_(lockMode); + this.xmlQuery.setLockMode(LockModeType2_0.toOrmResourceModel(lockMode)); + } + + public void setSpecifiedLockMode_(LockModeType2_0 lockMode) { + LockModeType2_0 old = this.specifiedLockMode; + this.specifiedLockMode = lockMode; + this.firePropertyChanged(SPECIFIED_LOCK_MODE_PROPERTY, old, lockMode); + } + + protected LockModeType2_0 buildSpecifiedLockMode() { + return this.isJpa2_0Compatible() ? LockModeType2_0.fromOrmResourceModel(this.xmlQuery.getLockMode()) : null; + } + + public LockModeType2_0 getDefaultLockMode() { + return this.defaultLockMode; + } + + protected void setDefaultLockMode(LockModeType2_0 lockMode) { + LockModeType2_0 old = this.defaultLockMode; + this.defaultLockMode = lockMode; + this.firePropertyChanged(DEFAULT_LOCK_MODE_PROPERTY, old, lockMode); + } + + protected LockModeType2_0 buildDefaultLockMode() { + return this.isJpa2_0Compatible() ? LockModeType2_0.NONE : null; + } + + // ********** metadata conversion ********** + + public void convertFrom(JavaNamedQuery javaQuery) { + super.convertFrom(javaQuery); + this.setQuery(javaQuery.getQuery()); + if (this.isJpa2_0Compatible()) { + this.setSpecifiedLockMode(((JavaNamedQuery2_0) javaQuery).getSpecifiedLockMode()); + } + } + + + // ********** validation ********** + + @Override + public void validate(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) { + super.validate(messages, reporter); + this.validateQuery(queryHelper, messages, reporter); + } + + protected void validateQuery(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) { + if (StringTools.isBlank(this.query)){ + messages.add( + DefaultJpaValidationMessages.buildMessage( + IMessage.HIGH_SEVERITY, + JpaValidationMessages.QUERY_STATEMENT_UNDEFINED, + new String[] {this.name}, + this, + this.getNameTextRange() + ) + ); + } else { + this.validateQuery_(queryHelper, messages, reporter); + } + } + + protected void validateQuery_(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) { + XmlNamedQuery xmlQuery = this.getXmlQuery(); + EscapeType escapeType = xmlQuery.isQueryInsideCDATASection() ? EscapeType.NONE : EscapeType.XML; + + queryHelper.validate( + this, + this.query, + xmlQuery.getActualQuery(), + this.getQueryTextRanges(), + xmlQuery.getQueryOffset(), + escapeType, + messages + ); + } + + public List<TextRange> getQueryTextRanges() { + return Collections.singletonList(this.xmlQuery.getQueryTextRange()); + } + + @Override + protected boolean isEquivalentTo(Query other) { + return super.isEquivalentTo(other) + && this.isEquivalentTo((NamedQuery) other); + } + + protected boolean isEquivalentTo(NamedQuery other) { + boolean queriesEquivalent = ObjectTools.equals(this.query, other.getQuery()); + if (this.isJpa2_0Compatible()) { + return queriesEquivalent && this.isEquivalentTo((NamedQuery2_0) other); + } + return queriesEquivalent; + } + + protected boolean isEquivalentTo(NamedQuery2_0 other) { + return this.specifiedLockMode == other.getSpecifiedLockMode(); + } + + + // ********** misc ********** + + public Class<NamedQuery> getType() { + return NamedQuery.class; } } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/GenericJpaFactory2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/GenericJpaFactory2_0.java index 597afc3344..adef2ff17b 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/GenericJpaFactory2_0.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/GenericJpaFactory2_0.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2012 Oracle. All rights reserved. + * Copyright (c) 2009, 2013 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. @@ -23,10 +23,8 @@ import org.eclipse.jpt.jpa.core.context.java.JavaAttributeMapping; import org.eclipse.jpt.jpa.core.context.java.JavaColumn; import org.eclipse.jpt.jpa.core.context.java.JavaEmbeddable; import org.eclipse.jpt.jpa.core.context.java.JavaGeneratorContainer; -import org.eclipse.jpt.jpa.core.context.java.JavaNamedQuery; import org.eclipse.jpt.jpa.core.context.java.JavaPersistentAttribute; import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType; -import org.eclipse.jpt.jpa.core.context.java.JavaQueryContainer; import org.eclipse.jpt.jpa.core.context.java.JavaSequenceGenerator; import org.eclipse.jpt.jpa.core.internal.AbstractJpaFactory; import org.eclipse.jpt.jpa.core.internal.jpa1.context.java.GenericJavaAssociationOverrideContainer; @@ -37,7 +35,6 @@ import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaCollection import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaDerivedIdentity2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaElementCollectionMapping2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaEmbeddable2_0; -import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaNamedQuery2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaOrderColumn2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaOrphanRemoval2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaPersistentType2_0; @@ -57,10 +54,8 @@ import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaEmbeddedMapping2_0; import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaOrderColumn2_0; import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaOrderable2_0; import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaSingleRelationshipMapping2_0; -import org.eclipse.jpt.jpa.core.jpa2.resource.java.NamedQuery2_0Annotation; import org.eclipse.jpt.jpa.core.jpa2.resource.java.SequenceGenerator2_0Annotation; import org.eclipse.jpt.jpa.core.resource.java.EmbeddableAnnotation; -import org.eclipse.jpt.jpa.core.resource.java.NamedQueryAnnotation; import org.eclipse.jpt.jpa.core.resource.java.SequenceGeneratorAnnotation; import org.eclipse.jpt.jpa.db.DatabaseIdentifierAdapter; @@ -136,11 +131,6 @@ public class GenericJpaFactory2_0 return new GenericJavaOrphanRemoval2_0(parent); } - @Override - public JavaNamedQuery buildJavaNamedQuery(JavaQueryContainer parent, NamedQueryAnnotation annotation) { - return new GenericJavaNamedQuery2_0(parent, (NamedQuery2_0Annotation) annotation); - } - public JavaCollectionTable2_0 buildJavaCollectionTable(JavaElementCollectionMapping2_0 parent, Table.Owner owner) { return new GenericJavaCollectionTable2_0(parent, owner); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaNamedQuery2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaNamedQuery2_0.java deleted file mode 100644 index 8dab55a96f..0000000000 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaNamedQuery2_0.java +++ /dev/null @@ -1,138 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2012 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.jpa.core.internal.jpa2.context.java; - -import java.util.List; -import org.eclipse.jpt.jpa.core.context.NamedQuery; -import org.eclipse.jpt.jpa.core.context.Query; -import org.eclipse.jpt.jpa.core.context.java.JavaQueryContainer; -import org.eclipse.jpt.jpa.core.context.orm.OrmQueryContainer; -import org.eclipse.jpt.jpa.core.internal.context.java.AbstractJavaQuery; -import org.eclipse.jpt.jpa.core.jpa2.context.LockModeType2_0; -import org.eclipse.jpt.jpa.core.jpa2.context.NamedQuery2_0; -import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaNamedQuery2_0; -import org.eclipse.jpt.jpa.core.jpa2.resource.java.NamedQuery2_0Annotation; -import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * JPA 2.0 - * Java named query - */ -public class GenericJavaNamedQuery2_0 - extends AbstractJavaQuery<NamedQuery2_0Annotation> - implements JavaNamedQuery2_0 -{ - protected LockModeType2_0 specifiedLockMode; - protected LockModeType2_0 defaultLockMode; - - - public GenericJavaNamedQuery2_0(JavaQueryContainer parent, NamedQuery2_0Annotation queryAnnotation) { - super(parent, queryAnnotation); - this.specifiedLockMode = this.buildSpecifiedLockMode(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedLockMode_(this.buildSpecifiedLockMode()); - } - - @Override - public void update() { - super.update(); - this.setDefaultLockMode(this.buildDefaultLockMode()); - } - - - // ********** lock mode ********** - - public LockModeType2_0 getLockMode() { - return (this.specifiedLockMode != null) ? this.specifiedLockMode : this.defaultLockMode; - } - - public LockModeType2_0 getSpecifiedLockMode() { - return this.specifiedLockMode; - } - - public void setSpecifiedLockMode(LockModeType2_0 lockMode) { - this.queryAnnotation.setLockMode(LockModeType2_0.toJavaResourceModel(lockMode)); - this.setSpecifiedLockMode_(lockMode); - } - - protected void setSpecifiedLockMode_(LockModeType2_0 lockMode) { - LockModeType2_0 old = this.specifiedLockMode; - this.specifiedLockMode = lockMode; - this.firePropertyChanged(SPECIFIED_LOCK_MODE_PROPERTY, old, lockMode); - } - - protected LockModeType2_0 buildSpecifiedLockMode() { - return LockModeType2_0.fromJavaResourceModel(this.queryAnnotation.getLockMode()); - } - - public LockModeType2_0 getDefaultLockMode() { - return this.defaultLockMode; - } - - protected void setDefaultLockMode(LockModeType2_0 lockMode) { - LockModeType2_0 old = this.defaultLockMode; - this.defaultLockMode = lockMode; - this.firePropertyChanged(DEFAULT_LOCK_MODE_PROPERTY, old, lockMode); - } - - protected LockModeType2_0 buildDefaultLockMode() { - return LockModeType2_0.NONE; - } - - // ********** metadata conversion ********* - - public void convertTo(OrmQueryContainer queryContainer) { - queryContainer.addNamedQuery().convertFrom(this); - } - - public void delete() { - this.getParent().removeNamedQuery(this); - } - - // ********** validation ********** - - @Override - protected void validateQuery_(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) { - queryHelper.validate( - this, - this.query, - this.query, - this.queryAnnotation.getQueryTextRanges(), - 1, - JpaJpqlQueryHelper.EscapeType.JAVA, - messages - ); - } - - @Override - protected boolean isEquivalentTo(Query other) { - return super.isEquivalentTo(other) - && this.isEquivalentTo((NamedQuery2_0) other); - } - - protected boolean isEquivalentTo(NamedQuery2_0 other) { - return this.specifiedLockMode == other.getSpecifiedLockMode(); - } - - // ********** misc ********** - - public Class<NamedQuery> getType() { - return NamedQuery.class; - } -} diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmNamedQuery2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmNamedQuery2_0.java deleted file mode 100644 index 9571114d07..0000000000 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmNamedQuery2_0.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2013 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.jpa.core.internal.jpa2.context.orm; - -import java.util.List; -import org.eclipse.jpt.jpa.core.context.JpaContextNode; -import org.eclipse.jpt.jpa.core.context.NamedQuery; -import org.eclipse.jpt.jpa.core.context.java.JavaNamedQuery; -import org.eclipse.jpt.jpa.core.internal.jpa1.context.orm.AbstractOrmNamedQuery; -import org.eclipse.jpt.jpa.core.jpa2.context.LockModeType2_0; -import org.eclipse.jpt.jpa.core.jpa2.context.NamedQuery2_0; -import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaNamedQuery2_0; -import org.eclipse.jpt.jpa.core.jpa2.context.orm.OrmNamedQuery2_0; -import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper; -import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper.EscapeType; -import org.eclipse.jpt.jpa.core.resource.orm.XmlNamedQuery; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; - -/** - * JPA 2.0 - * <code>orm.xml</code> named query - */ -public class GenericOrmNamedQuery2_0 - extends AbstractOrmNamedQuery - implements OrmNamedQuery2_0 -{ - private LockModeType2_0 specifiedLockMode; - private LockModeType2_0 defaultLockMode; - - - public GenericOrmNamedQuery2_0(JpaContextNode parent, XmlNamedQuery xmlNamedQuery) { - super(parent, xmlNamedQuery); - this.specifiedLockMode = this.buildSpecifiedLockMode(); - } - - - // ********** synchronize/update ********** - - @Override - public void synchronizeWithResourceModel() { - super.synchronizeWithResourceModel(); - this.setSpecifiedLockMode_(this.buildSpecifiedLockMode()); - } - - @Override - public void update() { - super.update(); - this.setDefaultLockMode(this.buildDefaultLockMode()); - } - - - // ********** lock mode ********** - - public LockModeType2_0 getLockMode() { - return (this.specifiedLockMode != null) ? this.specifiedLockMode : this.defaultLockMode; - } - - public LockModeType2_0 getSpecifiedLockMode() { - return this.specifiedLockMode; - } - - public void setSpecifiedLockMode(LockModeType2_0 lockMode) { - this.setSpecifiedLockMode_(lockMode); - this.xmlQuery.setLockMode(LockModeType2_0.toOrmResourceModel(lockMode)); - } - - public void setSpecifiedLockMode_(LockModeType2_0 lockMode) { - LockModeType2_0 old = this.specifiedLockMode; - this.specifiedLockMode = lockMode; - this.firePropertyChanged(SPECIFIED_LOCK_MODE_PROPERTY, old, lockMode); - } - - protected LockModeType2_0 buildSpecifiedLockMode() { - return LockModeType2_0.fromOrmResourceModel(this.xmlQuery.getLockMode()); - } - - public LockModeType2_0 getDefaultLockMode() { - return this.defaultLockMode; - } - - protected void setDefaultLockMode(LockModeType2_0 lockMode) { - LockModeType2_0 old = this.defaultLockMode; - this.defaultLockMode = lockMode; - this.firePropertyChanged(DEFAULT_LOCK_MODE_PROPERTY, old, lockMode); - } - - protected LockModeType2_0 buildDefaultLockMode() { - return LockModeType2_0.NONE; - } - - // ********** metadata conversion ********** - - @Override - public void convertFrom(JavaNamedQuery javaQuery) { - super.convertFrom(javaQuery); - this.setSpecifiedLockMode(((JavaNamedQuery2_0)javaQuery).getSpecifiedLockMode()); - } - - // ********** validation ********** - - @Override - protected void validateQuery_(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) { - - XmlNamedQuery xmlQuery = this.getXmlQuery(); - EscapeType escapeType = xmlQuery.isQueryInsideCDATASection() ? EscapeType.NONE : EscapeType.XML; - - queryHelper.validate( - this, - this.query, - xmlQuery.getActualQuery(), - this.getQueryTextRanges(), - xmlQuery.getQueryOffset(), - escapeType, - messages - ); - } - - @Override - protected boolean isEquivalentTo(NamedQuery other) { - return super.isEquivalentTo(other) - && (this.specifiedLockMode == ((NamedQuery2_0) other).getSpecifiedLockMode()); - } -}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java index 7e4b16b247..c10b9d3188 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2012 Oracle. All rights reserved. + * Copyright (c) 2009, 2013 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. @@ -15,7 +15,6 @@ import org.eclipse.jpt.jpa.core.context.Table; import org.eclipse.jpt.jpa.core.context.orm.OrmAssociationOverrideContainer; import org.eclipse.jpt.jpa.core.context.orm.OrmAttributeMapping; import org.eclipse.jpt.jpa.core.context.orm.OrmEmbeddable; -import org.eclipse.jpt.jpa.core.context.orm.OrmNamedQuery; import org.eclipse.jpt.jpa.core.context.orm.OrmPersistentAttribute; import org.eclipse.jpt.jpa.core.context.orm.OrmPersistentType; import org.eclipse.jpt.jpa.core.context.orm.OrmSequenceGenerator; @@ -38,7 +37,6 @@ import org.eclipse.jpt.jpa.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0 import org.eclipse.jpt.jpa.core.jpa2.context.orm.OrmXml2_0ContextNodeFactory; import org.eclipse.jpt.jpa.core.resource.orm.XmlElementCollection; import org.eclipse.jpt.jpa.core.resource.orm.XmlEmbeddable; -import org.eclipse.jpt.jpa.core.resource.orm.XmlNamedQuery; import org.eclipse.jpt.jpa.core.resource.orm.XmlSequenceGenerator; public class GenericOrmXml2_0ContextNodeFactory @@ -82,11 +80,6 @@ public class GenericOrmXml2_0ContextNodeFactory return new GenericOrmOrphanRemoval2_0(parent); } - @Override - public OrmNamedQuery buildOrmNamedQuery(JpaContextNode parent, XmlNamedQuery resourceNamedQuery) { - return new GenericOrmNamedQuery2_0(parent, resourceNamedQuery); - } - public OrmCollectionTable2_0 buildOrmCollectionTable(OrmElementCollectionMapping2_0 parent, Table.Owner owner) { return new GenericOrmCollectionTable2_0(parent, owner); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLink2_0JpaFactory.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLink2_0JpaFactory.java index 0abff16b26..f50a70a3f1 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLink2_0JpaFactory.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLink2_0JpaFactory.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2012 Oracle. All rights reserved. + * Copyright (c) 2009, 2013 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. @@ -21,10 +21,8 @@ import org.eclipse.jpt.jpa.core.context.java.JavaAssociationOverrideContainer; import org.eclipse.jpt.jpa.core.context.java.JavaAttributeMapping; import org.eclipse.jpt.jpa.core.context.java.JavaColumn; import org.eclipse.jpt.jpa.core.context.java.JavaGeneratorContainer; -import org.eclipse.jpt.jpa.core.context.java.JavaNamedQuery; import org.eclipse.jpt.jpa.core.context.java.JavaPersistentAttribute; import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType; -import org.eclipse.jpt.jpa.core.context.java.JavaQueryContainer; import org.eclipse.jpt.jpa.core.context.java.JavaSequenceGenerator; import org.eclipse.jpt.jpa.core.internal.jpa1.context.java.GenericJavaAssociationOverrideContainer; import org.eclipse.jpt.jpa.core.internal.jpa1.context.java.GenericJavaColumn; @@ -34,7 +32,6 @@ import org.eclipse.jpt.jpa.core.internal.jpa2.GenericMetamodelSynchronizer; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaCacheable2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaCollectionTable2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaDerivedIdentity2_0; -import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaNamedQuery2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaOrderColumn2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaOrphanRemoval2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.java.GenericJavaPersistentType2_0; @@ -54,9 +51,7 @@ import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaEmbeddedMapping2_0; import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaOrderColumn2_0; import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaOrderable2_0; import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaSingleRelationshipMapping2_0; -import org.eclipse.jpt.jpa.core.jpa2.resource.java.NamedQuery2_0Annotation; import org.eclipse.jpt.jpa.core.jpa2.resource.java.SequenceGenerator2_0Annotation; -import org.eclipse.jpt.jpa.core.resource.java.NamedQueryAnnotation; import org.eclipse.jpt.jpa.core.resource.java.SequenceGeneratorAnnotation; import org.eclipse.jpt.jpa.db.DatabaseIdentifierAdapter; import org.eclipse.jpt.jpa.eclipselink.core.EclipseLinkJpaProject; @@ -126,11 +121,6 @@ public class EclipseLink2_0JpaFactory return new GenericJavaOrphanRemoval2_0(parent); } - @Override - public JavaNamedQuery buildJavaNamedQuery(JavaQueryContainer parent, NamedQueryAnnotation annotation) { - return new GenericJavaNamedQuery2_0(parent, (NamedQuery2_0Annotation) annotation); - } - public JavaCollectionTable2_0 buildJavaCollectionTable(JavaElementCollectionMapping2_0 parent, Table.Owner owner) { return new GenericJavaCollectionTable2_0(parent, owner); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java index 9484e4e677..c83c8ad53a 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2012 Oracle. All rights reserved. + * Copyright (c) 2009, 2013 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. @@ -22,7 +22,6 @@ import org.eclipse.jpt.jpa.core.internal.jpa1.context.orm.GenericOrmOrderable; import org.eclipse.jpt.jpa.core.internal.jpa2.context.orm.GenericOrmCacheable2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.orm.GenericOrmCollectionTable2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.orm.GenericOrmDerivedIdentity2_0; -import org.eclipse.jpt.jpa.core.internal.jpa2.context.orm.GenericOrmNamedQuery2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.orm.GenericOrmOrderColumn2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.orm.GenericOrmOrphanRemoval2_0; import org.eclipse.jpt.jpa.core.internal.jpa2.context.orm.GenericOrmSequenceGenerator2_0; @@ -73,11 +72,6 @@ public class EclipseLinkOrmXml2_0ContextNodeFactory return new GenericOrmOrphanRemoval2_0(parent); } - @Override - public OrmNamedQuery buildOrmNamedQuery(JpaContextNode parent, XmlNamedQuery resourceNamedQuery) { - return new GenericOrmNamedQuery2_0(parent, resourceNamedQuery); - } - public OrmCollectionTable2_0 buildOrmCollectionTable(OrmElementCollectionMapping2_0 parent, Table.Owner owner) { return new GenericOrmCollectionTable2_0(parent, owner); } |