ro.nextreports.engine.util
Class ParameterUtil

Package class diagram package ParameterUtil
java.lang.Object
  extended by ro.nextreports.engine.util.ParameterUtil

public class ParameterUtil
extends java.lang.Object

Utilities class to work with report parameters


Field Summary
static java.lang.String NULL
          String to pass to an empty list -> new Object[NULL]
 
Constructor Summary
ParameterUtil()
           
 
Method Summary
static boolean allParametersAreHidden(java.util.Map<java.lang.String,QueryParameter> map)
          See if all parameters are hidden
static boolean allParametersHaveDefaults(java.util.Map<java.lang.String,QueryParameter> map)
          See if all parameters have default values
static boolean checkForParametersWithDefaultSource(Report report)
          Check if report has at least a parameter with a default source (will need a connection to get values)
static java.util.Map<java.lang.String,QueryParameter> getChildDependentParameters(java.util.List<QueryParameter> params, QueryParameter p)
          Get child dependent parameters
static java.util.Map<java.lang.String,QueryParameter> getChildDependentParameters(Report report, QueryParameter p)
          Get child dependent parameters
static java.util.List<IdName> getColumnValues(java.sql.Connection con, java.lang.String schema, java.lang.String table, java.lang.String columnName, java.lang.String shownColumnName, byte orderBy)
          Get values from a column in the database
static java.lang.String getDebugParameters(java.util.Map<java.lang.String,? extends java.lang.Object> parametersValues)
          Get a string representation of all parameters values
static java.util.ArrayList<java.io.Serializable> getDefaultSourceValues(java.sql.Connection con, QueryParameter qp)
          Get values for a default source
static java.util.Map<java.lang.String,QueryParameter> getOrderedParametersMap(ro.nextreports.engine.queryexec.Query query, java.util.Map<java.lang.String,QueryParameter> allParameters)
          Get ordered parameters map (dependent parameters are after their dependents) where the key is the parameter name and the value is the parameter The result will contain also the hidden parameters and all parameters used just inside other parameters.
static QueryParameter getParameterByName(java.util.List<QueryParameter> params, java.lang.String parameterName)
          Get parameter by name
static QueryParameter getParameterByName(Report report, java.lang.String parameterName)
          Get parameter by name
static java.lang.Object getParameterValueFromString(java.lang.String parameterClass, java.lang.String value)
          Get parameter value from a string represenation
static java.lang.Object getParameterValueFromString(java.lang.String parameterClass, java.lang.String value, java.text.SimpleDateFormat sdf)
          Get parameter value from a string represenation
static java.util.List<IdName> getParameterValues(java.sql.Connection con, QueryParameter parameter)
          Get values for a parameter from a database If a parameter is dependent of another parameter(s) his values will not be loaded
static java.util.List<IdName> getParameterValues(java.sql.Connection con, QueryParameter qp, java.util.Map<java.lang.String,QueryParameter> map, java.util.Map<java.lang.String,java.io.Serializable> vals)
          Get values for a dependent parameter sql All parent parameters must have the values in the map.
static java.util.Map<java.lang.String,QueryParameter> getParentDependentParameters(java.util.List<QueryParameter> params, QueryParameter p)
          Get parent dependent parameters
static java.util.Map<java.lang.String,QueryParameter> getParentDependentParameters(Report report, QueryParameter p)
          Get parent dependent parameters
static java.util.List<IdName> getRuntimeParameterValues(java.sql.Connection con, QueryParameter qp, java.util.Map<java.lang.String,QueryParameter> map, java.util.Map<java.lang.String,java.lang.Object> vals)
          Get values for a parameter sql at runtime All parent parameters must have the values in the map.
static java.util.List<IdName> getSelectValues(java.sql.Connection con, java.lang.String select, boolean sort, byte orderBy)
          Get values returned by a select (with one or two fields)
static java.util.Map<java.lang.String,QueryParameter> getUsedHiddenParametersMap(Report report)
          Get used hidden parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage.
static java.util.Map<java.lang.String,QueryParameter> getUsedNotHiddenParametersMap(Report report)
          Get used parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage.
static java.util.Map<java.lang.String,QueryParameter> getUsedParametersMap(ro.nextreports.engine.queryexec.Query query, java.util.Map<java.lang.String,QueryParameter> allParameters)
          Get used parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage.
static java.util.Map<java.lang.String,QueryParameter> getUsedParametersMap(Report report)
          Get used parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage.
static java.util.Map<java.lang.String,QueryParameter> getUsedParametersMap(java.lang.String sql, java.util.Map<java.lang.String,QueryParameter> allParameters)
          Get used parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage.
static void initAllRuntimeParameterValues(java.sql.Connection conn, QueryParameter param, java.util.Map<java.lang.String,QueryParameter> map, java.util.Map<java.lang.String,java.lang.Object> parameterValues)
          Init parameter values map with all the values from select source of a parameter at runtime
static void initAllRuntimeParameterValues(QueryParameter param, java.util.List<IdName> values, java.util.Map<java.lang.String,java.lang.Object> parameterValues)
          Init parameter values map with all the values
static void initDefaultParameterValues(java.sql.Connection conn, QueryParameter param, java.util.Map<java.lang.String,java.lang.Object> parameterValues)
          Init parameter values map with the default values (static or dynamic) of a parameter
static void initDefaultParameterValues(QueryParameter param, java.util.List<java.io.Serializable> defValues, java.util.Map<java.lang.String,java.lang.Object> parameterValues)
          Init parameter values map with the default values
static void initDefaultSParameterValues(java.sql.Connection conn, QueryParameter param, java.util.Map<java.lang.String,java.io.Serializable> parameterValues)
          Init parameter values map with the default values (static or dynamic) of a parameter
static void initDefaultSParameterValues(QueryParameter param, java.util.List<java.io.Serializable> defValues, java.util.Map<java.lang.String,java.io.Serializable> parameterValues)
          Init parameter values map with the default values
static void initNotHiddenDefaultParameterValues(java.sql.Connection conn, Report report, java.util.Map<java.lang.String,java.lang.Object> parameterValues)
          Init parameter values map with the default values (static or dynamic) for all not-hidden parameters of a report
static void initStaticDefaultParameterValues(QueryParameter param, java.util.Map<java.lang.String,java.lang.Object> parameterValues)
          Init parameter values map with the static default values of a parameter
static void initStaticNotHiddenDefaultParameterValues(Report report, java.util.Map<java.lang.String,java.lang.Object> parameterValues)
          Init parameter values map with the static default values for all not-hidden parameters of a report
static java.util.Map<java.lang.String,QueryParameter> intersectParametersMap(java.util.List<Report> reports)
          Get a map with all the identical parameters for a list of reports
static boolean isDateTime(QueryParameter qp)
          Test if a parameter has a date or time class name: Date, Time, Timestamp
 void parametersAreDefined(Report report)
          Test if all parameters used in the report are defined
static java.util.Map<java.lang.String,QueryParameter> toMap(java.util.List<QueryParameter> parameters)
          Convert a list of QueryParameter object to a map where the key is the parameter name and the value is the parameter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NULL

public static final java.lang.String NULL
String to pass to an empty list -> new Object[NULL]

See Also:
Constant Field Values
Constructor Detail

ParameterUtil

public ParameterUtil()
Method Detail

parametersAreDefined

public void parametersAreDefined(Report report)
                          throws ro.nextreports.engine.util.ParameterNotFoundException
Test if all parameters used in the report are defined

Parameters:
report - report object
Throws:
ro.nextreports.engine.util.ParameterNotFoundException - if a parameter used in the report is not defined

getParameterValues

public static java.util.List<IdName> getParameterValues(java.sql.Connection con,
                                                        QueryParameter parameter)
                                                 throws java.sql.SQLException,
                                                        ro.nextreports.engine.querybuilder.sql.dialect.DialectException
Get values for a parameter from a database If a parameter is dependent of another parameter(s) his values will not be loaded

Parameters:
con - connection to database
parameter - parameter
Returns:
a list of parameter values
Throws:
java.sql.SQLException - if an error to sql execution appears
ro.nextreports.engine.querybuilder.sql.dialect.DialectException - if dialect not found

getColumnValues

public static java.util.List<IdName> getColumnValues(java.sql.Connection con,
                                                     java.lang.String schema,
                                                     java.lang.String table,
                                                     java.lang.String columnName,
                                                     java.lang.String shownColumnName,
                                                     byte orderBy)
                                              throws java.sql.SQLException,
                                                     ro.nextreports.engine.querybuilder.sql.dialect.DialectException
Get values from a column in the database

Parameters:
con - database connection
schema - schema name
table - table
columnName - column name
shownColumnName - shown column name
orderBy - order by
Returns:
a list of values (columnName, shownColumnName)
Throws:
java.sql.SQLException - if an error to sql execution appears
ro.nextreports.engine.querybuilder.sql.dialect.DialectException - if dialect is not found

getSelectValues

public static java.util.List<IdName> getSelectValues(java.sql.Connection con,
                                                     java.lang.String select,
                                                     boolean sort,
                                                     byte orderBy)
                                              throws java.sql.SQLException,
                                                     ro.nextreports.engine.querybuilder.sql.dialect.DialectException
Get values returned by a select (with one or two fields)

Parameters:
con - database connection
select - select
sort - if true sort after id
orderBy - order by name or id
Returns:
a list of values
Throws:
java.sql.SQLException - if an error to sql execution appears
ro.nextreports.engine.querybuilder.sql.dialect.DialectException - if dialect is not found

getRuntimeParameterValues

public static java.util.List<IdName> getRuntimeParameterValues(java.sql.Connection con,
                                                               QueryParameter qp,
                                                               java.util.Map<java.lang.String,QueryParameter> map,
                                                               java.util.Map<java.lang.String,java.lang.Object> vals)
                                                        throws java.lang.Exception
Get values for a parameter sql at runtime All parent parameters must have the values in the map.

Parameters:
con - database connection
qp - parameter
map - report map of parameters
vals - map of parameter values
Returns:
values for parameter with sql source
Throws:
java.lang.Exception - if an exception occurs

getParameterValues

public static java.util.List<IdName> getParameterValues(java.sql.Connection con,
                                                        QueryParameter qp,
                                                        java.util.Map<java.lang.String,QueryParameter> map,
                                                        java.util.Map<java.lang.String,java.io.Serializable> vals)
                                                 throws java.lang.Exception
Get values for a dependent parameter sql All parent parameters must have the values in the map.

Parameters:
con - database connection
qp - parameter
map - report map of parameters
vals - map of parameter values
Returns:
values for parameter with sql source
Throws:
java.lang.Exception - if an exception occurs

getDefaultSourceValues

public static java.util.ArrayList<java.io.Serializable> getDefaultSourceValues(java.sql.Connection con,
                                                                               QueryParameter qp)
                                                                        throws java.lang.Exception
Get values for a default source

Parameters:
con - connection
qp - parameter
Returns:
a list of default values
Throws:
java.lang.Exception - if select failes

getChildDependentParameters

public static java.util.Map<java.lang.String,QueryParameter> getChildDependentParameters(Report report,
                                                                                         QueryParameter p)
Get child dependent parameters

Parameters:
report - next report object
p - current parameter
Returns:
a map of all parameters that use the current parameter in theirs source definition

getChildDependentParameters

public static java.util.Map<java.lang.String,QueryParameter> getChildDependentParameters(java.util.List<QueryParameter> params,
                                                                                         QueryParameter p)
Get child dependent parameters

Parameters:
params - list of parameters
p - current parameter
Returns:
a map of all parameters that use the current parameter in theirs source definition

getParentDependentParameters

public static java.util.Map<java.lang.String,QueryParameter> getParentDependentParameters(Report report,
                                                                                          QueryParameter p)
Get parent dependent parameters

Parameters:
report - next report object
p - current parameter
Returns:
a map of all parameters that are used in the source definition of the current parameter

getParentDependentParameters

public static java.util.Map<java.lang.String,QueryParameter> getParentDependentParameters(java.util.List<QueryParameter> params,
                                                                                          QueryParameter p)
Get parent dependent parameters

Parameters:
params - list of parameters
p - current parameter
Returns:
a map of all parameters that are used in the source definition of the current parameter

getParameterByName

public static QueryParameter getParameterByName(Report report,
                                                java.lang.String parameterName)
Get parameter by name

Parameters:
report - next report object
parameterName - parameter name
Returns:
return paramater with the specified name, null if parameter not found

getParameterByName

public static QueryParameter getParameterByName(java.util.List<QueryParameter> params,
                                                java.lang.String parameterName)
Get parameter by name

Parameters:
params - list of parameters
parameterName - parameter name
Returns:
return paramater with the specified name, null if parameter not found

getUsedParametersMap

public static java.util.Map<java.lang.String,QueryParameter> getUsedParametersMap(Report report)
Get used parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage. The result will contain also the hidden parameters.

Parameters:
report - next report object
Returns:
used parameters map

getUsedNotHiddenParametersMap

public static java.util.Map<java.lang.String,QueryParameter> getUsedNotHiddenParametersMap(Report report)
Get used parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage. The result will not contain the hidden parameters.

Parameters:
report - next report object
Returns:
used not-hidden parameters map

getUsedHiddenParametersMap

public static java.util.Map<java.lang.String,QueryParameter> getUsedHiddenParametersMap(Report report)
Get used hidden parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage. The result will contain only the hidden parameters.

Parameters:
report - next report object
Returns:
used hidden parameters map

getUsedParametersMap

public static java.util.Map<java.lang.String,QueryParameter> getUsedParametersMap(ro.nextreports.engine.queryexec.Query query,
                                                                                  java.util.Map<java.lang.String,QueryParameter> allParameters)
Get used parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage. The result will contain also the hidden parameters and all parameters used just inside other parameters.

Parameters:
query - query object
allParameters - parameters map
Returns:
used parameters map

getOrderedParametersMap

public static java.util.Map<java.lang.String,QueryParameter> getOrderedParametersMap(ro.nextreports.engine.queryexec.Query query,
                                                                                     java.util.Map<java.lang.String,QueryParameter> allParameters)
Get ordered parameters map (dependent parameters are after their dependents) where the key is the parameter name and the value is the parameter The result will contain also the hidden parameters and all parameters used just inside other parameters.

Parameters:
query - query object
allParameters - parameters map
Returns:
ordered parameters map

getUsedParametersMap

public static java.util.Map<java.lang.String,QueryParameter> getUsedParametersMap(java.lang.String sql,
                                                                                  java.util.Map<java.lang.String,QueryParameter> allParameters)
Get used parameters map where the key is the parameter name and the value is the parameter Not all the report parameters have to be used, some may only be defined for further usage. The result will contain also the hidden parameters.

Parameters:
sql - sql
allParameters - parameters map
Returns:
used parameters map

allParametersAreHidden

public static boolean allParametersAreHidden(java.util.Map<java.lang.String,QueryParameter> map)
See if all parameters are hidden

Parameters:
map - map of parameters
Returns:
true if all parameters are hidden

allParametersHaveDefaults

public static boolean allParametersHaveDefaults(java.util.Map<java.lang.String,QueryParameter> map)
See if all parameters have default values

Parameters:
map - map of parameters
Returns:
true if all parameters have default values

initAllRuntimeParameterValues

public static void initAllRuntimeParameterValues(QueryParameter param,
                                                 java.util.List<IdName> values,
                                                 java.util.Map<java.lang.String,java.lang.Object> parameterValues)
                                          throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with all the values

Parameters:
param - parameter
values - all parameter values
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get parameter values

initDefaultParameterValues

public static void initDefaultParameterValues(QueryParameter param,
                                              java.util.List<java.io.Serializable> defValues,
                                              java.util.Map<java.lang.String,java.lang.Object> parameterValues)
                                       throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with the default values

Parameters:
param - parameter
defValues - default values
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get default parameter values

initDefaultSParameterValues

public static void initDefaultSParameterValues(QueryParameter param,
                                               java.util.List<java.io.Serializable> defValues,
                                               java.util.Map<java.lang.String,java.io.Serializable> parameterValues)
                                        throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with the default values

Parameters:
param - parameter
defValues - default values
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get default parameter values

initStaticDefaultParameterValues

public static void initStaticDefaultParameterValues(QueryParameter param,
                                                    java.util.Map<java.lang.String,java.lang.Object> parameterValues)
                                             throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with the static default values of a parameter

Parameters:
param - parameter
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get default parameter values

initDefaultParameterValues

public static void initDefaultParameterValues(java.sql.Connection conn,
                                              QueryParameter param,
                                              java.util.Map<java.lang.String,java.lang.Object> parameterValues)
                                       throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with the default values (static or dynamic) of a parameter

Parameters:
conn - database connection
param - parameter
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get default parameter values

initAllRuntimeParameterValues

public static void initAllRuntimeParameterValues(java.sql.Connection conn,
                                                 QueryParameter param,
                                                 java.util.Map<java.lang.String,QueryParameter> map,
                                                 java.util.Map<java.lang.String,java.lang.Object> parameterValues)
                                          throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with all the values from select source of a parameter at runtime

Parameters:
conn - database connection
param - parameter
map - report map of parameters
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get parameter values

initDefaultSParameterValues

public static void initDefaultSParameterValues(java.sql.Connection conn,
                                               QueryParameter param,
                                               java.util.Map<java.lang.String,java.io.Serializable> parameterValues)
                                        throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with the default values (static or dynamic) of a parameter

Parameters:
conn - database connection
param - parameter
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get default parameter values

initStaticNotHiddenDefaultParameterValues

public static void initStaticNotHiddenDefaultParameterValues(Report report,
                                                             java.util.Map<java.lang.String,java.lang.Object> parameterValues)
                                                      throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with the static default values for all not-hidden parameters of a report

Parameters:
report - report
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get default parameter values

initNotHiddenDefaultParameterValues

public static void initNotHiddenDefaultParameterValues(java.sql.Connection conn,
                                                       Report report,
                                                       java.util.Map<java.lang.String,java.lang.Object> parameterValues)
                                                throws ro.nextreports.engine.queryexec.QueryException
Init parameter values map with the default values (static or dynamic) for all not-hidden parameters of a report

Parameters:
conn - database connection
report - report
parameterValues - map of parameter values
Throws:
ro.nextreports.engine.queryexec.QueryException - if could not get default parameter values

checkForParametersWithDefaultSource

public static boolean checkForParametersWithDefaultSource(Report report)
Check if report has at least a parameter with a default source (will need a connection to get values)

Parameters:
report - report
Returns:
true if there is at least a parameter with a default source

toMap

public static java.util.Map<java.lang.String,QueryParameter> toMap(java.util.List<QueryParameter> parameters)
Convert a list of QueryParameter object to a map where the key is the parameter name and the value is the parameter

Parameters:
parameters - list of parameters
Returns:
map of parameters

getParameterValueFromString

public static java.lang.Object getParameterValueFromString(java.lang.String parameterClass,
                                                           java.lang.String value)
                                                    throws java.lang.Exception
Get parameter value from a string represenation

Parameters:
parameterClass - parameter class
value - string value representation
Returns:
parameter value from string representation
Throws:
java.lang.Exception - if string value cannot be parse

getParameterValueFromString

public static java.lang.Object getParameterValueFromString(java.lang.String parameterClass,
                                                           java.lang.String value,
                                                           java.text.SimpleDateFormat sdf)
                                                    throws java.lang.Exception
Get parameter value from a string represenation

Parameters:
parameterClass - parameter class
value - string value representation
sdf - SimpleDateFormat used to parse Date from String
Returns:
parameter value from string representation
Throws:
java.lang.Exception - if string value cannot be parse

intersectParametersMap

public static java.util.Map<java.lang.String,QueryParameter> intersectParametersMap(java.util.List<Report> reports)
Get a map with all the identical parameters for a list of reports

Parameters:
reports - list of reports
Returns:
a map with all the identical parameters for a list of reports see QueryParameter.compare(Object o)

getDebugParameters

public static java.lang.String getDebugParameters(java.util.Map<java.lang.String,? extends java.lang.Object> parametersValues)
Get a string representation of all parameters values

Parameters:
parametersValues - map of parameters
Returns:
a string representation of all parameters values

isDateTime

public static boolean isDateTime(QueryParameter qp)
Test if a parameter has a date or time class name: Date, Time, Timestamp

Parameters:
qp - parameter
Returns:
true if a parameter has a date or time class name