org.apache.empire.db.expr.column
Class DBAbstractFuncExpr

java.lang.Object
  extended by org.apache.empire.db.DBObject
      extended by org.apache.empire.db.DBExpr
          extended by org.apache.empire.db.DBColumnExpr
              extended by org.apache.empire.db.expr.column.DBAbstractFuncExpr
All Implemented Interfaces:
Serializable, ColumnExpr
Direct Known Subclasses:
DBConvertExpr, DBDecodeExpr, DBFuncExpr

public abstract class DBAbstractFuncExpr
extends DBColumnExpr

This implements some basic functionality for SQL functions based on a column expression

See Also:
Serialized Form

Field Summary
protected  DataType dataType
           
protected  DBColumnExpr expr
           
protected  boolean isAggregate
           
protected  DBColumn updateColumn
           
 
Fields inherited from class org.apache.empire.db.DBColumnExpr
attributes, beanPropertyName, DBCOLATTR_TITLE, DBCOLATTR_TYPE, options
 
Fields inherited from class org.apache.empire.db.DBExpr
CTX_ALIAS, CTX_ALL, CTX_DEFAULT, CTX_FULLNAME, CTX_NAME, CTX_NOPARENTHESES, CTX_VALUE
 
Constructor Summary
DBAbstractFuncExpr(DBColumnExpr expr, DBColumn updateColumn, boolean isAggregate, DataType dataType)
          Constructs a new DBFuncExpr object set the specified parameters to this object.
 
Method Summary
 void addReferencedColumns(Set<DBColumn> list)
          Internal function to obtain all DBColumnExpr-objects used by this expression.
 void addSQL(StringBuilder sql, String template, Object[] params, long context)
          Creates the SQL-Command adds a function to the SQL-Command.
 Element addXml(Element parent, long flags)
          Add a description of this column with relevant metadata to the supplied parent XML Element.
 DBDatabase getDatabase()
          Returns the current DBDatabase object.
protected  DBDatabaseDriver getDatabaseDriver()
          returns the Database driver or null if the Expression is not attached to an open database
This function is intended for convenience only.
 DataType getDataType()
          Returns the data type of the DBColumnExpr object.
protected abstract  String getFunctionName()
          returns the name of the function
 String getName()
          Returns the column name.
 DBColumn getUpdateColumn()
          Returns the DBColunm object.
 boolean isAggregate()
          Returns whether the function is an aggegation function
that combines multiple rows to one result row.
 
Methods inherited from class org.apache.empire.db.DBColumnExpr
abs, append, as, as, asc, avg, cmp, coalesce, convertTo, convertTo, count, countDistinct, day, decode, decode, decode, decode, decode, decode, desc, detectDataType, divideBy, getAttribute, getBeanPropertyName, getControlType, getExprFromPhrase, getExprFromPhrase, getOptions, getSourceColumn, getTitle, in, indexOf, indexOf, indexOf, is, isBetween, isGreaterThan, isLessOrEqual, isMoreOrEqual, isNot, isNotBetween, isSmallerThan, length, like, like, likeLower, likeUpper, lower, max, min, minus, minus, month, multiplyWith, notIn, notLike, nvl, parenthesis, plus, plus, replace, reverse, round, setAttribute, setBeanPropertyName, setControlType, setOptions, setTitle, substring, substring, substring, substring, substring, substring, sum, toChar, toChar, trim, trimLeft, trimRight, trunc, upper, when, year
 
Methods inherited from class org.apache.empire.db.DBExpr
addSQL, getObjectValue, getValueClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

expr

protected final DBColumnExpr expr

updateColumn

protected final DBColumn updateColumn

isAggregate

protected final boolean isAggregate

dataType

protected final DataType dataType
Constructor Detail

DBAbstractFuncExpr

public DBAbstractFuncExpr(DBColumnExpr expr,
                          DBColumn updateColumn,
                          boolean isAggregate,
                          DataType dataType)
Constructs a new DBFuncExpr object set the specified parameters to this object. Do not use directly - use any of the DBColumnExpr.??? factory functions instead!

Parameters:
expr - the DBColumnExpr object
updateColumn - optional update column if any. This parameter may be null
isAggregate - indicates whether the function is an aggregate function (sum, min, max, avg, ...)
dataType - indicates the data type of the function result
Method Detail

getFunctionName

protected abstract String getFunctionName()
returns the name of the function

Returns:
the function name

getDatabaseDriver

protected final DBDatabaseDriver getDatabaseDriver()
returns the Database driver or null if the Expression is not attached to an open database
This function is intended for convenience only.


getDatabase

public DBDatabase getDatabase()
Returns the current DBDatabase object.

Specified by:
getDatabase in class DBObject
Returns:
the current DBDatabase object

getDataType

public DataType getDataType()
Returns the data type of the DBColumnExpr object.

Specified by:
getDataType in interface ColumnExpr
Specified by:
getDataType in class DBColumnExpr
Returns:
the data type
See Also:
DataType

getName

public String getName()
Returns the column name.

Specified by:
getName in interface ColumnExpr
Specified by:
getName in class DBColumnExpr
Returns:
the column name

getUpdateColumn

public DBColumn getUpdateColumn()
Returns the DBColunm object.

Specified by:
getUpdateColumn in class DBColumnExpr
Returns:
the DBColunm object

isAggregate

public boolean isAggregate()
Returns whether the function is an aggegation function
that combines multiple rows to one result row.

Specified by:
isAggregate in class DBColumnExpr
Returns:
true if the function is an aggregate or false otherwise

addReferencedColumns

public void addReferencedColumns(Set<DBColumn> list)
Description copied from class: DBExpr
Internal function to obtain all DBColumnExpr-objects used by this expression.

Specified by:
addReferencedColumns in class DBExpr
Parameters:
list - list to which all used column expressions must be added
See Also:
DBExpr.addReferencedColumns(Set)

addSQL

public final void addSQL(StringBuilder sql,
                         String template,
                         Object[] params,
                         long context)
Creates the SQL-Command adds a function to the SQL-Command. The sql function string is built from a string template. The template string must contain a ? which is a placeholder for the column expression.

Parameters:
sql - the SQL-Command
template - the function template string.
params - an array of function parameters
context - the current SQL-Command context

addXml

public Element addXml(Element parent,
                      long flags)
Description copied from class: DBColumnExpr
Add a description of this column with relevant metadata to the supplied parent XML Element.

Specified by:
addXml in class DBColumnExpr
Parameters:
parent - the parent element to which to append the column description
flags - currently not used
Returns:
the newly created child element


Copyright © 2008–2014 Apache Software Foundation. All rights reserved.