com.ibm.di.connector
Class PropertiesConnector

java.lang.Object
  extended by com.ibm.di.connector.Connector
      extended by com.ibm.di.connector.PropertiesConnector
All Implemented Interfaces:
ConnectorInterface, VersionInfoInterface

public class PropertiesConnector
extends Connector
implements ConnectorInterface

Properties Connector operates on a file or URL.


Field Summary
protected  boolean isJavaProperties
          A flag that marks a collection of Java Properties.
protected  Iterator<Object> jpIterator
          Iterator over the Java Properties' keys.
protected  Map<String,Object> map
          In-memory data
protected  Iterator<String> mapIterator
          Iterator over the in-memory/sysStore/File properties' keys.
protected  boolean modified
          A flag that marks a modified collection.
static String PARAM_AUTOREWRITE
          Connector parameter name: "autorewrite"
static String PARAM_CIPHER
          Connector parameter name: "cipher"
static String PARAM_COLLECTION
          Connector parameter name: "collection"
static String PARAM_COLLECTION_TYPE
          Connector parameter name: "collectionType"
static String PARAM_CREATE_FILE
          Connector parameter name: "createCollection"
static String PARAM_ENCRYPTION
          Connector parameter name: "encryption"
static String PARAM_PASSWORD
          Connector parameter name: "secret"
protected  PropertiesFile propsFile
          The PropertiesFile object.
protected  Crypto propsFileCrypto
          The Crypto object used for decryption of the entire properties file.
static String PROTECT_PREFIX
          Prefix used by encrypted property values
static String PROTECT_VAL_PREFIX
          Prefix used in property value to indicate encrypted data
static String[] SUPPORTED_MODES
          Supported connector modes
protected  PropertyStore systemStore
          The PropertyStore object.
protected  UserFunctions uf
          Helper object.
 
Fields inherited from class com.ibm.di.connector.Connector
ALL_MODES, myLog, PROPERTY_MESSAGE, PROPERTY_READER, PROPERTY_WRITER
 
Constructor Summary
PropertiesConnector()
          Constructor
 
Method Summary
 void deleteEntry(Entry entry, SearchCriteria search)
          Deletes the specified key/value pair from the configured property store.
 Entry findEntry(SearchCriteria search)
          Looks for a key name in the configured store.
 Entry getNextEntry()
          Iterates over the set of keys and returns an entry for each property.
 String getVersion()
          Return version information
 void initialize(Object o)
          Initialize the connector.
protected  void loadProperties(String path)
          Loads the data from path into a buffer where decryption is applied before parsing the properties into the map object.
 void modEntry(Entry entry, SearchCriteria search)
          Modifies an existing entry.
 void putEntry(Entry entry)
          Adds a key/value pair in the specified property store.
 Object querySchema(Object source)
          This function translates to whatever means a connector has to discover schema for a connection.
 void saveProperties(String path)
          Saves the properties in the appropriate store.
 void selectEntries()
          Initializes the helper iterators objects used for iterating over the keys of the configured property store.
 void setModified()
          Set the modified flag, to make sure that the values are saved even if no change has been made
 void setProperty(String key, Object value, boolean encr)
          Sets the provided property in the JavaPropertiesMap/SystemStore/PropertyFile.
 void setProperty(String key, Object value, Boolean encr)
          Sets the provided property in the JavaPropertiesMap/SystemStore/PropertyFile.
 void terminate()
          Terminate the connector.
 
Methods inherited from class com.ibm.di.connector.Connector
addFindEntry, allModes, clearFindEntries, debug, debugMode, findEntry, getBoolean, getClassInstance, getConfiguration, getContext, getFindEntryCount, getFirstFindEntry, getLog, getMaxDuplicateEntries, getModes, getModes, getName, getNextClient, getNextFindEntry, getParam, getParser, getProperty, getPushbackEntry, getRawConnectorConfiguration, getRSInterface, getUI, hasConfigValue, hasParser, initParser, isDeltaSupported, isExceptionFatal, isIOException, logError, logmsg, modEntry, pushback, queryOperations, queryReply, queryTables, reconnect, reconnect, registerScriptBeans, replyEntry, setConfiguration, setContext, setCurrent, setDebugMode, setLog, setMaxDuplicateEntries, setModes, setModes, setName, setParam, setParser, setProperty, setRSInterface, terminateServer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ibm.di.connector.ConnectorInterface
getConfiguration, getContext, getFindEntryCount, getFirstFindEntry, getMaxDuplicateEntries, getName, getNextClient, getNextFindEntry, getParam, getPushbackEntry, getRawConnectorConfiguration, isDeltaSupported, isExceptionFatal, isIOException, modEntry, pushback, queryOperations, queryReply, reconnect, registerScriptBeans, replyEntry, setConfiguration, setContext, setCurrent, setLog, setMaxDuplicateEntries, setName, setParam, setRSInterface, terminateServer
 

Field Detail

PARAM_COLLECTION

public static final String PARAM_COLLECTION
Connector parameter name: "collection"

See Also:
Constant Field Values

PARAM_COLLECTION_TYPE

public static final String PARAM_COLLECTION_TYPE
Connector parameter name: "collectionType"

See Also:
Constant Field Values

PARAM_ENCRYPTION

public static final String PARAM_ENCRYPTION
Connector parameter name: "encryption"

See Also:
Constant Field Values

PARAM_CIPHER

public static final String PARAM_CIPHER
Connector parameter name: "cipher"

See Also:
Constant Field Values

PARAM_PASSWORD

public static final String PARAM_PASSWORD
Connector parameter name: "secret"

See Also:
Constant Field Values

PARAM_AUTOREWRITE

public static final String PARAM_AUTOREWRITE
Connector parameter name: "autorewrite"

See Also:
Constant Field Values

PARAM_CREATE_FILE

public static final String PARAM_CREATE_FILE
Connector parameter name: "createCollection"

See Also:
Constant Field Values

PROTECT_PREFIX

public static final String PROTECT_PREFIX
Prefix used by encrypted property values

See Also:
Constant Field Values

PROTECT_VAL_PREFIX

public static final String PROTECT_VAL_PREFIX
Prefix used in property value to indicate encrypted data

See Also:
Constant Field Values

SUPPORTED_MODES

public static final String[] SUPPORTED_MODES
Supported connector modes


map

protected Map<String,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.


systemStore

protected PropertyStore systemStore
The PropertyStore object.


propsFile

protected PropertiesFile propsFile
The PropertiesFile object.


propsFileCrypto

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


mapIterator

protected Iterator<String> mapIterator
Iterator over the in-memory/sysStore/File properties' keys.


jpIterator

protected Iterator<Object> jpIterator
Iterator over the Java Properties' keys.


uf

protected UserFunctions uf
Helper object.

Constructor Detail

PropertiesConnector

public PropertiesConnector()
Constructor

Method Detail

initialize

public void initialize(Object o)
                throws 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:
Exception - Any exception thrown by java.io/java.net classes when loading a file/url.

terminate

public void terminate()
               throws 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:
Exception - if an error occurs.

loadProperties

protected void loadProperties(String path)
                       throws 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:
Exception - if an error occurs while loading properties

setProperty

public void setProperty(String key,
                        Object value,
                        boolean encr)
                 throws 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:
Exception - if an error occurs.

setProperty

public void setProperty(String key,
                        Object value,
                        Boolean encr)
                 throws 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:
Exception - if an error occurs.
Since:
7.0

saveProperties

public void saveProperties(String path)
                    throws 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:
Exception - if an error occurs.

selectEntries

public void selectEntries()
                   throws 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:
Exception - if an error occurs.

getNextEntry

public Entry getNextEntry()
                   throws 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:
Exception - if an error occurs.
See Also:
ConnectorInterface.selectEntries()

findEntry

public Entry findEntry(SearchCriteria search)
                throws 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:
Exception - if an error occurs.

querySchema

public Object querySchema(Object source)
                   throws 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:
Exception - if an error while retrieving the schema occurs.
See Also:
Entry, Vector

putEntry

public void putEntry(Entry entry)
              throws 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:
Exception - if an error occurs.

modEntry

public void modEntry(Entry entry,
                     SearchCriteria search)
              throws 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:
Exception - Any exceptions thrown by the connector's underlying classes

deleteEntry

public void deleteEntry(Entry entry,
                        SearchCriteria search)
                 throws 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:
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 String getVersion()
Return version information

Specified by:
getVersion in interface VersionInfoInterface
Returns:
The version value