wt.vc.config
Class LatestConfigSpec

java.lang.Object
  extended bywt.vc.config.LatestConfigSpec
All Implemented Interfaces:
ConfigSpec, Externalizable, Serializable

public final class LatestConfigSpec
extends Object
implements ConfigSpec, Externalizable

Returns, in priority order, the latest iteration for a master owned by the current principal, the latest iteration by comparing the iterationIdentifier's series value if not owned by the current principal, or the latest by create Timestamp if the series values are equivalent. Note that only one iteration is returned for any given master.

Supported API: true

Extendable: false

See Also:
Iterated, IterationIdentifier, Series, Serialized Form

Field Summary
private static String CLASSNAME
           
private static String CLOSE_PAREN
           
static long EXTERNALIZATION_VERSION_UID
           
protected static long OLD_FORMAT_VERSION_UID
           
private static String RESOURCE
           
(package private) static long serialVersionUID
           
 
Constructor Summary
LatestConfigSpec()
           
 
Method Summary
 QuerySpec appendSearchCriteria(QuerySpec querySpec)
          Appends a "latest == true" condition to the QuerySpec.
 QueryResult process(QueryResult results)
          Returns (by priority) an iteration if the current principal owns it, the latest by IteratedSeriesValue if not, and the latest by creation Timestamp if the series values are equivalent.
 void readExternal(ObjectInput input)
          Reads the non-transient fields of this class from an external source.
private  boolean readOldVersion(ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source, which is not the current version.
protected  boolean readVersion(LatestConfigSpec thisObject, ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source.
(package private) static boolean shouldReplace(Iterated elementToReplace, Iterated replacingElement)
          Internal method used by both this and OwnershipIndependentLatestConfigSpec's process(...) API.
 void writeExternal(ObjectOutput output)
          Writes the non-transient fields of this class to an external source.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

CLASSNAME

private static final String CLASSNAME

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

EXTERNALIZATION_VERSION_UID

public static final long EXTERNALIZATION_VERSION_UID
See Also:
Constant Field Values

OLD_FORMAT_VERSION_UID

protected static final long OLD_FORMAT_VERSION_UID
See Also:
Constant Field Values

CLOSE_PAREN

private static final String CLOSE_PAREN
Constructor Detail

LatestConfigSpec

public LatestConfigSpec()
Method Detail

writeExternal

public void writeExternal(ObjectOutput output)
                   throws IOException
Writes the non-transient fields of this class to an external source.

Supported API: false

Specified by:
writeExternal in interface Externalizable
Parameters:
output -
Throws:
IOException

readExternal

public void readExternal(ObjectInput input)
                  throws IOException,
                         ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Specified by:
readExternal in interface Externalizable
Parameters:
input -
Throws:
IOException
ClassNotFoundException

readVersion

protected boolean readVersion(LatestConfigSpec thisObject,
                              ObjectInput input,
                              long readSerialVersionUID,
                              boolean passThrough,
                              boolean superDone)
                       throws IOException,
                              ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Parameters:
thisObject -
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

readOldVersion

private boolean readOldVersion(ObjectInput input,
                               long readSerialVersionUID,
                               boolean passThrough,
                               boolean superDone)
                        throws IOException,
                               ClassNotFoundException
Reads the non-transient fields of this class from an external source, which is not the current version.

Parameters:
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

appendSearchCriteria

public QuerySpec appendSearchCriteria(QuerySpec querySpec)
                               throws WTException,
                                      QueryException
Appends a "latest == true" condition to the QuerySpec.

Supported API: true

Specified by:
appendSearchCriteria in interface ConfigSpec
Parameters:
querySpec - A QuerySpec with a target class that is Iterated.
Returns:
QuerySpec
Throws:
WTException
QueryException
See Also:
QuerySpec, SearchCondition

process

public QueryResult process(QueryResult results)
                    throws WTException
Returns (by priority) an iteration if the current principal owns it, the latest by IteratedSeriesValue if not, and the latest by creation Timestamp if the series values are equivalent. Note that only one iteration is returned per master.

Supported API: true

Specified by:
process in interface ConfigSpec
Parameters:
results - QueryResult of iterations to filter. Assumed to be the result of a query that included the additional search conditions applied by appendSearchCriteria.
Returns:
QueryResult
Throws:
WTException
See Also:
Iterated, wt.vc.

shouldReplace

static boolean shouldReplace(Iterated elementToReplace,
                             Iterated replacingElement)
                      throws WTException
Internal method used by both this and OwnershipIndependentLatestConfigSpec's process(...) API. Note: it is assumed both arguments share the same master.

Throws:
WTException