From 76e82998f6b25acdc827eddbefa42c32fc1c9df6 Mon Sep 17 00:00:00 2001 From: Michael Dick Date: Tue, 28 Jul 2009 19:49:03 +0000 Subject: [PATCH] OPENJPA-1202: Upgrade to Geronimo JPA 2.0 EA6 git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@798684 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/openjpa/persistence/ParameterImpl.java | 9 +++++++-- .../openjpa/persistence/PersistenceUnitInfoImpl.java | 5 ++--- .../java/org/apache/openjpa/persistence/QueryImpl.java | 10 ++++++++-- .../org/apache/openjpa/persistence/QueryParameter.java | 2 +- .../apache/openjpa/persistence/criteria/OrderImpl.java | 4 ++-- .../persistence/criteria/ParameterExpressionImpl.java | 2 +- pom.xml | 2 +- 7 files changed, 22 insertions(+), 12 deletions(-) diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ParameterImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ParameterImpl.java index 7dbeb350b..9d74e64f7 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ParameterImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ParameterImpl.java @@ -48,7 +48,7 @@ public class ParameterImpl implements QueryParameter { private final String _name; private final Integer _position; private final Class _expectedValueType; - private Object _value; + private T _value; private boolean _bound; /** @@ -128,7 +128,7 @@ public class ParameterImpl implements QueryParameter { * * @exception if the given value is not permissible for this parameter. */ - public QueryParameter bindValue(Object v) { + public QueryParameter bindValue(T v) { if (!isValueAssignable(v)) { if (v == null) throw new IllegalArgumentException(_loc.get("param-null-not-assignable", this).getMessage()); @@ -201,4 +201,9 @@ public class ParameterImpl implements QueryParameter { return buf.toString(); } + + public Class getJavaType() { + Class cls = _value.getClass(); + return (Class) cls; + } } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceUnitInfoImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceUnitInfoImpl.java index a96bda650..e82f24ee3 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceUnitInfoImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceUnitInfoImpl.java @@ -518,7 +518,7 @@ public class PersistenceUnitInfoImpl } } - public String PersistenceXMLSchemaVersion() { + public String getPersistenceXMLSchemaVersion() { return _schemaVersion; } @@ -549,7 +549,6 @@ public class PersistenceUnitInfoImpl } public SharedCacheMode getSharedCacheMode() { - // TODO Auto-generated method stub - return null; + throw new UnsupportedOperationException("JPA 2.0 - Method not yet implemented"); } } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java index 022a1e6aa..42f879b4d 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java @@ -90,6 +90,8 @@ public class QueryImpl implements OpenJPAQuerySPI, Serializable { private transient ReentrantLock _lock = null; private final HintHandler _hintHandler; + private Map, Object> parmatersToValues = new HashMap, Object>(); + /** * Constructor; supply factory exception translator and delegate. * @@ -421,7 +423,7 @@ public class QueryImpl implements OpenJPAQuerySPI, Serializable { position), null, null, false); Class valueType = (Class)_query.getParameterTypes().get((Object)position); - ParameterImpl param = new ParameterImpl(position, valueType); + ParameterImpl param = new ParameterImpl(position, valueType); registerParameter(param); param.bindValue(value); @@ -459,7 +461,7 @@ public class QueryImpl implements OpenJPAQuerySPI, Serializable { } Class valueType = (Class)_query.getParameterTypes().get(name); - ParameterImpl param = new ParameterImpl(name, valueType); + ParameterImpl param = new ParameterImpl(name, valueType); registerParameter(param); param.bindValue(value); @@ -925,4 +927,8 @@ public class QueryImpl implements OpenJPAQuerySPI, Serializable { return _query.getParameterTypes().keySet(); } + public boolean isBound(Parameter param) { + return parmatersToValues.keySet().contains(param); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryParameter.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryParameter.java index 4ce80b20d..4e0e02dc0 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryParameter.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryParameter.java @@ -52,7 +52,7 @@ public interface QueryParameter extends Parameter { /** * Binds the given value to this parameter. */ - public abstract QueryParameter bindValue(Object v); + public abstract QueryParameter bindValue(T v); /** * Gets the value of this parameter without checking whether the any value has been diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/OrderImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/OrderImpl.java index 28d456a38..45f8fb24d 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/OrderImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/OrderImpl.java @@ -40,8 +40,8 @@ public class OrderImpl implements Order { this(e, true); } - public > Expression getExpression() { - return (Expression)e; + public Expression getExpression() { + return e; } public Expression getExpression5() { diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java index 98e298e79..ab6c11d68 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java @@ -101,7 +101,7 @@ public class ParameterExpressionImpl extends ExpressionImpl _delegate.clearBinding(); } - public final QueryParameter bindValue(Object v) { + public final QueryParameter bindValue(T v) { return _delegate.bindValue(v); } diff --git a/pom.xml b/pom.xml index 0712c25dd..23ec84802 100644 --- a/pom.xml +++ b/pom.xml @@ -492,7 +492,7 @@ org.apache.geronimo.specs geronimo-jpa_2.0_spec - 1.0-EA5-SNAPSHOT + 1.0-EA6-SNAPSHOT org.apache.geronimo.specs