org.apache.openjpa.jdbc.kernel.exps
Class DatastoreFunction

java.lang.Object
  extended by org.apache.openjpa.jdbc.kernel.exps.DatastoreFunction
All Implemented Interfaces:
Serializable, Val, Value

public class DatastoreFunction
extends Object

A unary operator that executes a datastore specific function with zero or more arguments.

Author:
Pinaki Poddar
See Also:
Serialized Form

Field Summary
protected static String FALSE
           
protected static String TRUE
           
 
Fields inherited from interface org.apache.openjpa.jdbc.kernel.exps.Val
ABS_VAL, ARGS_VAL, CMP_EQUAL, COALESCE_VAL, CONCAT_VAL, FORCE_OUTER, GENERALCASE_VAL, INDEXOF_VAL, JOIN_REL, LENGTH_VAL, LOCATE_VAL, LOWER_VAL, MATH_VAL, NULL_CMP, NULLIF_VAL, SIMPLECASE_VAL, SQRT_VAL, SUBSTRING_VAL, TRIM_VAL, UPPER_VAL, VAL, WHENCONDITION_VAL, WHENSCALAR_VAL
 
Constructor Summary
DatastoreFunction(String name, Class<?> resultType, Arguments args)
           
 
Method Summary
 void acceptVisit(ExpressionVisitor visitor)
          Accept a visit from a tree visitor.
 void appendIndex(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
          Append the SQL checking the index of this value.
 void appendIsEmpty(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
          Append the SQL testing whether this value is empty to the given buffer.
 void appendIsNotEmpty(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
          Append the SQL testing whether this value is not empty to the given buffer.
 void appendIsNotNull(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
          Append the SQL testing whether this value is not null to the given buffer.
 void appendIsNull(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
          Append the SQL testing whether this value is null to the given buffer.
 void appendSize(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
          Append the SQL checking the size of this value.
 void appendTo(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql, int index)
          Append the indexth SQL element to the given buffer.
 void appendType(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
          Append the SQL checking the type of this value.
 void calculateValue(Select sel, ExpContext ctx, ExpState state, Val other, ExpState otherState)
          Calculate and cache the SQL for this value.
 String getAlias()
          Return select item alias
 int getId()
           
 ClassMetaData getMetaData()
          Return any associated persistent type.
 String getName()
           
 boolean getNoParen()
           
protected  String getOperator()
          Return the name of this operator.
 Path getPath()
           
 Value getSelectAs()
          Return 'this' concrete class if alias is set, otherwise null
 Class getType()
          Return the expected type for this value, or Object if the type is unknown.
protected  Class getType(Class c)
          Return the type of this value based on the argument type.
 Val getValue()
           
 void groupBy(Select sel, ExpContext ctx, ExpState state)
          Group by this value.
 ExpState initialize(Select sel, ExpContext ctx, int flags)
          Initialize the value.
protected  ExpState initializeValue(Select sel, ExpContext ctx, int flags)
           
 boolean isAggregate()
          Return true if this value is an aggregate.
 boolean isVariable()
          Return true if this value is a variable.
 boolean isXPath()
          Return true if this value is an XML Path.
 int length(Select sel, ExpContext ctx, ExpState state)
          Return the number of SQL elements in this value.
 Object load(ExpContext ctx, ExpState state, Result res)
          Load the data for this value.
 void orderBy(Select sel, ExpContext ctx, ExpState state, boolean asc)
          Order by this value.
 void select(Select sel, ExpContext ctx, ExpState state, boolean pks)
          Select the data for this value.
 void selectColumns(Select sel, ExpContext ctx, ExpState state, boolean pks)
          Select just the columns for this value.
 void setAlias(String alias)
          Set select item alias
 void setImplicitType(Class type)
          Set the implicit type of the value, based on how it is used in the filter.
 void setMetaData(ClassMetaData meta)
          Associate a persistent type with this value.
 Object toDataStoreValue(Select sel, ExpContext ctx, ExpState state, Object val)
          Return the datastore value of the given object in the context of this value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRUE

protected static final String TRUE
See Also:
Constant Field Values

FALSE

protected static final String FALSE
See Also:
Constant Field Values
Constructor Detail

DatastoreFunction

public DatastoreFunction(String name,
                         Class<?> resultType,
                         Arguments args)
Method Detail

getOperator

protected String getOperator()
Return the name of this operator.


appendTo

public void appendTo(Select sel,
                     ExpContext ctx,
                     ExpState state,
                     SQLBuffer sql,
                     int index)
Description copied from interface: Val
Append the indexth SQL element to the given buffer.

Specified by:
appendTo in interface Val

getValue

public Val getValue()

getMetaData

public ClassMetaData getMetaData()
Description copied from interface: Value
Return any associated persistent type.


setMetaData

public void setMetaData(ClassMetaData meta)
Description copied from interface: Value
Associate a persistent type with this value.


getType

public Class getType()
Description copied from interface: Value
Return the expected type for this value, or Object if the type is unknown.


setImplicitType

public void setImplicitType(Class type)
Description copied from interface: Value
Set the implicit type of the value, based on how it is used in the filter. This method is only called on values who return Object from Value.getType().


getNoParen

public boolean getNoParen()

initialize

public ExpState initialize(Select sel,
                           ExpContext ctx,
                           int flags)
Description copied from interface: Val
Initialize the value. This method should recursively initialize any sub-values.


initializeValue

protected ExpState initializeValue(Select sel,
                                   ExpContext ctx,
                                   int flags)

select

public void select(Select sel,
                   ExpContext ctx,
                   ExpState state,
                   boolean pks)
Description copied from interface: Val
Select the data for this value.


selectColumns

public void selectColumns(Select sel,
                          ExpContext ctx,
                          ExpState state,
                          boolean pks)
Description copied from interface: Val
Select just the columns for this value.


groupBy

public void groupBy(Select sel,
                    ExpContext ctx,
                    ExpState state)
Description copied from interface: Val
Group by this value.


orderBy

public void orderBy(Select sel,
                    ExpContext ctx,
                    ExpState state,
                    boolean asc)
Description copied from interface: Val
Order by this value.


load

public Object load(ExpContext ctx,
                   ExpState state,
                   Result res)
            throws SQLException
Description copied from interface: Val
Load the data for this value.

Throws:
SQLException

calculateValue

public void calculateValue(Select sel,
                           ExpContext ctx,
                           ExpState state,
                           Val other,
                           ExpState otherState)
Description copied from interface: Val
Calculate and cache the SQL for this value. This method is called before length or any append methods.

other - the value being compared to, or null if not a comparison

length

public int length(Select sel,
                  ExpContext ctx,
                  ExpState state)
Description copied from interface: Val
Return the number of SQL elements in this value.


getType

protected Class getType(Class c)
Return the type of this value based on the argument type. Returns the argument type by default.


acceptVisit

public void acceptVisit(ExpressionVisitor visitor)
Description copied from interface: Value
Accept a visit from a tree visitor.

Specified by:
acceptVisit in interface Value

isVariable

public boolean isVariable()
Description copied from interface: Value
Return true if this value is a variable.

Specified by:
isVariable in interface Value

isAggregate

public boolean isAggregate()
Description copied from interface: Value
Return true if this value is an aggregate.

Specified by:
isAggregate in interface Value

isXPath

public boolean isXPath()
Description copied from interface: Value
Return true if this value is an XML Path.

Specified by:
isXPath in interface Value

toDataStoreValue

public Object toDataStoreValue(Select sel,
                               ExpContext ctx,
                               ExpState state,
                               Object val)
Description copied from interface: Val
Return the datastore value of the given object in the context of this value.

Specified by:
toDataStoreValue in interface Val

appendIsEmpty

public void appendIsEmpty(Select sel,
                          ExpContext ctx,
                          ExpState state,
                          SQLBuffer sql)
Description copied from interface: Val
Append the SQL testing whether this value is empty to the given buffer.

Specified by:
appendIsEmpty in interface Val

appendIsNotEmpty

public void appendIsNotEmpty(Select sel,
                             ExpContext ctx,
                             ExpState state,
                             SQLBuffer sql)
Description copied from interface: Val
Append the SQL testing whether this value is not empty to the given buffer.

Specified by:
appendIsNotEmpty in interface Val

appendIsNull

public void appendIsNull(Select sel,
                         ExpContext ctx,
                         ExpState state,
                         SQLBuffer sql)
Description copied from interface: Val
Append the SQL testing whether this value is null to the given buffer.

Specified by:
appendIsNull in interface Val

appendIsNotNull

public void appendIsNotNull(Select sel,
                            ExpContext ctx,
                            ExpState state,
                            SQLBuffer sql)
Description copied from interface: Val
Append the SQL testing whether this value is not null to the given buffer.

Specified by:
appendIsNotNull in interface Val

appendIndex

public void appendIndex(Select sel,
                        ExpContext ctx,
                        ExpState state,
                        SQLBuffer sql)
Description copied from interface: Val
Append the SQL checking the index of this value.

Specified by:
appendIndex in interface Val

appendType

public void appendType(Select sel,
                       ExpContext ctx,
                       ExpState state,
                       SQLBuffer sql)
Description copied from interface: Val
Append the SQL checking the type of this value.

Specified by:
appendType in interface Val

appendSize

public void appendSize(Select sel,
                       ExpContext ctx,
                       ExpState state,
                       SQLBuffer sql)
Description copied from interface: Val
Append the SQL checking the size of this value.

Specified by:
appendSize in interface Val

getId

public int getId()
Specified by:
getId in interface Val

getAlias

public String getAlias()
Description copied from interface: Value
Return select item alias

Specified by:
getAlias in interface Value

setAlias

public void setAlias(String alias)
Description copied from interface: Value
Set select item alias

Specified by:
setAlias in interface Value

getSelectAs

public Value getSelectAs()
Description copied from interface: Value
Return 'this' concrete class if alias is set, otherwise null

Specified by:
getSelectAs in interface Val
Specified by:
getSelectAs in interface Value

getPath

public Path getPath()
Specified by:
getPath in interface Value

getName

public String getName()
Specified by:
getName in interface Value


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