Class DBAbstractFuncExpr

All Implemented Interfaces:
ColumnExpr, DBPreparable
Direct Known Subclasses:
DBCoalesceExpr, DBConcatFuncExpr, DBConvertExpr, DBDecodeExpr, DBFuncExpr, PostgresFuncExpr

public abstract class DBAbstractFuncExpr extends DBColumnExpr implements DBPreparable
This implements some basic functionality for SQL functions based on a column expression
  • Field Details

    • log

      protected static final org.slf4j.Logger log
    • expr

      protected final DBColumnExpr expr
    • isAggregate

      protected final boolean isAggregate
    • dataType

      protected final DataType dataType
  • Constructor Details

    • DBAbstractFuncExpr

      public DBAbstractFuncExpr(DBColumnExpr expr, 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
      isAggregate - indicates whether the function is an aggregate function (sum, min, max, avg, ...)
      dataType - indicates the data type of the function result
  • Method Details

    • getFunctionName

      protected abstract String getFunctionName()
      returns the name of the function
      Returns:
      the function name
    • getDbms

      protected DBMSHandler getDbms()
      returns the Database dbms or null if the Expression is not attached to an open database
      This function is intended for convenience only.
      Returns:
      the dbms handler
    • getDatabase

      public final 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:
    • getEnumType

      public Class<Enum<?>> getEnumType()
      Maybe an Enum...
      Specified by:
      getEnumType in interface ColumnExpr
      Returns:
      the enum type
    • getName

      public String getName()
      Returns the column name.
      Specified by:
      getName in interface ColumnExpr
      Specified by:
      getName in class DBColumnExpr
      Returns:
      the column name
    • getRowSet

      public DBRowSet getRowSet()
      Returns the underlying rowset
      Specified by:
      getRowSet in class DBColumnExpr
      Returns:
      a column used for this expression
    • getUpdateColumn

      public DBColumn getUpdateColumn()
      Returns the DBColunm object.
      Specified by:
      getUpdateColumn in interface ColumnExpr
      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:
    • equals

      public boolean equals(Object other)
      Returns true if other is equal to this expression
      Overrides:
      equals in class Object
    • prepareParams

      public void prepareParams(DBCommand cmd, DBExpr parent)
      Description copied from interface: DBPreparable
      Prepares an expression for a query This function is called by DBCommand in order to add values as query parameters instead of being literally included in the sql statement Please Note: This function is internally called. Do not call yourself!
      Specified by:
      prepareParams in interface DBPreparable
      Parameters:
      cmd - the command to which to add the parameters
      parent - the parent expression holding the value
    • addSQL

      public final void addSQL(DBSQLBuilder 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