org.apache.openjpa.datacache
Class QueryKey

java.lang.Object
  extended by org.apache.openjpa.datacache.QueryKey
All Implemented Interfaces:
Externalizable, Serializable

public class QueryKey
extends Object
implements Externalizable

This class stores information about a particular invocation of a query. It contains a reference to the external properties of the query that was executed, as well as any parameters used to execute that query, with one exception: first-class objects used as parameter values are converted to OIDs.

Author:
Patrick Linskey
See Also:
Serialized Form

Constructor Summary
QueryKey()
          Public constructor for externalization only.
 
Method Summary
 boolean changeInvalidatesQuery(Collection changed)
          Returns true if modifications to any of the classes in changed results in a possible invalidation of this query; otherwise returns false.
 boolean equals(Object ob)
          Determine equality based on identifying information.
 Set<String> getAcessPathClassNames()
          Returns the set of the accessPathClassnames that exists in the query
 String getCandidateTypeName()
          Returns the candidate class name for this query.
 int getTimeout()
          Return the amount of time this key is good for.
 int hashCode()
          Define a hashing algorithm corresponding to the equals(java.lang.Object) method defined above.
static QueryKey newInstance(Query q)
          Return a key for the given query, or null if it is not cacheable.
(package private) static QueryKey newInstance(QueryContext q, boolean packed, Map args, Class candidate, boolean subs, long startIdx, long endIdx)
          Return a key for the given query, or null if it is not cacheable.
(package private) static QueryKey newInstance(QueryContext q, boolean packed, Object[] args, Class candidate, boolean subs, long startIdx, long endIdx)
          Return a key for the given query, or null if it is not cacheable.
static QueryKey newInstance(Query q, Map args)
          Return a key for the given query, or null if it is not cacheable.
static QueryKey newInstance(Query q, Object[] args)
          Return a key for the given query, or null if it is not cacheable.
 void readExternal(ObjectInput in)
           
 String toString()
           
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

QueryKey

public QueryKey()
Public constructor for externalization only.

Method Detail

newInstance

public static QueryKey newInstance(Query q)
Return a key for the given query, or null if it is not cacheable.


newInstance

public static QueryKey newInstance(Query q,
                                   Object[] args)
Return a key for the given query, or null if it is not cacheable.


newInstance

public static QueryKey newInstance(Query q,
                                   Map args)
Return a key for the given query, or null if it is not cacheable.


newInstance

static QueryKey newInstance(QueryContext q,
                            boolean packed,
                            Object[] args,
                            Class candidate,
                            boolean subs,
                            long startIdx,
                            long endIdx)
Return a key for the given query, or null if it is not cacheable.


newInstance

static QueryKey newInstance(QueryContext q,
                            boolean packed,
                            Map args,
                            Class candidate,
                            boolean subs,
                            long startIdx,
                            long endIdx)
Return a key for the given query, or null if it is not cacheable.


getCandidateTypeName

public String getCandidateTypeName()
Returns the candidate class name for this query.


getTimeout

public int getTimeout()
Return the amount of time this key is good for.


changeInvalidatesQuery

public boolean changeInvalidatesQuery(Collection changed)
Returns true if modifications to any of the classes in changed results in a possible invalidation of this query; otherwise returns false. Invalidation is possible if one or more of the classes in this query key's access path has been changed.


equals

public boolean equals(Object ob)
Determine equality based on identifying information. Keys created for queries that specify a candidate collection are always not equal.

Overrides:
equals in class Object

hashCode

public int hashCode()
Define a hashing algorithm corresponding to the equals(java.lang.Object) method defined above.

Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException

getAcessPathClassNames

public Set<String> getAcessPathClassNames()
Returns the set of the accessPathClassnames that exists in the query

Returns:
-- Returns a set of accesspath classnames.


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