3.1.2: 2012-07-31

net.sf.basedb.core
Class ReporterPropertyExpression

java.lang.Object
  extended by net.sf.basedb.core.ReporterPropertyExpression
All Implemented Interfaces:
Expression, QueryElement

public class ReporterPropertyExpression
extends Object
implements Expression

An expression representing the property of a reporter.

Throws an UnsupportedOperationException if Query.getQueryType() isn't QueryType.SQL.

Version:
2.0
Author:
Nicklas
See Also:
Dynamic.reporter(String)
Last modified
$Date: 2011-12-02 12:09:46 +0100 (Fri, 02 Dec 2011) $

Field Summary
private  String column
           
private  String property
           
private static Map<String,String> propertyToColumn
           
private  Boolean useCloned
           
 
Constructor Summary
ReporterPropertyExpression(String property)
          Create a new reporter property expression.
ReporterPropertyExpression(String property, Boolean useCloned)
          Create a new reporter property expression.
 
Method Summary
 boolean equals(Object other)
          This expression is equal to another ReporterPropertyExpression if they represent the same reporter property.
 Collection<? extends QueryElement> getChildren()
          Get the children of this query element or null if it has no children.
private static String getColumn(String property)
           
 int hashCode()
           
 String toQl(Query query, DbControl dc)
          Create a query language string of the query element.
 String toString()
           
 boolean useCloned(ClonableReporterQuery query)
          Check if this reporter property should use the cloned reporter for the given query or not.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

propertyToColumn

private static volatile Map<String,String> propertyToColumn

property

private final String property

column

private final String column

useCloned

private final Boolean useCloned
Constructor Detail

ReporterPropertyExpression

public ReporterPropertyExpression(String property)
                           throws InvalidDataException
Create a new reporter property expression. The expression automatically selects if cloned reporter information should be used or not.

Parameters:
property - The name of the property
Throws:
InvalidDataException

ReporterPropertyExpression

public ReporterPropertyExpression(String property,
                                  Boolean useCloned)
Create a new reporter property expression. The expression may be forced to use either the cloned or master reporter information.

Parameters:
property - The name of the property
useCloned - TRUE to use cloned reporter information (if available), FALSE to not use cloned information, null to automatically decide
Since:
3.1
Method Detail

toQl

public String toQl(Query query,
                   DbControl dc)
            throws BaseException
Description copied from interface: QueryElement
Create a query language string of the query element. Use the Query.getQueryType() method to find out which query language is wanted in case the element requires different syntax for different languages.

Specified by:
toQl in interface QueryElement
Parameters:
query - The query that is about to be executed
dc - The DbControl object used to execute the query
Throws:
BaseException - If there is any other error

getChildren

public Collection<? extends QueryElement> getChildren()
Description copied from interface: QueryElement
Get the children of this query element or null if it has no children. For example the AddExpression has two children, the expression beeing added.

Specified by:
getChildren in interface QueryElement
Returns:
Always null

toString

public String toString()
Overrides:
toString in class Object

equals

public boolean equals(Object other)
This expression is equal to another ReporterPropertyExpression if they represent the same reporter property.

Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

useCloned

public boolean useCloned(ClonableReporterQuery query)
Check if this reporter property should use the cloned reporter for the given query or not. If the query is using a virtual database that doesn't have cloned reporters, FALSE is returned. Othersise, if an explicit request has been made to use/not use cloned reporters, that value is returned. If no explicit request has been made, the outcome depends on the DynamicQuery.useClonedReporters().

Parameters:
query - The query to check with
Returns:
TRUE if the cloned reporter table should be used, FALSE if not
Since:
3.1

getColumn

private static String getColumn(String property)

3.1.2: 2012-07-31