Class DataSourceConfigurationManager


  • public class DataSourceConfigurationManager
    extends java.lang.Object
    This is the main class to manage data source configurations in i-net Clear Reports. A datasource configuration defines from which location/ by which way the data for a report will set. For GUI application you can open the DataSource-Manager dialog with DataSourceConfigurationManager.openDataSourceManagerDialog(Frame,DataSourceConfiguration). If a data source configuration is already created, it is easy to configure a report to use this configuration. The datasource configuration will be stored by using java.util.prefs.Preferences.
    Since:
    7.0
    See Also:
    DataSourceConfiguration, Datasource
    • Field Detail

      • NO_STORE

        public static final int NO_STORE
        This scope does not store the configuration. It is for one time usage.
        Since:
        20.0
        See Also:
        Constant Field Values
      • SYSTEM_PREFERENCES

        public static final int SYSTEM_PREFERENCES
        This scope store the configuration in the system preferences. The current user need the required rights.
        See Also:
        Constant Field Values
      • USER_PREFERENCES

        public static final int USER_PREFERENCES
        This scope store the configuration in the user preferences. The current user need the required rights. In a not signed Java applet the user does not have the rights. On Windows the system account of a service has also not the rights.
        See Also:
        Constant Field Values
      • ALL_PREFERENCES

        @Deprecated
        public static final int ALL_PREFERENCES
        Deprecated.
        As of i-net Clear Reports 20.0
        This scope is used to return all (without APPLICATION) configurations.
        See Also:
        APPLICATION, Constant Field Values
      • TEMPORARY_PREFERENCES

        public static final int TEMPORARY_PREFERENCES
        This scope store the configuration only in the memory.
        Since:
        7.5
        See Also:
        Constant Field Values
      • USER_SESSION

        public static final int USER_SESSION
        This scope store the configuration in the servlet session. It is only in a servlet environment available.
        Since:
        11.1
        See Also:
        Constant Field Values
      • APPLICATION

        public static final int APPLICATION
        This scope store the configuration in the persistence of the application.
        Since:
        20.0
        See Also:
        Constant Field Values
    • Method Detail

      • getUniqueName

        public static java.lang.String getUniqueName​(java.lang.String configurationName,
                                                     int preferenceScope)
        Creates a unique configuration name from the supplied name for the given scope.
        Parameters:
        configurationName - the name that will be used as a basis for the unique name.
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        • DataSourceConfigurationManager.ALL_PREFERENCES
        Returns:
        String - a unique configuration name.
        Since:
        7.5
      • getDataSourceConfigurationNames

        public static java.lang.String[] getDataSourceConfigurationNames()
        Returns the configuration names of all DataSourceConfigurations stored for user and system scope.
        Returns:
        String[] which contains the datasource configuration names.
        Since:
        7.5
        See Also:
        getDataSourceConfigurationNames(int)
      • getDataSourceConfigurationNames

        public static java.lang.String[] getDataSourceConfigurationNames​(int preferenceScope)
        Returns the configuration names of all DataSourceConfigurations stored for the given scope.
        Parameters:
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        • DataSourceConfigurationManager.ALL_PREFERENCES
        Returns:
        String[] which contains the datasource configuration names.
        Throws:
        java.lang.IllegalArgumentException - if the given preferenceScope parameter is not equal to a valid parameter value listed below.
        Since:
        7.5
        See Also:
        getDataSourceConfigurationNames()
      • getDataSourceConfigurations

        public static DataSourceConfiguration[] getDataSourceConfigurations​(int scope)
        Returns the DataSourceConfiguration objects stored for the given scope.
        Parameters:
        scope - Possible values:
        • SYSTEM_PREFERENCES
        • USER_PREFERENCES
        • TEMPORARY_PREFERENCES
        • USER_SESSION
        • APPLICATION
        Returns:
        DataSourceConfiguration[] which contains the datasource configurations of the given scope.
        Throws:
        java.lang.IllegalArgumentException - if the given preferenceScope parameter is not equal to a valid parameter value listed below.
        java.lang.IllegalStateException - If the scope is USER_SCOPE and no HttpSession is available.
        Since:
        7.5
        See Also:
        getDataSourceConfiguration(String, int)
      • getDataSourceConfiguration

        public static DataSourceConfiguration getDataSourceConfiguration​(java.lang.String configurationName,
                                                                         int preferenceScope)
        Returns the DataSourceConfiguration specified by the given configuration name and scope.
        Parameters:
        configurationName - the name identifies the datasource configuration.
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.ALL_PREFERENCES
        Returns:
        DataSourceConfiguration - the specified configuration if exists OR
        null - if the specified configuration does not exist.
        Throws:
        java.lang.IllegalArgumentException - if the given preferenceScope parameter is not equal to a valid parameter value listed below.
        java.lang.IllegalStateException - If the scope is USER_SCOPE and no HttpSession is available.
        Since:
        7.5
      • exists

        public static boolean exists​(java.lang.String configurationName)
        Checks if the DataSourceConfiguration specified by the given configuration name does exist for user or system scope.
        Parameters:
        configurationName - the name identifies the datasource configuration.
        Returns:
        true - if the datasource configuration is known, otherwise false.
        Since:
        7.5
        See Also:
        exists(String, int)
      • isWriteable

        public static boolean isWriteable​(int preferenceScope)
        Check if the scope is writable. The temporary scope is ever writable.
        Parameters:
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        • DataSourceConfigurationManager.ALL_PREFERENCES
        Returns:
        true if the scope is writable.
        Throws:
        java.lang.IllegalArgumentException - if the given preferenceScope parameter is not equal to a valid parameter value listed below.
        Since:
        7.5
      • isReadable

        public static boolean isReadable​(int preferenceScope)
        Check if the scope is readable. The temporary scope and all scope are ever readable.
        Parameters:
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        • DataSourceConfigurationManager.ALL_PREFERENCES
        Returns:
        true if the scope is readable.
        Throws:
        java.lang.IllegalArgumentException - if the given preferenceScope parameter is not equal to a valid parameter value listed below.
        Since:
        7.5
      • exists

        public static boolean exists​(java.lang.String configurationName,
                                     int preferenceScope)
        Checks if the DataSourceConfiguration specified by the given configuration name does exist for the given scope.
        Parameters:
        configurationName - the name identifies the datasource configuration.
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.APPLICATION
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        Returns:
        true if the datasource configuration exist for the given scope, otherwise false.
        Since:
        7.5
        See Also:
        exists(String)
      • createDataSourceConfiguration

        public static DataSourceConfiguration createDataSourceConfiguration​(java.lang.String configurationName,
                                                                            int scope)
                                                                     throws java.lang.SecurityException
        Creates a new DataSourceConfiguration using the first parameter as configuration name. Afterwards the configuration properties will be saved for user or system scope, considering the second parameter.
        This method ensures that the name of each created configuration object is unique. If the given configuration name is already used by an existing configuration in the same scope, the name will be changed by appending a count.
        Parameters:
        configurationName - the name identifies the specific datasource configuration. Must not be empty or null
        scope - determines the scope for the new configuration.
        Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.APPLICATION
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        Returns:
        DataSourceConfiguration - a new datasource configuration object.
        Throws:
        java.lang.NullPointerException - If the supplied configuration name is null.
        java.lang.IllegalArgumentException - If the supplied configuration name is empty or if the given preferenceScope parameter is not equal to a valid parameter value listed below.
        java.lang.SecurityException - if there is no write access to the given Java Preferences
        Since:
        7.5
        See Also:
        save(DataSourceConfiguration, int), DataSourceConfiguration, DatabaseTables.createDatasource(String)
      • removeDatasourceConfigurations

        public static void removeDatasourceConfigurations​(DataSourceConfiguration[] configs,
                                                          int preferenceScope)
        Removes a collection of DataSourceConfigurations from the given scope.
        Parameters:
        configs - An array of DataSourceConfigurations to remove.
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.APPLICATION
        Since:
        7.5
      • removeDatasourceConfiguration

        @Deprecated
        public static void removeDatasourceConfiguration​(java.lang.String configurationName,
                                                         int preferenceScope)
                                                  throws java.lang.IllegalArgumentException,
                                                         java.lang.SecurityException
        Deprecated.
        As of i-net Clear Reports 20.0, use removeDatasourceConfiguration(DataSourceConfiguration) instead
        Removes the datasource configuration from the given scope.
        Parameters:
        configurationName - the unique name identifies the configuration.
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.APPLICATION
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        Throws:
        java.lang.IllegalArgumentException - If the supplied configuration name is
        java.lang.SecurityException - if you have no write rights to the preferences scope. null or empty or if the given preferenceScope parameter is not equal to a valid parameter value listed below.
        Since:
        7.5
        See Also:
        createDataSourceConfiguration(String, int)
      • removeDatasourceConfiguration

        public static void removeDatasourceConfiguration​(DataSourceConfiguration dsc)
                                                  throws java.lang.IllegalArgumentException,
                                                         java.lang.SecurityException
        Removes the datasource configuration. The method will take care of removing the datasource configuration from the scope it is currently stored in.
        Parameters:
        dsc - the datasource configuration to remove
        Throws:
        java.lang.IllegalArgumentException - If the supplied configuration is null
        java.lang.SecurityException - if you have no write rights to the preferences scope. null or empty or if the given preferenceScope parameter is not equal to a valid parameter value listed below.
        Since:
        20.0
        See Also:
        getDataSource(GUID)
      • forceImportDataSourceConfigurations

        public static void forceImportDataSourceConfigurations​(int preferenceScope,
                                                               java.io.File fileToImport)
                                                        throws ReportException,
                                                               java.lang.SecurityException
        Imports data source configurations, replacing any existing ones with the same name
        Parameters:
        preferenceScope - scope to import into. Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.APPLICATION
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        fileToImport - representation of the XML file which contains the data source configurations for import
        Throws:
        ReportException - If the file can't be imported.
        java.lang.SecurityException - if there is no write access to the given Java Preferences
        Since:
        10.0
        See Also:
        importDataSourceConfigurations(int, File)
      • importDataSourceConfigurations

        public static void importDataSourceConfigurations​(int preferenceScope,
                                                          java.io.File importFile)
                                                   throws ReportException
        Imports one or more data source configurations from an XML file. The supplied DataSourceConfiguration will be renamed if a DataSourceConfiguration with this name already exists.
        Parameters:
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.APPLICATION
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        importFile - representation of the XML file which contains the data source configurations for import
        Throws:
        ReportException - If the file can't imported.
        Since:
        7.5
        See Also:
        exportDataSourceConfigurations(DataSourceConfiguration[], File)
      • importDataSourceConfigurations

        public static void importDataSourceConfigurations​(int preferenceScope,
                                                          java.io.File importFile,
                                                          boolean ignoreIfExist)
                                                   throws ReportException,
                                                          java.lang.SecurityException
        Imports one or more data source configurations from an XML file.
        Parameters:
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.APPLICATION
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        importFile - representation of the XML file which contains the data source configurations for import
        ignoreIfExist - True if the supplied DataSourceConfiguration should be ignored if a DataSourceConfiguration with this name already exists or false if the supplied DataSourceConfiguration should be renamed if a DataSourceConfiguration with this name already exists.
        Throws:
        ReportException - If the file can't import.
        java.lang.SecurityException - if there is no write access to the given Java Preferences
        Since:
        7.5
        See Also:
        exportDataSourceConfigurations(DataSourceConfiguration[], File)
      • importDataSourceConfigurations

        public static DataSourceConfiguration[] importDataSourceConfigurations​(int preferenceScope,
                                                                               java.io.InputStream importStream)
                                                                        throws ReportException
        Imports one or more data source configurations from an XML file. The supplied DataSourceConfiguration will be renamed if a DataSourceConfiguration with this name already exists.
        Parameters:
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        importStream - input stream of the XML content which contains the data source configurations for import
        Returns:
        returns the list of configurations found in the import file
        Throws:
        ReportException - If the file can't imported.
        Since:
        7.5
        See Also:
        exportDataSourceConfigurations(DataSourceConfiguration[], File)
      • importDataSourceConfigurations

        public static DataSourceConfiguration[] importDataSourceConfigurations​(int preferenceScope,
                                                                               java.io.InputStream importStream,
                                                                               boolean ignoreIfExist)
                                                                        throws ReportException,
                                                                               java.lang.SecurityException
        Imports one or more data source configurations from an XML file.
        Parameters:
        preferenceScope - Possible values:
        • DataSourceConfigurationManager.SYSTEM_PREFERENCES
        • DataSourceConfigurationManager.USER_PREFERENCES
        • DataSourceConfigurationManager.TEMPORARY_PREFERENCES
        • DataSourceConfigurationManager.USER_SESSION
        importStream - input stream of the XML content which contains the data source configurations for import
        ignoreIfExist - True if the supplied DataSourceConfiguration should be ignored if a DataSourceConfiguration with this name already exists or false if the supplied DataSourceConfiguration should be renamed if a DataSourceConfiguration with this name already exists.
        Returns:
        returns the list of configurations found by the import
        Throws:
        ReportException - If the file can't import.
        java.lang.SecurityException - if there is no write access to the given Java Preferences
        Since:
        20.0
        See Also:
        exportDataSourceConfigurations(DataSourceConfiguration[], File)
      • exportDataSourceConfigurations

        public static void exportDataSourceConfigurations​(DataSourceConfiguration[] configs,
                                                          java.io.File exportFile)
                                                   throws ReportException
        Exports data source configurations to the given file in an XML format.
        Parameters:
        configs - Array which contains the DataSourceConfigurations for export
        exportFile - representation of the target XML file
        Throws:
        ReportException - if any error occur on saving
        Since:
        7.5
        See Also:
        importDataSourceConfigurations(int, File)
      • exportDataSourceConfigurations

        public static void exportDataSourceConfigurations​(DataSourceConfiguration[] configs,
                                                          java.io.OutputStream stream)
                                                   throws ReportException
        Exports data source configurations to the given file in an XML format.
        Parameters:
        configs - Array which contains the DataSourceConfigurations for export
        stream - the target XML output
        Throws:
        ReportException - if any error occur on saving
        Since:
        20.0
        See Also:
        importDataSourceConfigurations(int, File)
      • addDataSourceConfigurationListener

        public static void addDataSourceConfigurationListener​(DataSourceConfigurationChangeListener dscl)
        Add here a DataSourceConfigurationChangeListener to get informed when a DataSourceConfiguration was edited.
        Parameters:
        dscl - the DataSourceConfigurationChangeListener that get informed about changes of DataSourceConfiguration objects.
        Since:
        7.5
      • getDataSourceConfigurationListeners

        public static DataSourceConfigurationChangeListener[] getDataSourceConfigurationListeners()
        Returns the list of listeners. This can be used to fire own events to all registered listeners.
        Returns:
        an array of DataSourceConfigurationChangeListener
        Since:
        8.0
      • removeDataSourceConfigurationListener

        public static void removeDataSourceConfigurationListener​(DataSourceConfigurationChangeListener dscl)
        Removes the listener from list. It will receive no notification after unregistering.
        Parameters:
        dscl - the listener to be removed.
        Since:
        7.5
      • getDataSource

        public static DataSourceConfiguration getDataSource​(java.lang.String name)
        Returns the DataSourceConfiguration specified by the given name. The search order is session, temporary, application, user, system
        Parameters:
        name - the name identifies the data source.
        Returns:
        DataSourceConfiguration - the specified data source if exists OR null
        Since:
        20.0
      • getDataSource

        public static DataSourceConfiguration getDataSource​(com.inet.id.GUID uid)
        Returns the DataSourceConfiguration specified by the given uid. This method does not search in the session scope.
        Parameters:
        uid - the unique id of the data source.
        Returns:
        DataSourceConfiguration - the specified data source if exists OR null
        Since:
        20.0