org.sormula.translator
Class OrderByTranslator<R>

java.lang.Object
  extended by org.sormula.translator.ColumnsTranslator<R>
      extended by org.sormula.translator.OrderByTranslator<R>
Type Parameters:
R - row class

public class OrderByTranslator<R>
extends ColumnsTranslator<R>

Supplies order by phrase.

Since:
1.0
Author:
Jeff Miller

Constructor Summary
OrderByTranslator(RowTranslator<R> rowTranslator, OrderBy orderByAnnotation)
          Constructs for an order by annotation.
OrderByTranslator(RowTranslator<R> rowTranslator, java.lang.String orderByName)
          Deprecated. 
 
Method Summary
 void addColumnTranslator(ColumnTranslator<R> c)
          Adds column translator with empty string qualifier.
 void addColumnTranslator(ColumnTranslator<R> c, java.lang.String qualifier)
          Adds translator with a specific qualifier.
 java.lang.String createColumnOrderByPhrase()
          Creates column phrase with qualifiers.
 java.lang.String createSql()
          Creates order by phrase.
protected  void initColumnTranslatorList(int columns)
          Initializes objects to hold all column information.
protected  void initSimpleOrderByColumns(RowTranslator<R> rowTranslator, java.lang.String[] fieldNames, java.lang.String qualifier)
          Initializes when all columns used the same qualifier.
 
Methods inherited from class org.sormula.translator.ColumnsTranslator
createColumnParameterPhrase, createColumnPhrase, createParameterPhrase, getColumnTranslator, getColumnTranslatorList, getRowClass, isIncludeIdentityColumns, read, setIncludeIdentityColumns, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OrderByTranslator

@Deprecated
public OrderByTranslator(RowTranslator<R> rowTranslator,
                                    java.lang.String orderByName)
                  throws TranslatorException
Deprecated. 

Not used. Looks for order condition only in row class and not any other class.

Parameters:
rowTranslator - row translator from which to get column information
orderByName - name supplied in OrderBy
Throws:
TranslatorException - if error

OrderByTranslator

public OrderByTranslator(RowTranslator<R> rowTranslator,
                         OrderBy orderByAnnotation)
                  throws TranslatorException
Constructs for an order by annotation.

Parameters:
rowTranslator - row translator from which to get column information
orderByAnnotation - annotation with order information
Throws:
TranslatorException - if error
Method Detail

initSimpleOrderByColumns

protected void initSimpleOrderByColumns(RowTranslator<R> rowTranslator,
                                        java.lang.String[] fieldNames,
                                        java.lang.String qualifier)
                                 throws NoColumnTranslatorException
Initializes when all columns used the same qualifier.

Parameters:
rowTranslator - row translator for row
fieldNames - names of fields used in ordering
qualifier - empty String, "ASC", "DESC"
Throws:
NoColumnTranslatorException - if no ColumnTranslator exists for a field name

addColumnTranslator

public void addColumnTranslator(ColumnTranslator<R> c)
Adds column translator with empty string qualifier.

Overrides:
addColumnTranslator in class ColumnsTranslator<R>
Parameters:
c - translator to add

addColumnTranslator

public void addColumnTranslator(ColumnTranslator<R> c,
                                java.lang.String qualifier)
Adds translator with a specific qualifier.

Parameters:
c - translator to add
qualifier - string to append after the order by column (example "ASC" or "DESC")

initColumnTranslatorList

protected void initColumnTranslatorList(int columns)
Initializes objects to hold all column information.

Overrides:
initColumnTranslatorList in class ColumnsTranslator<R>
Parameters:
columns - approximatenumber of columns that will be in translator (used as initial capacity)

createSql

public java.lang.String createSql()
Creates order by phrase.

Returns:
"ORDER BY c1, c2, c3..."

createColumnOrderByPhrase

public java.lang.String createColumnOrderByPhrase()
Creates column phrase with qualifiers. Typically used in order by clause.

Returns:
"c1 q1, c2 q2, c3 q3..."