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

java.lang.Object
  extended by org.apache.empire.commons.ErrorObject
      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
                      extended by org.apache.empire.db.expr.column.DBDecodeExpr
All Implemented Interfaces:
ErrorInfo, ColumnExpr

public class DBDecodeExpr
extends DBAbstractFuncExpr

This class is used to decode a set of keys to the corresponding target values. For most drivers this will be performed by the "case ? when A then X else Y end" statement.

There is no need to explicitly create instances of this class.
Instead use DBColumnExpr.when(DBCompareExpr, Object)

Author:
doebele

Field Summary
 
Fields inherited from class org.apache.empire.db.DBColumnExpr
DBCOLATTR_TITLE, DBCOLATTR_TYPE
 
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
DBDecodeExpr(DBColumnExpr expr, java.util.Map<?,?> valueMap, java.lang.Object elseExpr, DataType dataType)
          Constructs a DBDecodeExpr
 
Method Summary
 void addReferencedColumns(java.util.Set<DBColumn> list)
          Internal function to obtain all DBColumnExpr-objects used by this expression.
 void addSQL(java.lang.StringBuilder sql, long context)
          Used to build the SQL command.
 
Methods inherited from class org.apache.empire.db.expr.column.DBAbstractFuncExpr
addSQL, addXml, getDatabase, getDataType, getName, getUpdateColumn, isAggregate
 
Methods inherited from class org.apache.empire.db.DBColumnExpr
abs, append, as, as, avg, cmp, coalesce, convertTo, convertTo, count, countDistinct, day, decode, decode, decode, decode, decode, decode, divideBy, getAttribute, getBeanPropertyName, getControlType, 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
getValueClass
 
Methods inherited from class org.apache.empire.commons.ErrorObject
clearError, getErrorMessage, getErrorParams, getErrorSource, getErrorType, getMessage, hasError, isExceptionsEnabled, setExceptionsEnabled
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBDecodeExpr

public DBDecodeExpr(DBColumnExpr expr,
                    java.util.Map<?,?> valueMap,
                    java.lang.Object elseExpr,
                    DataType dataType)
Constructs a DBDecodeExpr

Parameters:
expr - the expression to be decoded
valueMap - a map of keys and values used for decoding
elseExpr - the expression returned if the condition is false (may be null)
dataType - the target data type
Method Detail

addReferencedColumns

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

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

addSQL

public void addSQL(java.lang.StringBuilder sql,
                   long context)
Description copied from class: DBExpr
Used to build the SQL command. SQL for this expression must be appended to StringBuilder.

Specified by:
addSQL in class DBExpr
Parameters:
sql - the string buffer used to build the sql command
context - context flag for this SQL-Command (see CTX_??? constants).