EclipseLink 2.2.0, build 'v20110202-r8913' API Reference

org.eclipse.persistence.history
Class AsOfClause

java.lang.Object
  extended by org.eclipse.persistence.history.AsOfClause
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
AsOfSCNClause

public class AsOfClause
extends java.lang.Object
implements java.io.Serializable

Purpose:Wraps an immutable value for a past time. A session, query, or expression can be as of a past time.

For Oracle 9R2 Flasback corresponds to the sub clause which appears between the table and alias name in the FROM clause: SELECT ... FROM EMPLOYEE AS OF TIMESTAMP (value) t0, ...

For generic historical schema support, a special criteria can be added to the where clause for each table in a select: ((t0.ROW_START <= value) AND ((t0.END IS NULL) OR (t1.END > value)))

Responsibilities:

See Also:
Expression.asOf(AsOfClause), org.eclipse.persistence.queries.ObjectLevelReadQuery#asOf(AsOfClause), org.eclipse.persistence.sessions.Session#acquireSessionAsOf(AsOfClause), HistoryPolicy, Serialized Form
Author:
Stephen McRitchie
Since:
OracleAS TopLink 10g (10.0.3)

Field Summary
static AsOfClause NO_CLAUSE
           
 
Constructor Summary
protected AsOfClause(AsOfClause wrappedValue)
           
  AsOfClause(java.util.Calendar calendar)
           
  AsOfClause(java.util.Date date)
           
  AsOfClause(Expression expression)
           
  AsOfClause(long time)
           
  AsOfClause(java.lang.Long time)
           
protected AsOfClause(java.lang.Number number)
           
  AsOfClause(java.sql.Timestamp timestamp)
           
 
Method Summary
 boolean equals(java.lang.Object object)
          INTERNAL: Return if the as of is equal to the other.
 java.lang.Object getValue()
          PUBLIC: The past time represented by the receiver.
 boolean isAsOfSCNClause()
          PUBLIC: Indicates that value is a system change number or an expression evaluating to one.
 boolean isUniversal()
          PUBLIC: Answers if this is a UniversalAsOfClause, one to be applied to the entire selection criteria.
 void printSQL(org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer)
          INTERNAL: Prints the as of clause for an expression inside of the FROM clause.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NO_CLAUSE

public static final AsOfClause NO_CLAUSE
Constructor Detail

AsOfClause

public AsOfClause(java.util.Date date)

AsOfClause

public AsOfClause(java.sql.Timestamp timestamp)

AsOfClause

public AsOfClause(java.util.Calendar calendar)

AsOfClause

public AsOfClause(long time)

AsOfClause

public AsOfClause(java.lang.Long time)

AsOfClause

protected AsOfClause(java.lang.Number number)

AsOfClause

public AsOfClause(Expression expression)

AsOfClause

protected AsOfClause(AsOfClause wrappedValue)
Method Detail

equals

public boolean equals(java.lang.Object object)
INTERNAL: Return if the as of is equal to the other. Equality of asOf clauses is complex (with subclasses), so only use identity.

Overrides:
equals in class java.lang.Object

printSQL

public void printSQL(org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter printer)
INTERNAL: Prints the as of clause for an expression inside of the FROM clause.


getValue

public java.lang.Object getValue()
PUBLIC: The past time represented by the receiver. Either a timestamp, a system change number, or an Expression.


isAsOfSCNClause

public boolean isAsOfSCNClause()
PUBLIC: Indicates that value is a system change number or an expression evaluating to one.

In Oracle the value will have to be printed using the syntax AS OF SCN(value) instead of AS OF TIMESTAMP(value).

See Also:
AsOfSCNClause

isUniversal

public boolean isUniversal()
PUBLIC: Answers if this is a UniversalAsOfClause, one to be applied to the entire selection criteria.

Used when a query is made as of a past time.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

EclipseLink 2.2.0, build 'v20110202-r8913' API Reference