org.araneaframework.backend.list.helper.naming
Class OrNamingStrategy

java.lang.Object
  extended byorg.araneaframework.backend.list.helper.naming.OrNamingStrategy
All Implemented Interfaces:
NamingStrategy

public class OrNamingStrategy
extends Object
implements NamingStrategy

Composite NamingStrategy that returns the result of the first child that gives a not-null value.

Since:
1.1
Author:
Rein Raudjärv

Constructor Summary
OrNamingStrategy()
           
 
Method Summary
 void add(NamingStrategy namingStrategy)
           
 void addFirst(NamingStrategy namingStrategy)
           
 String fieldToColumnAlias(String fieldName)
          Converts field name into database column alias.
 String fieldToColumnName(String fieldName)
          Converts field name into database column name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OrNamingStrategy

public OrNamingStrategy()
Method Detail

add

public void add(NamingStrategy namingStrategy)

addFirst

public void addFirst(NamingStrategy namingStrategy)

fieldToColumnAlias

public String fieldToColumnAlias(String fieldName)
Description copied from interface: NamingStrategy
Converts field name into database column alias.

When two or more tables are used in SELECT with the same column name they must be distinguishable. Thus each column name must be followed by a unique alias which is referred later in WHERE and ORDER BY clause and also in the result set.

In ORDER BY expressions cannot be used like COUNT(points) instead these expressions must be defined together with aliases in the column list right after SELECT.

An alias must not contain dots neither it can be a SQL expression.

E.g.
description -> DESCRIPTION
mother.firstName -> MOTHER_FIRST_NAME
father.firstName -> FATHER_FIRST_NAME
total -> TOTAL

Specified by:
fieldToColumnAlias in interface NamingStrategy
Parameters:
fieldName - field name of the list.
Returns:
corresponding database column alias used in SQL query.

fieldToColumnName

public String fieldToColumnName(String fieldName)
Description copied from interface: NamingStrategy
Converts field name into database column name.

E.g.
firstName -> FIRST_NAME
group.name -> G.NAME
name -> FIRSTNAME || " " || LASTNAME total -> sum(POINTS)

Specified by:
fieldToColumnName in interface NamingStrategy
Parameters:
fieldName - field name of the list.
Returns:
corresponding database column name used in SQL query.