You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2009/03/10 22:42:34 UTC
svn commit: r752277 - in
/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence:
FetchPlan.java FetchPlanImpl.java HintHandler.java
Author: ppoddar
Date: Tue Mar 10 21:42:33 2009
New Revision: 752277
URL: http://svn.apache.org/viewvc?rev=752277&view=rev
Log:
OPENJPA-959: Allow hink keys be set on facade fetch plan.
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlan.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlanImpl.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/HintHandler.java
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlan.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlan.java?rev=752277&r1=752276&r2=752277&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlan.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlan.java Tue Mar 10 21:42:33 2009
@@ -19,6 +19,9 @@
package org.apache.openjpa.persistence;
import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
import javax.persistence.LockModeType;
import org.apache.openjpa.kernel.FetchConfiguration;
@@ -111,6 +114,27 @@
* @deprecated use {@link #setQueryResultCacheEnabled} instead.
*/
public FetchPlan setQueryResultCache(boolean cache);
+
+ /**
+ * Gets the hint for the given key.
+ *
+ * @since 2.0.0
+ */
+ public Object getHint(String key);
+
+ /**
+ * Sets the hint for the given key to the given value.
+ *
+ * @since 2.0.0
+ */
+ public void setHint(String key, Object value);
+
+ /**
+ * Gets the hint keys and values currently set of this receiver.
+ *
+ * @since 2.0.0
+ */
+ public Map<String, Object> getHints();
/**
* Returns the names of the fetch groups that this component will use
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlanImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlanImpl.java?rev=752277&r1=752276&r2=752277&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlanImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/FetchPlanImpl.java Tue Mar 10 21:42:33 2009
@@ -22,6 +22,9 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
import javax.persistence.LockModeType;
import org.apache.openjpa.kernel.DelegatingFetchConfiguration;
@@ -268,6 +271,18 @@
return this;
}
+ public Object getHint(String key) {
+ return _fetch.getHint(key);
+ }
+
+ public void setHint(String key, Object value) {
+ _fetch.setHint(key, value);
+ }
+
+ public Map<String, Object> getHints() {
+ return _fetch.getHints();
+ }
+
public int hashCode() {
return _fetch.hashCode();
}
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/HintHandler.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/HintHandler.java?rev=752277&r1=752276&r2=752277&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/HintHandler.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/HintHandler.java Tue Mar 10 21:42:33 2009
@@ -271,12 +271,12 @@
private void setHintInternal(String key, Object value) {
Boolean record = record(key, value);
- FetchConfiguration fetch = owner.getDelegate().getFetchConfiguration();
+ FetchPlan plan = owner.getFetchPlan();
ClassLoader loader = owner.getDelegate().getBroker().getClassLoader();
if (record == Boolean.FALSE)
return;
if (record == null) {
- fetch.setHint(key, value);
+ plan.setHint(key, value);
return;
}
try {
@@ -302,25 +302,23 @@
owner.addAggregateListener(arr[i]);
} else if (isFetchPlanHint(key)) {
if (requiresTransaction(key))
- ((FetchPlanImpl)owner.getFetchPlan()).getDelegate()
- .setHint(key, value);
+ plan.setHint(key, value);
else
- hintToSetter(owner.getFetchPlan(),
- getFetchPlanProperty(key), value);
+ hintToSetter(plan, getFetchPlanProperty(key), value);
} else if (HINT_RESULT_COUNT.equals(key)) {
int v = (Integer)Filters.convert(value, Integer.class);
if (v < 0)
throw new ArgumentException(_loc.get("bad-query-hint-value",
key, value), null, null, false);
- fetch.setHint(key, v);
+ plan.setHint(key, v);
} else if (HINT_INVALIDATE_PREPARED_QUERY.equals(key)) {
- fetch.setHint(key, Filters.convert(value, Boolean.class));
+ plan.setHint(key, Filters.convert(value, Boolean.class));
owner.invalidatePreparedQuery();
} else if (HINT_IGNORE_PREPARED_QUERY.equals(key)) {
- fetch.setHint(key, Filters.convert(value, Boolean.class));
+ plan.setHint(key, Filters.convert(value, Boolean.class));
owner.ignorePreparedQuery();
} else { // default
- fetch.setHint(key, value);
+ plan.setHint(key, value);
}
return;
} catch (IllegalArgumentException iae) {