Class DataSourceConfiguration
- java.lang.Object
-
- com.inet.report.config.datasource.DataSourceConfiguration
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable
public class DataSourceConfiguration extends java.lang.Object implements java.io.Serializable, java.lang.Comparable
ADataSourceConfiguration
is a description of a data source, that can be used by an i-net Clear Reports report.
We differentiate between a data source that use a JDBC driver and a data source that use acom.inet.report.database.DataFactory
extended class. In last case the report data will be set directly byDatabase
class. In first case i-net Clear Reports use the settings of this data source configuration to establish a JDBC connection to a database server. Then it requests the data via SQL statements.
At execution time of the report, i-net Clear Reports creates the connection to the database, based on this settings.
If i-net Clear Reports runs inside of an application server, it will try to find a connection via JNDI.
The path to receive the DataSource from application server is :"java:comp/env/jdbc/"+DataSourceConfiguration.
If no data source was found, i-net Clear Reports creates the connection by itself.
Typical a DataSourceConfiguration will be created with the GUI but you can also create it via API.
Example for aDataSourceConfiguration
based on a Database class:
Samples for own Database classes can be found in sample library at:DataSourceConfiguration dsc = DataSourceConfigurationManager.createDataSourceConfiguration( "myFirstDSC", DataSourceConfigurationManager.TEMPORARY_PREFERENCES ); dsc.setDatabaseClassname( "com.company.DatabaseImpl" ); dsc.setDriverLibrary( "c:/lib/reportclasses.jar" );//you can also set an URL dsc.save( DataSourceConfigurationManager.TEMPORARY_PREFERENCES ); //-> manager -> store
samples.jdbc.DatabaseClassUsableInDesigner
samples.jdbc.DataWithExternalResultSet
samples.jdbc.DataWithoutJDBC
Example for a DataSourceConfiguration based on a JDBC driver / database connection:DataSourceConfiguration dsc = DataSourceConfigurationManager.createDataSourceConfiguration( "myFirstDSC", DataSourceConfigurationManager.TEMPORARY_PREFERENCES ); dsc.addProperty( DataSourceConfiguration.PROPERTY_DRIVER_CLASSNAME, "com.inet.tds.TdsDriver" );//MS SQL Server driver from i-net software dsc.addProperty( DataSourceConfiguration.PROPERTY_URL, "jdbc:inetdae7" ); dsc.addProperty( DataSourceConfiguration.PROPERTY_USER, "sa" ); dsc.addProperty( DataSourceConfiguration.PROPERTY_PASSWORD, "xxxx" ); dsc.addProperty( "host", "localhost"); //a driver specific property dsc.addProperty( "database", "northwind" ); //a driver specific property dsc.save( DataSourceConfigurationManager.TEMPORARY_PREFERENCES ); //-> manager -> store ... create a new report based on this datasource configuration Engine e = RDC.createEmptyEngine(); Datasource ds = e.getDatabaseTables().createDatasource("myFirstDSC"); TableSource ts = ds.create... switch an existing Datasource to a DataSourceConfiguration Engine eng = new Engine( Engine.NO_EXPORT ); eng.setReportFile("c:/sample.rpt"); Datasource ds = eng.getDatabaseTables().getDatasource(0); ds.setDataSourceConfigurationName("myFirstDSC");
- See Also:
DataSourceConfigurationManager
,Datasource
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PROPERTY_ALIASTOKEN
The property that stores the "aliasToken" flag.static java.lang.String
PROPERTY_ALLOWED_USERGROUPS
The property defines a comma separated list of GUID that are allowed to use this datasource.static java.lang.String
PROPERTY_CATALOG
The property that stores the catalog.static java.lang.String
PROPERTY_DATABASE_CLASSNAME
The property that stores thecom.inet.report.database.DataFactory
static java.lang.String
PROPERTY_DRIVER_CLASSNAME
The property that stores the full qualified class name of JDBC Driver.static java.lang.String
PROPERTY_ESCAPE_EVERYTHING
The property that stores the "escapeEverything" flag.static java.lang.String
PROPERTY_IDENTIFIER_QUOTE_STRING
The property that stores the "identifierQuoteString" flag.static java.lang.String
PROPERTY_INITSQL
The property defining the SQL statement which should be executed after the JDBC connection has been established.static java.lang.String
PROPERTY_PASSWORD
The property that stores the user password.static java.lang.String
PROPERTY_QUOTES_LOWER_CASE
The property that stores the "quotesLowerCase" flag.static java.lang.String
PROPERTY_SAVE_PASSWORD
The property that stores the "savePassword" flag.static java.lang.String
PROPERTY_SUPPORTS_ORDERBY
The property that stores the "supportsOrderBy" flag.static java.lang.String
PROPERTY_SUPPORTS_SQL92
The property that stores the "supportsSQL92" flag.static java.lang.String
PROPERTY_SUPPORTS_WHERE
The property that stores the "supportsWhere" flag.static java.lang.String
PROPERTY_URL
The property that stores the JDBC URL.static java.lang.String
PROPERTY_USE_PARENTHESES_FOR_JOIN
The property that stores the "supportsParenthesesForJoin" flag.static java.lang.String
PROPERTY_USER
The property that stores the user.static java.lang.String
PROPERTY_VALIDATION_QUERY
The property that stored the validation query.
-
Constructor Summary
Constructors Constructor Description DataSourceConfiguration(java.lang.String configurationName)
Deprecated.As of i-net Clear Reports 19.2, useDataSourceConfiguration(String, int)
DataSourceConfiguration(java.lang.String configurationName, int scope)
Create a new data source configuration
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static java.lang.String
adaptUrl(java.lang.String url, java.util.Properties driverProps)
Adapts the provided URL by replacing placeholders of format {propertyname} with the value of the regarding property in the provided Properties object.void
addProperties(java.util.Properties properties)
Adds all properties by forward to functionDataSourceConfiguration.addProperty(String, String)
.void
addProperty(java.lang.String key, java.lang.String value)
Add property to configure the used JDBC driver.int
compareTo(java.lang.Object o)
Order this class by name.boolean
equals(java.lang.Object obj)
java.lang.String
getAliasToken()
Returns the SQL keyword that is required to define an alias name in a SQL statement.
For some databases a whitespace have to be set between table name and table alias.java.util.Set<com.inet.id.GUID>
getAllowedUserGroups()
Returns the list of group-GUID
s that are allowed to access this datasourcejava.lang.String
getCatalog()
Returns the set database catalog.java.util.List<java.lang.String>
getCatalogs()
Get the list of catalogs.java.lang.String
getConfigurationName()
Returns the name of thisDataSourceConfiguration
.java.lang.String
getDatabaseClassname()
Returnscom.inet.report.database.DataFactory
class name or an empty String.com.inet.report.DatabaseConfiguration
getDatabaseConfiguration()
FOR INTERNAL USE ONLY Returns the DatabaseConfiguration used for this DataSourceConfiguration.java.lang.String
getDriverClassname()
Returns the name of thejava.sql.Driver
that will be used to establish the Connection to database.static java.sql.Driver
getDriverObject(java.lang.Class<?> c)
FOR INTERNAL USE ONLY iterate over registered driver - necessary for silly JdbcOdbcDriver, which set a flag in its finalize() function so that no Connection could create anymore.static java.sql.Driver
getDriverObject(java.lang.String c)
FOR INTERNAL USE ONLY iterate over registered driver - necessary for silly JdbcOdbcDriver, which set a flag in its finalize() function so that no Connection could create anymorejava.lang.String[]
getDriverSpecificProperties()
FOR INTERNAL USE ONLY returns all properties that will be passed to JDBC driverjava.lang.String
getIdentifierQuoteString()
Returns the string used to quote SQL identifiers.java.lang.String
getPassword()
Returns the password of the database user used to create database connection.java.util.Properties
getProperties()
Returns all properties stored in this DataSourceConfiguration.java.lang.String
getProperty(java.lang.String key)
Returns the value of the passed property key.int
getScope()
Get the scope in which the datas ource was created.com.inet.id.GUID
getUID()
Get the unique ID of the data source.java.lang.String
getUrl()
Returns the set JDBC URL that will be used to create the Connection.java.lang.String
getUser()
Returns the set database user.java.lang.String
getValidationQuery()
Returns the set SQL validation query which should be used to check if the database connection is valid or not.int
hashCode()
boolean
isLayoutDataSource()
Returns if this datasource is a source for creating ad hoc reporting layouts.boolean
isNeedPassword()
Returns false if the current driver does not need a password.boolean
isSavePassword()
Returns if the password should be saved.boolean
isUseEscapeEverything()
Returns the value of the flag escapeEverything.boolean
isUseOrderBy()
Indicates whether an ORDER BY clause is allowed for the SQL statement.
If false is set, i-net Clear Reports creates a SQL statement without ORDER BY clause.boolean
isUseParenthesiseForJoin()
Indicates whether parentheses are allowed in FROM clause of the SQL statement.
For example the SAPDB does not support parentheses in JOIN syntax.
This flag is relevant if tables and one Datasource is used only.boolean
isUseQuoteLowerCase()
Indicates whether table names and column names have to be quoted.
This property can be necessary for Oracle/PostgreSQL databases for example, if table/column where created with quotes and lower (Oracle) or upper (PostgreSQL) case characters.boolean
isUseSQL92syntax()
Indicates whether the SQL statement can contain the join condition in SQL92 syntax or not.boolean
isUseWhereClause()
Indicates whether the SQL statement can contain the WHERE clause or not.
If false is set, i-net Clear Reports creates a SQL statement without WHERE clause.void
putStylesheetDefaultValues(com.inet.report.config.datasource.widget.DriverStyleSheet dss)
FOR INTERNAL USE ONLY Applies the properties of the supplied DriverStyleSheet to this DataSourceConfiguration.void
removeProperties(java.util.Set<java.lang.String> keys)
removes all properties from the driver properties whose keys are in the string setvoid
save()
Save the settings persistent.void
save(int scope)
Deprecated.As of i-net Clear Reports 19.2, usesave()
void
setAliasToken(java.lang.String aliasToken)
Sets the SQL keyword that will be put between table name and table alias.
E.g. the database PostgreSql requires the keyword "AS".void
setAllowedUserGroups(java.util.Set<com.inet.id.GUID> allowedUserGroups)
Sets the list of group-GUID
s that will grant access to this datasourcevoid
setCatalog(java.lang.String catalog)
Sets the database catalog used to create database connection.void
setDatabaseClassname(java.lang.String classname)
Sets the class name of a class extended fromcom.inet.report.database.DataFactory
.void
setDriverClassname(java.lang.String classname)
Sets the class name of ajava.sql.Driver
implementation.void
setIdentifierQuoteString(java.lang.String identifierQuoteString)
Sets the string used to quote SQL identifiers.void
setPassword(java.lang.String password)
Sets the password of the database user used to create database Connection.void
setSavePassword(boolean savePassword)
Sets whether the password should be saved or not.void
setUrl(java.lang.String url)
Sets JDBC url that will be used to create the Connection.void
setUseEscapeEverything(boolean escapeEverything)
This method is for adapt the SQL statement for a specific database.
This flag influence the way SQL identifier are written to SQL statement.void
setUseOrderBy(boolean useOrderBy)
Set here whether the SQL statement can have an ORDER BY clause or not.
If false is set, i-net Clear Reports creates a SQL statement without ORDER BY clause.void
setUseParenthesiseForJoin(boolean useParenthesiseForJoin)
Set here whether the SQL statement can have parentheses in FROM clause or not.
For example the SAPDB does not support parentheses in JOIN syntax.
This flag is relevant if tables and one Datasource is used only.void
setUseQuoteLowerCase(boolean useQuoteLowerCase)
Set here whether table names and column names have to be quoted.
This property can be necessary for Oracle/PostgreSQL databases for example, if table/column where created with quotes and lower (Oracle) or upper (PostgreSQL) case characters.void
setUser(java.lang.String user)
Sets the database user used to create database connection.void
setUseSQL92syntax(boolean useSQL92syntax)
Set here whether the SQL statement can contain the join condition in SQL92 syntax or not.
If set on true, the join is contained in FROM clause, otherwise in WHERE clause.
Note: full outer join is not possible in WHERE clause.void
setUseWhereClause(boolean useWhereClause)
Indicates whether the SQL statement can contain the WHERE clause or not.
If false is set, i-net Clear Reports creates a SQL statement without ORDER BY clause.void
setValidationQuery(java.lang.String validationQuery)
Sets the SQL query which should be executed to validate the connection defined by this DataSourceConfiguration.java.lang.String
toString()
Returns the name of thisDataSourceConfiguration
.java.sql.SQLWarning
validate()
Checks if it is possible to get a connection based on thisDataSourceConfiguration.
Throw an exception if the connection can't be established.
-
-
-
Field Detail
-
PROPERTY_CATALOG
public static final java.lang.String PROPERTY_CATALOG
The property that stores the catalog.- Since:
- 7.5
- See Also:
setCatalog(String)
,getCatalog()
,addProperty(String, String)
,getProperty(String)
, Constant Field Values
-
PROPERTY_USER
public static final java.lang.String PROPERTY_USER
The property that stores the user.
-
PROPERTY_PASSWORD
public static final java.lang.String PROPERTY_PASSWORD
The property that stores the user password.
-
PROPERTY_SAVE_PASSWORD
public static final java.lang.String PROPERTY_SAVE_PASSWORD
The property that stores the "savePassword" flag.- Since:
- 7.5
- See Also:
setSavePassword(boolean)
,isSavePassword()
,addProperty(String, String)
,getProperty(String)
, Constant Field Values
-
PROPERTY_URL
public static final java.lang.String PROPERTY_URL
The property that stores the JDBC URL.
-
PROPERTY_SUPPORTS_SQL92
public static final java.lang.String PROPERTY_SUPPORTS_SQL92
The property that stores the "supportsSQL92" flag.
-
PROPERTY_SUPPORTS_ORDERBY
public static final java.lang.String PROPERTY_SUPPORTS_ORDERBY
The property that stores the "supportsOrderBy" flag.
-
PROPERTY_SUPPORTS_WHERE
public static final java.lang.String PROPERTY_SUPPORTS_WHERE
The property that stores the "supportsWhere" flag.
-
PROPERTY_DRIVER_CLASSNAME
public static final java.lang.String PROPERTY_DRIVER_CLASSNAME
The property that stores the full qualified class name of JDBC Driver.
-
PROPERTY_DATABASE_CLASSNAME
public static final java.lang.String PROPERTY_DATABASE_CLASSNAME
The property that stores thecom.inet.report.database.DataFactory
-
PROPERTY_QUOTES_LOWER_CASE
public static final java.lang.String PROPERTY_QUOTES_LOWER_CASE
The property that stores the "quotesLowerCase" flag.
-
PROPERTY_USE_PARENTHESES_FOR_JOIN
public static final java.lang.String PROPERTY_USE_PARENTHESES_FOR_JOIN
The property that stores the "supportsParenthesesForJoin" flag.
-
PROPERTY_IDENTIFIER_QUOTE_STRING
public static final java.lang.String PROPERTY_IDENTIFIER_QUOTE_STRING
The property that stores the "identifierQuoteString" flag.
-
PROPERTY_ALIASTOKEN
public static final java.lang.String PROPERTY_ALIASTOKEN
The property that stores the "aliasToken" flag.
-
PROPERTY_ESCAPE_EVERYTHING
public static final java.lang.String PROPERTY_ESCAPE_EVERYTHING
The property that stores the "escapeEverything" flag.
-
PROPERTY_VALIDATION_QUERY
public static final java.lang.String PROPERTY_VALIDATION_QUERY
The property that stored the validation query.- Since:
- 7.1
- See Also:
setValidationQuery(String)
,getValidationQuery()
, Constant Field Values
-
PROPERTY_INITSQL
public static final java.lang.String PROPERTY_INITSQL
The property defining the SQL statement which should be executed after the JDBC connection has been established. This SQL statement can be used to e.g. prepare the connection to use bind variables for Oracle databases.
-
PROPERTY_ALLOWED_USERGROUPS
public static final java.lang.String PROPERTY_ALLOWED_USERGROUPS
The property defines a comma separated list of GUID that are allowed to use this datasource.
-
-
Constructor Detail
-
DataSourceConfiguration
@Deprecated public DataSourceConfiguration(java.lang.String configurationName)
Deprecated.As of i-net Clear Reports 19.2, useDataSourceConfiguration(String, int)
FOR INTERNAL USE ONLY- Parameters:
configurationName
- the name of thisDataSourceConfiguration
.
-
DataSourceConfiguration
public DataSourceConfiguration(java.lang.String configurationName, int scope)
Create a new data source configuration- Parameters:
configurationName
- the name of thisDataSourceConfiguration
.scope
- the scope- Throws:
java.lang.IllegalArgumentException
- in case of misusing the the scope- Since:
- 19.2
-
-
Method Detail
-
getScope
public int getScope()
Get the scope in which the datas ource was created.- Returns:
- the scope.
- Since:
- 19.2
-
getUID
public com.inet.id.GUID getUID()
Get the unique ID of the data source.- Returns:
- the id
- Since:
- 19.2
-
getDatabaseConfiguration
@Nonnull public com.inet.report.DatabaseConfiguration getDatabaseConfiguration()
FOR INTERNAL USE ONLY Returns the DatabaseConfiguration used for this DataSourceConfiguration. This method is needed to tell the Database class which DatabaseConfiguration should be used if the Datasource uses a DataSourceConfiguration. Note: We have to return a cloned instance because the instance might be modified at runtime and we don't want these changes to be set for the whole DataSourceConfiguration because the reason will be report-specific.
Example: If the record selection could not be executed on database the flag useWhereClause will be set to false. This change should only be made for the particular report.- Returns:
- The DatabaseConfiguration to be used with this DataSourceConfiguration.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
putStylesheetDefaultValues
public void putStylesheetDefaultValues(com.inet.report.config.datasource.widget.DriverStyleSheet dss)
FOR INTERNAL USE ONLY Applies the properties of the supplied DriverStyleSheet to this DataSourceConfiguration.- Parameters:
dss
- The DriverStyleSheet from where the properties should be copied.
-
addProperty
public void addProperty(java.lang.String key, java.lang.String value)
Add property to configure the used JDBC driver. Please read the driver manual of the vendor to find out which properties are supported by the used JDBC driver.- Parameters:
key
- the property.value
- the property value.- Throws:
java.lang.NullPointerException
- If the property key was null.java.lang.IllegalArgumentException
- If the property key was empty.- Since:
- 7.0
- See Also:
getProperties()
,getProperty(String)
,addProperties(Properties)
-
addProperties
public void addProperties(java.util.Properties properties)
Adds all properties by forward to functionDataSourceConfiguration.addProperty(String, String)
.- Parameters:
properties
- A Properties object containing all properties which should be set for this DataSourceConfiguration.- Since:
- 7.0
- See Also:
addProperty(String, String)
-
removeProperties
public void removeProperties(java.util.Set<java.lang.String> keys)
removes all properties from the driver properties whose keys are in the string set- Parameters:
keys
- set of keys whose entries are to be removed from the driver properties- Since:
- 19.2
-
isUseOrderBy
public boolean isUseOrderBy()
Indicates whether an ORDER BY clause is allowed for the SQL statement.
If false is set, i-net Clear Reports creates a SQL statement without ORDER BY clause. Sorting will be done by i-net Clear Reports itself. This flag is relevant if tables and one Datasource is used only.- Returns:
true
if the SQL statement can have an ORDER BY clause; otherwisefalse
.- Since:
- 6.0
- See Also:
setUseOrderBy(boolean)
-
setUseOrderBy
public void setUseOrderBy(boolean useOrderBy)
Set here whether the SQL statement can have an ORDER BY clause or not.
If false is set, i-net Clear Reports creates a SQL statement without ORDER BY clause. Sorting will be done by i-net Clear Reports itself. This flag is relevant if tables and one Datasource is used only.- Parameters:
useOrderBy
- Whether the SQL statement can have an ORDER BY clause or not.- Since:
- 6.0
- See Also:
isUseOrderBy()
-
isUseParenthesiseForJoin
public boolean isUseParenthesiseForJoin()
Indicates whether parentheses are allowed in FROM clause of the SQL statement.
For example the SAPDB does not support parentheses in JOIN syntax.
This flag is relevant if tables and one Datasource is used only.- Returns:
true
if the SQL statement can have parentheses in FROM clause; otherwisefalse
.- Since:
- 6.0
- See Also:
setUseParenthesiseForJoin(boolean)
-
setUseParenthesiseForJoin
public void setUseParenthesiseForJoin(boolean useParenthesiseForJoin)
Set here whether the SQL statement can have parentheses in FROM clause or not.
For example the SAPDB does not support parentheses in JOIN syntax.
This flag is relevant if tables and one Datasource is used only.- Parameters:
useParenthesiseForJoin
- Whether the SQL statement can have parentheses in FROM clause or not.- Since:
- 6.0
- See Also:
isUseParenthesiseForJoin()
-
isUseQuoteLowerCase
public boolean isUseQuoteLowerCase()
Indicates whether table names and column names have to be quoted.
This property can be necessary for Oracle/PostgreSQL databases for example, if table/column where created with quotes and lower (Oracle) or upper (PostgreSQL) case characters.- Returns:
true
if table names and column names have to be quoted; otherwisefalse
.- Since:
- 6.0
- See Also:
setUseQuoteLowerCase(boolean)
-
setUseQuoteLowerCase
public void setUseQuoteLowerCase(boolean useQuoteLowerCase)
Set here whether table names and column names have to be quoted.
This property can be necessary for Oracle/PostgreSQL databases for example, if table/column where created with quotes and lower (Oracle) or upper (PostgreSQL) case characters.- Parameters:
useQuoteLowerCase
- Whether table names and column names have to be quoted.- Since:
- 6.0
- See Also:
isUseParenthesiseForJoin()
-
isUseSQL92syntax
public boolean isUseSQL92syntax()
Indicates whether the SQL statement can contain the join condition in SQL92 syntax or not.- Returns:
true
if the SQL statement can contain the join condition in SQL92 syntax; otherwisefalse
.- Since:
- 6.0
- See Also:
setUseSQL92syntax(boolean)
-
setUseSQL92syntax
public void setUseSQL92syntax(boolean useSQL92syntax)
Set here whether the SQL statement can contain the join condition in SQL92 syntax or not.
If set on true, the join is contained in FROM clause, otherwise in WHERE clause.
Note: full outer join is not possible in WHERE clause.- Parameters:
useSQL92syntax
- Whether the SQL statement can contain the join condition in SQL92 syntax or not.- Since:
- 6.0
- See Also:
isUseSQL92syntax()
-
isUseWhereClause
public boolean isUseWhereClause()
Indicates whether the SQL statement can contain the WHERE clause or not.
If false is set, i-net Clear Reports creates a SQL statement without WHERE clause. Filter data will be done by i-net Clear Reports itself. This flag is relevant if tables and one Datasource is used only.- Returns:
true
if the SQL statement can contain the WHERE clause; otherwisefalse
.- Since:
- 6.0
- See Also:
setUseWhereClause(boolean)
-
setUseWhereClause
public void setUseWhereClause(boolean useWhereClause)
Indicates whether the SQL statement can contain the WHERE clause or not.
If false is set, i-net Clear Reports creates a SQL statement without ORDER BY clause. Filter data will be done by i-net Clear Reports itself. This flag is relevant if tables and one Datasource is used only.- Parameters:
useWhereClause
- Whether the SQL statement can contain the WHERE clause or not.- Since:
- 6.0
- See Also:
isUseWhereClause()
-
getAliasToken
public java.lang.String getAliasToken()
Returns the SQL keyword that is required to define an alias name in a SQL statement.
For some databases a whitespace have to be set between table name and table alias. Other database expect the keyword "AS".- Returns:
String
the SQL keyword- Since:
- 6.0
- See Also:
setAliasToken(String)
-
setAliasToken
public void setAliasToken(java.lang.String aliasToken)
Sets the SQL keyword that will be put between table name and table alias.
E.g. the database PostgreSql requires the keyword "AS".- Parameters:
aliasToken
- the SQL keyword.- Since:
- 6.0
- See Also:
getAliasToken()
-
isUseEscapeEverything
public boolean isUseEscapeEverything()
Returns the value of the flag escapeEverything.- Returns:
true
if the complete table identifier will enclosed with quotes; otherwisefalse
.- Since:
- 6.0
- See Also:
setUseEscapeEverything(boolean)
-
setUseEscapeEverything
public void setUseEscapeEverything(boolean escapeEverything)
This method is for adapt the SQL statement for a specific database.
This flag influence the way SQL identifier are written to SQL statement. Per default it is false and should be kept false for most of database.
If the flag is set to true, the complete table identifier will enclosed with quotes.
If the table identifier contains catalog/schema information, the complete expression will enclosed with quotes.
Example - escape everything is true:
the original table identifier is"atable"
in catalog"aCatalog"
.
The resulting expression for the table in the SQL statement will be :select ... from "aCatalog.aTable"
note: this syntax is not allowed for most of databases. The only known case setting this flag to true is using i-net FOSITEX driver for CSV data files.- Parameters:
escapeEverything
- True if the whole table identifier should be quoted false(default) otherwise.- Since:
- 6.0
- See Also:
isUseEscapeEverything()
-
getIdentifierQuoteString
public java.lang.String getIdentifierQuoteString()
Returns the string used to quote SQL identifiers.- Returns:
String
used to quote SQL identifiers.- Since:
- 6.0
- See Also:
setIdentifierQuoteString(String)
-
setIdentifierQuoteString
public void setIdentifierQuoteString(java.lang.String identifierQuoteString)
Sets the string used to quote SQL identifiers.- Parameters:
identifierQuoteString
- The string which should be used to quote SQL identifiers. Usually this should be a single or double quote.- Since:
- 6.0
- See Also:
getIdentifierQuoteString()
-
getDriverClassname
public java.lang.String getDriverClassname()
Returns the name of thejava.sql.Driver
that will be used to establish the Connection to database.- Returns:
String
the driver class name- Since:
- 6.0
-
getDatabaseClassname
public java.lang.String getDatabaseClassname()
Returnscom.inet.report.database.DataFactory
class name or an empty String.- Returns:
String
DataFactory
class name or an empty String.- Since:
- 6.0
-
setDriverClassname
public void setDriverClassname(java.lang.String classname)
Sets the class name of ajava.sql.Driver
implementation.- Parameters:
classname
- The package qualified name of the JDBC Driver class.- Since:
- 6.0
-
setDatabaseClassname
public void setDatabaseClassname(java.lang.String classname)
Sets the class name of a class extended fromcom.inet.report.database.DataFactory
. Instead of using a JDBC Connection to fetch data for the report, acom.inet.report.database.DataFactory
can be used to set the data via java code directly.For class loading from other plugins this class can registered in the plugin manager via:
spm.register( DataFactory.class, instance )
- Parameters:
classname
- the full qualified classname of acom.inet.report.database.DataFactory
class.- Since:
- 6.0
-
getConfigurationName
public java.lang.String getConfigurationName()
Returns the name of thisDataSourceConfiguration
.- Returns:
String
- the name of thisDataSourceConfiguration
.- Since:
- 6.0
-
toString
public java.lang.String toString()
Returns the name of thisDataSourceConfiguration
.- Overrides:
toString
in classjava.lang.Object
- Returns:
String
- the name of thisDataSourceConfiguration
.- Since:
- 6.0
- See Also:
getConfigurationName()
-
getUrl
public java.lang.String getUrl()
Returns the set JDBC URL that will be used to create the Connection.- Returns:
- the set JDBC URL that will be used to create the Connection.
- Since:
- 6.0
-
setUrl
public void setUrl(java.lang.String url)
Sets JDBC url that will be used to create the Connection.- Parameters:
url
- the JDBC url that will be used to create the Connection.- Since:
- 6.0
-
getProperties
public java.util.Properties getProperties()
Returns all properties stored in this DataSourceConfiguration. It contains at least the listed properties below. The configuration name is not listed in theProperties
object.- Returns:
- all properties stored in this DataSourceConfiguration.
- Since:
- 6.0
-
getDriverSpecificProperties
public java.lang.String[] getDriverSpecificProperties()
FOR INTERNAL USE ONLY returns all properties that will be passed to JDBC driver- Returns:
- all properties that will be passed to JDBC driver
- Since:
- 6.0
-
getProperty
@Nonnull public java.lang.String getProperty(java.lang.String key)
Returns the value of the passed property key.- Parameters:
key
- the key of the set property.- Returns:
String
- The property value or an empty string.- Since:
- 6.0
-
getCatalog
public java.lang.String getCatalog()
Returns the set database catalog.- Returns:
String
- the database catalog or an empty String.- Since:
- 7.0
-
setCatalog
public void setCatalog(java.lang.String catalog)
Sets the database catalog used to create database connection.- Parameters:
catalog
- - the database catalog used to create database connection.- Since:
- 7.0
-
getUser
public java.lang.String getUser()
Returns the set database user.- Returns:
String
- the database user or an empty String.- Since:
- 6.0
-
setUser
public void setUser(java.lang.String user)
Sets the database user used to create database connection.- Parameters:
user
- - the database user used to create database connection.- Since:
- 6.0
-
getPassword
public java.lang.String getPassword()
Returns the password of the database user used to create database connection.- Returns:
String
- the password of the database user used to create database connection or an empty string.- Since:
- 6.0
-
setPassword
public void setPassword(java.lang.String password)
Sets the password of the database user used to create database Connection.- Parameters:
password
- the password of the database user used to create database Connection.- Since:
- 6.0
-
setSavePassword
public void setSavePassword(boolean savePassword)
Sets whether the password should be saved or not.- Parameters:
savePassword
-true
for saving password- Since:
- 6.0
- See Also:
isSavePassword()
-
isSavePassword
public boolean isSavePassword()
Returns if the password should be saved.- Returns:
true
if the password should be saved- Since:
- 6.0
- See Also:
setSavePassword(boolean)
-
isNeedPassword
public boolean isNeedPassword()
Returns false if the current driver does not need a password. If it need a password or we does not know it then it return true.- Returns:
- false if no password is needed.
- Since:
- 9.2
-
save
@Deprecated public void save(int scope) throws java.lang.SecurityException
Deprecated.As of i-net Clear Reports 19.2, usesave()
Saves the settings of this DataSourceConfiguration to the underlying store (XML file). Only if this function was called, changes affects the report execution.- Parameters:
scope
- - Possible values:- DataSourceConfigurationManager.SYSTEM_PREFERENCES
- DataSourceConfigurationManager.USER_PREFERENCES
- Throws:
java.lang.SecurityException
- if there is no write access to the given Java Preferences- Since:
- 6.0
-
save
public void save()
Save the settings persistent. The location depends on the scope and the OS.- Since:
- 19.2
-
getDriverObject
public static java.sql.Driver getDriverObject(java.lang.Class<?> c)
FOR INTERNAL USE ONLY iterate over registered driver - necessary for silly JdbcOdbcDriver, which set a flag in its finalize() function so that no Connection could create anymore.- Parameters:
c
- the driver class- Returns:
- the
Driver
object for the given class
ORnull
- Since:
- 6.0
-
getDriverObject
public static java.sql.Driver getDriverObject(java.lang.String c)
FOR INTERNAL USE ONLY iterate over registered driver - necessary for silly JdbcOdbcDriver, which set a flag in its finalize() function so that no Connection could create anymore- Parameters:
c
- the name of the driver class- Returns:
- the
Driver
object for the given class name
ORnull
if the class can't be found - Since:
- 6.0
-
validate
public java.sql.SQLWarning validate() throws java.lang.ClassNotFoundException, java.lang.ClassCastException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.sql.SQLException, ReportException
Checks if it is possible to get a connection based on thisDataSourceConfiguration.
Throw an exception if the connection can't be established. The exception include details of the problem.- Returns:
- SQL warning if there is one generated.
- Throws:
java.lang.ClassNotFoundException
- If the class could not be found in the current class path nor the lib directory of i-net Clear Reports.java.lang.InstantiationException
- if the driver class represents an abstract class, an interface, an array class, a primitive type, or void; or if the class has no nullary constructor; or if the instantiation fails for some other reason.java.lang.IllegalAccessException
- if the driver class or its nullary constructor is not accessible.java.sql.SQLException
- if a database access error occursReportException
- If the JDBC URL is not valid for the given driver.java.lang.ClassCastException
- If the database class name is not an instance of com.inet.report.database.DataFactory- Since:
- 10.0
-
getCatalogs
public java.util.List<java.lang.String> getCatalogs() throws java.sql.SQLException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.ClassNotFoundException, ReportException
Get the list of catalogs.- Returns:
- the list or null if there is no drver class
- Throws:
java.lang.ClassNotFoundException
- If the class could not be found in the current class path nor the lib directory of i-net Clear Reports.java.lang.InstantiationException
- if the driver class represents an abstract class, an interface, an array class, a primitive type, or void; or if the class has no nullary constructor; or if the instantiation fails for some other reason.java.lang.IllegalAccessException
- if the driver class or its nullary constructor is not accessible.java.sql.SQLException
- if a database access error occursReportException
- If the JDBC URL is not valid for the given driver.- Since:
- 15.0
-
adaptUrl
public static java.lang.String adaptUrl(java.lang.String url, java.util.Properties driverProps)
Adapts the provided URL by replacing placeholders of format {propertyname} with the value of the regarding property in the provided Properties object.- Parameters:
url
- The URL to adapt.driverProps
- The driver properties to be inserted into the URL.- Returns:
- The modified URL.
- Since:
- 8.0
-
setValidationQuery
public void setValidationQuery(java.lang.String validationQuery)
Sets the SQL query which should be executed to validate the connection defined by this DataSourceConfiguration. UsuallyConnection.isClosed()
will be called to check if the connection is still valid. In some circumstances it is possible that this returns true although the connection is invalid. (e.g. the network connection to the database is still established but the database server does not accept any further query). In this case the connection can be checked with a simple SQL query. If this query can be executed without any error the connection should be valid.- Parameters:
validationQuery
- The SQL query which should be executed for validation of the database connection.- Since:
- 7.0
- See Also:
getValidationQuery()
-
getValidationQuery
public java.lang.String getValidationQuery()
Returns the set SQL validation query which should be used to check if the database connection is valid or not.- Returns:
- The SQL query used for validation of the database connection.
- Since:
- 7.0
- See Also:
setValidationQuery(String)
-
compareTo
public int compareTo(java.lang.Object o)
Order this class by name. It uses String.compareTo(String).
Note: this class has a natural ordering that is inconsistent with equals.- Specified by:
compareTo
in interfacejava.lang.Comparable
- Parameters:
o
- DatasourceConfiguration to be compared with- Returns:
- the value 0 if the passed configuration's name is a string lexicographically equal to this configuration's name; a value less than 0 if the passed configuration's name is a string lexicographically greater than this configuration's name; and a value greater than 0 if the passed configuration's name is a string lexicographically less than this configuration's name.
- Since:
- 6.0
- See Also:
getConfigurationName()
-
isLayoutDataSource
public boolean isLayoutDataSource()
Returns if this datasource is a source for creating ad hoc reporting layouts.- Returns:
- true if it is a datasource for creating ad hoc reporting layouts, false otherwise.
- Since:
- 10.0
-
getAllowedUserGroups
public java.util.Set<com.inet.id.GUID> getAllowedUserGroups()
Returns the list of group-GUID
s that are allowed to access this datasource- Returns:
- the list of group
GUID
s that are allowed to use this datasource - Since:
- 19.2
-
setAllowedUserGroups
public void setAllowedUserGroups(java.util.Set<com.inet.id.GUID> allowedUserGroups)
Sets the list of group-GUID
s that will grant access to this datasource- Parameters:
allowedUserGroups
- the list of group-GUID
s that are allowed to use this datasource- Since:
- 19.2
-
-