org.apache.openjpa.slice.jdbc
Class TargetFetchConfiguration

java.lang.Object
  extended by org.apache.openjpa.kernel.FetchConfigurationImpl
      extended by org.apache.openjpa.jdbc.kernel.JDBCFetchConfigurationImpl
          extended by org.apache.openjpa.slice.jdbc.TargetFetchConfiguration
All Implemented Interfaces:
Serializable, Cloneable, EagerFetchModes, JDBCFetchConfiguration, LRSSizes, JoinSyntaxes, FetchConfiguration, LockLevels, LockScopes, QueryFlushModes

public class TargetFetchConfiguration
extends JDBCFetchConfigurationImpl
implements FetchConfiguration

A fetch configuration that is aware of special hint to narrow its operation on subset of slices.

Author:
Pinaki Poddar
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.openjpa.jdbc.kernel.JDBCFetchConfigurationImpl
JDBCFetchConfigurationImpl.JDBCConfigurationState
 
Nested classes/interfaces inherited from class org.apache.openjpa.kernel.FetchConfigurationImpl
FetchConfigurationImpl.ConfigurationState
 
Field Summary
(package private)  boolean _explicitTarget
           
 
Fields inherited from class org.apache.openjpa.jdbc.kernel.JDBCFetchConfigurationImpl
_state
 
Fields inherited from interface org.apache.openjpa.kernel.FetchConfiguration
DEFAULT, FETCH_LOAD, FETCH_NONE, FETCH_REF
 
Fields inherited from interface org.apache.openjpa.kernel.LockLevels
LOCK_NONE, LOCK_READ, LOCK_WRITE
 
Fields inherited from interface org.apache.openjpa.kernel.LockScopes
LOCKSCOPE_EXTENDED, LOCKSCOPE_NORMAL
 
Fields inherited from interface org.apache.openjpa.kernel.QueryFlushModes
FLUSH_FALSE, FLUSH_TRUE, FLUSH_WITH_CONNECTION
 
Fields inherited from interface org.apache.openjpa.jdbc.kernel.EagerFetchModes
EAGER_JOIN, EAGER_NONE, EAGER_PARALLEL
 
Fields inherited from interface org.apache.openjpa.jdbc.kernel.LRSSizes
SIZE_LAST, SIZE_QUERY, SIZE_UNKNOWN
 
Fields inherited from interface org.apache.openjpa.jdbc.sql.JoinSyntaxes
SYNTAX_DATABASE, SYNTAX_SQL92, SYNTAX_TRADITIONAL
 
Constructor Summary
  TargetFetchConfiguration()
           
protected TargetFetchConfiguration(FetchConfigurationImpl.ConfigurationState state, JDBCFetchConfigurationImpl.JDBCConfigurationState jstate)
           
 
Method Summary
(package private)  void assertTargets(String[] targets, boolean user)
           
 boolean isExplicitTarget()
          Affirms if the target is set on this receiver explicitly (i.e.
protected  TargetFetchConfiguration newInstance(FetchConfigurationImpl.ConfigurationState state)
          Return a new hollow instance.
 void setHint(String key, Object value)
          Setting hints on this configuration is treated specially if the given key is a target hint.
 void setHint(String key, Object value, Object original)
          Sets the hint to the given value.
 void setTargets(String[] targets)
           
(package private)  String[] toSliceNames(Object o, boolean user)
           
 
Methods inherited from class org.apache.openjpa.jdbc.kernel.JDBCFetchConfigurationImpl
addFetchInnerJoin, addFetchInnerJoins, addJoin, addJoins, clearJoins, copy, getEagerFetchMode, getFetchDirection, getFetchInnerJoins, getIsolation, getJoins, getJoinSyntax, getLRSSize, getResultSetType, getSubclassFetchMode, getSubclassFetchMode, hasFetchInnerJoin, hasJoin, newResultList, removeJoin, removeJoins, setContext, setEagerFetchMode, setFetchDirection, setIsolation, setJoinSyntax, setLRSSize, setResultSetType, setSubclassFetchMode, traverseJDBC
 
Methods inherited from class org.apache.openjpa.kernel.FetchConfigurationImpl
addFetchGroup, addFetchGroups, addField, addFields, clearFetchGroups, clearFields, clone, getCacheRetrieveMode, getCacheStoreMode, getContext, getExtendedPathLookup, getFetchBatchSize, getFetchGroups, getFields, getFlushBeforeQueries, getHint, getHints, getLockScope, getLockTimeout, getMaxFetchDepth, getQueryCacheEnabled, getQueryTimeout, getReadLockLevel, getRootClasses, getRootInstances, getSupportedHints, getWriteLockLevel, hasFetchGroup, hasFetchGroupAll, hasFetchGroupDefault, hasField, isHintSet, lock, populateHintSetter, populateHintSetter, removeFetchGroup, removeFetchGroups, removeField, removeFields, removeHint, removeHint, requiresFetch, requiresLoad, resetFetchGroups, setCacheRetrieveMode, setCacheStoreMode, setExtendedPathLookup, setFetchBatchSize, setFlushBeforeQueries, setLockScope, setLockTimeout, setMaxFetchDepth, setQueryCacheEnabled, setQueryTimeout, setReadLockLevel, setRootClasses, setRootInstances, setWriteLockLevel, toString, toString, traverse, unlock
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.openjpa.kernel.FetchConfiguration
addFetchGroup, addFetchGroups, addField, addFields, clearFetchGroups, clearFields, clone, copy, getCacheRetrieveMode, getCacheStoreMode, getContext, getExtendedPathLookup, getFetchBatchSize, getFetchGroups, getFields, getFlushBeforeQueries, getHint, getHints, getLockScope, getLockTimeout, getMaxFetchDepth, getQueryCacheEnabled, getQueryTimeout, getReadLockLevel, getRootClasses, getRootInstances, getWriteLockLevel, hasFetchGroup, hasField, isHintSet, lock, newResultList, removeFetchGroup, removeFetchGroups, removeField, removeFields, requiresFetch, requiresLoad, resetFetchGroups, setCacheRetrieveMode, setCacheStoreMode, setContext, setExtendedPathLookup, setFetchBatchSize, setFlushBeforeQueries, setLockScope, setLockTimeout, setMaxFetchDepth, setQueryCacheEnabled, setQueryTimeout, setReadLockLevel, setRootClasses, setRootInstances, setWriteLockLevel, traverse, unlock
 

Field Detail

_explicitTarget

boolean _explicitTarget
Constructor Detail

TargetFetchConfiguration

public TargetFetchConfiguration()

TargetFetchConfiguration

protected TargetFetchConfiguration(FetchConfigurationImpl.ConfigurationState state,
                                   JDBCFetchConfigurationImpl.JDBCConfigurationState jstate)
Method Detail

setHint

public void setHint(String key,
                    Object value)
Setting hints on this configuration is treated specially if the given key is a target hint.

Specified by:
setHint in interface FetchConfiguration
Overrides:
setHint in class FetchConfigurationImpl
Parameters:
value - if the given key is target hint, then the value can be either null, a String or a non-zero sized String array. It can not be a zero-sized String array.
See Also:
FetchConfigurationImpl.setHint(String, Object, Object)

setHint

public void setHint(String key,
                    Object value,
                    Object original)
Description copied from class: FetchConfigurationImpl
Sets the hint to the given value. If the key corresponds to a known key, then that value is set via the setter method. Otherwise it is put into opaque hints map.
In either case, the original value is put in the hints map. So essential difference between setting a value directly by a setter and via a hint is the memory of this original value.
The other important difference is setting lock levels. Setting of lock level via setter method needs active transaction. But setting via hint does not.

Specified by:
setHint in interface FetchConfiguration
Overrides:
setHint in class FetchConfigurationImpl
Parameters:
key - a hint key. If it is one of the statically registered hint key then the setter is called.
value - to be set. The given value type must match the argument type of the setter, if one exists.
original - value as specified by the caller. This value is put in the hints map.

setTargets

public void setTargets(String[] targets)

isExplicitTarget

public boolean isExplicitTarget()
Affirms if the target is set on this receiver explicitly (i.e. by the user).


toSliceNames

String[] toSliceNames(Object o,
                      boolean user)

assertTargets

void assertTargets(String[] targets,
                   boolean user)

newInstance

protected TargetFetchConfiguration newInstance(FetchConfigurationImpl.ConfigurationState state)
Description copied from class: FetchConfigurationImpl
Return a new hollow instance.

Overrides:
newInstance in class JDBCFetchConfigurationImpl


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.