Class PropertiesConnector

    • Field Detail

      • PARAM_COLLECTION

        public static final java.lang.String PARAM_COLLECTION
        Connector parameter name: "collection"
        See Also:
        Constant Field Values
      • PARAM_COLLECTION_TYPE

        public static final java.lang.String PARAM_COLLECTION_TYPE
        Connector parameter name: "collectionType"
        See Also:
        Constant Field Values
      • PARAM_ENCRYPTION

        public static final java.lang.String PARAM_ENCRYPTION
        Connector parameter name: "encryption"
        See Also:
        Constant Field Values
      • PARAM_CIPHER

        public static final java.lang.String PARAM_CIPHER
        Connector parameter name: "cipher"
        See Also:
        Constant Field Values
      • PARAM_PASSWORD

        public static final java.lang.String PARAM_PASSWORD
        Connector parameter name: "secret"
        See Also:
        Constant Field Values
      • PARAM_AUTOREWRITE

        public static final java.lang.String PARAM_AUTOREWRITE
        Connector parameter name: "autorewrite"
        See Also:
        Constant Field Values
      • PARAM_CREATE_FILE

        public static final java.lang.String PARAM_CREATE_FILE
        Connector parameter name: "createCollection"
        See Also:
        Constant Field Values
      • PROTECT_PREFIX

        public static final java.lang.String PROTECT_PREFIX
        Prefix used by encrypted property values
        See Also:
        Constant Field Values
      • PROTECT_VAL_PREFIX

        public static final java.lang.String PROTECT_VAL_PREFIX
        Prefix used in property value to indicate encrypted data
        See Also:
        Constant Field Values
      • SUPPORTED_MODES

        public static final java.lang.String[] SUPPORTED_MODES
        Supported connector modes
      • map

        protected java.util.Map<java.lang.String,​java.lang.Object> map
        In-memory data
      • modified

        protected boolean modified
        A flag that marks a modified collection.
      • isJavaProperties

        protected boolean isJavaProperties
        A flag that marks a collection of Java Properties.
      • propsFileCrypto

        protected Crypto propsFileCrypto
        The Crypto object used for decryption of the entire properties file.
      • mapIterator

        protected java.util.Iterator<java.lang.String> mapIterator
        Iterator over the in-memory/sysStore/File properties' keys.
      • jpIterator

        protected java.util.Iterator<java.lang.Object> jpIterator
        Iterator over the Java Properties' keys.
    • Constructor Detail

      • PropertiesConnector

        public PropertiesConnector()
        Constructor
    • Method Detail

      • initialize

        public void initialize​(java.lang.Object o)
                        throws java.lang.Exception
        Initialize the connector. For file/url collections the contents is loaded at this point
        Specified by:
        initialize in interface ConnectorInterface
        Overrides:
        initialize in class Connector
        Parameters:
        o - This parameter is ignored by this connector.
        Throws:
        java.lang.Exception - Any exception thrown by java.io/java.net classes when loading a file/url.
      • terminate

        public void terminate()
                       throws java.lang.Exception
        Terminate the connector. This function closes all connection and releases all resources used by the connector. This function also calls the parser's closeParser() method if a parser is active.
        Specified by:
        terminate in interface ConnectorInterface
        Overrides:
        terminate in class Connector
        Throws:
        java.lang.Exception - if an error occurs.
      • loadProperties

        protected void loadProperties​(java.lang.String path)
                               throws java.lang.Exception
        Loads the data from path into a buffer where decryption is applied before parsing the properties into the map object.
        Parameters:
        path - The filename or URL from which to read props
        Throws:
        java.lang.Exception - if an error occurs while loading properties
      • setProperty

        public void setProperty​(java.lang.String key,
                                java.lang.Object value,
                                boolean encr)
                         throws java.lang.Exception
        Sets the provided property in the JavaPropertiesMap/SystemStore/PropertyFile.
        Parameters:
        key - the key name to use.
        value - the value to set.
        encr - specify whether the value should be encrypted.
        Throws:
        java.lang.Exception - if an error occurs.
      • setProperty

        public void setProperty​(java.lang.String key,
                                java.lang.Object value,
                                java.lang.Boolean encr)
                         throws java.lang.Exception
        Sets the provided property in the JavaPropertiesMap/SystemStore/PropertyFile.
        Parameters:
        key - the key name to use.
        value - the value to set.
        encr - If not null, specify whether the value should be encrypted. If null, keep old encryption status if possible.
        Throws:
        java.lang.Exception - if an error occurs.
        Since:
        7.0
      • saveProperties

        public void saveProperties​(java.lang.String path)
                            throws java.lang.Exception
        Saves the properties in the appropriate store. If the store is configured to be the SystemStore then this call is ignored.
        Parameters:
        path - this is the path to the file in which the properties will be saved. This parameter is ignored if the connector is configured to store properties in other than a File.
        Throws:
        java.lang.Exception - if an error occurs.
      • selectEntries

        public void selectEntries()
                           throws java.lang.Exception
        Initializes the helper iterators objects used for iterating over the keys of the configured property store.
        Specified by:
        selectEntries in interface ConnectorInterface
        Overrides:
        selectEntries in class Connector
        Throws:
        java.lang.Exception - if an error occurs.
      • getNextEntry

        public Entry getNextEntry()
                           throws java.lang.Exception
        Iterates over the set of keys and returns an entry for each property.
        Specified by:
        getNextEntry in interface ConnectorInterface
        Overrides:
        getNextEntry in class Connector
        Returns:
        an entry that represents the key/value pair in the specified store, or null if the store is exhausted.
        Throws:
        java.lang.Exception - if an error occurs.
        See Also:
        ConnectorInterface.selectEntries()
      • findEntry

        public Entry findEntry​(SearchCriteria search)
                        throws java.lang.Exception
        Looks for a key name in the configured store. The key name is provided using the first value of a SearchCriteria object.
        Specified by:
        findEntry in interface ConnectorInterface
        Overrides:
        findEntry in class Connector
        Parameters:
        search - the object used to find the specific property. Note: only the first criteria is used, the rest (if any) are ignored.
        Returns:
        an entry that represents the key/value pair in the specified store, or null if a property with the specified key name could not be found.
        Throws:
        java.lang.Exception - if an error occurs.
      • querySchema

        public java.lang.Object querySchema​(java.lang.Object source)
                                     throws java.lang.Exception
        This function translates to whatever means a connector has to discover schema for a connection. The connector may implement this, in which case a Vector of Entry objects is returned for each column/attribute it discovered. For a database connector this would typically be column names and their attributes.

        Each Entry in the Vector returned should contain the following attributes:

        Name Value
        name The name of the column/attribute/field ....
        syntax The syntax or expected value type
        size If specified this will give the user a hint as to how long the field may be

        Specified by:
        querySchema in interface ConnectorInterface
        Overrides:
        querySchema in class Connector
        Parameters:
        source - The object on which to discover schema. This may be an Entry or a string value
        Returns:
        A Vector of com.ibm.di.entry.Entry objects describing each entity
        Throws:
        java.lang.Exception - if an error while retrieving the schema occurs.
        See Also:
        Entry, Vector
      • putEntry

        public void putEntry​(Entry entry)
                      throws java.lang.Exception
        Adds a key/value pair in the specified property store.
        Specified by:
        putEntry in interface ConnectorInterface
        Overrides:
        putEntry in class Connector
        Parameters:
        entry - the entry containing the attributes "key" and "value".
        Throws:
        java.lang.Exception - if an error occurs.
      • modEntry

        public void modEntry​(Entry entry,
                             SearchCriteria search)
                      throws java.lang.Exception
        Modifies an existing entry. The new entry data is given by the entry parameter and the search criteria specifies which entry to modify.
        Specified by:
        modEntry in interface ConnectorInterface
        Overrides:
        modEntry in class Connector
        Parameters:
        entry - The entry data
        search - The search criteria used to locate the entry to be modified
        Throws:
        java.lang.Exception - Any exceptions thrown by the connector's underlying classes
      • deleteEntry

        public void deleteEntry​(Entry entry,
                                SearchCriteria search)
                         throws java.lang.Exception
        Deletes the specified key/value pair from the configured property store.
        Specified by:
        deleteEntry in interface ConnectorInterface
        Overrides:
        deleteEntry in class Connector
        Parameters:
        entry - - ignored.
        search - the SearchCriteria object which first criteria object is used to find the property to delete.
        Throws:
        java.lang.Exception - if an error occurs.
      • setModified

        public void setModified()
        Set the modified flag, to make sure that the values are saved even if no change has been made
      • getVersion

        public java.lang.String getVersion()
        Return version information
        Specified by:
        getVersion in interface VersionInfoInterface
        Returns:
        The version value