com.ibm.di.connector.ccmdb
Class CCMDBConnector

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

public class CCMDBConnector
extends Connector
implements ConnectorInterface

This Connector will read Actual Config Items and relations from MAXIMO database.
This Connector supports two modes:


Field Summary
 
Fields inherited from class com.ibm.di.connector.Connector
ALL_MODES, myLog, PROPERTY_MESSAGE, PROPERTY_READER, PROPERTY_WRITER
 
Constructor Summary
CCMDBConnector()
          Constructor which populates the modes supported by the Connector.
 
Method Summary
 String checkDbConnection()
          Checks if with the currently configured properties, a connection to the MAXIMO database can be established.
 void deleteEntry(Entry entry, SearchCriteria search)
          Deletes an existing entry.
 Entry findEntry(SearchCriteria criteria)
          Finds an existing entry.
 String getCDMType(String classification)
           
 String getClassification(String cdmType)
           
 List<String> getClassTypes(String artifactType)
           
 Connection getConnection()
          Returns the JDBC Connection to the Maximo database.
 String getDbUsername()
          Returns the username for connection to the Maximo database.
 String getJdbcDriver()
          Returns the JDBC driver for connection to the Maximo database.
 String getJdbcUrl()
          Returns the JDBC URL for connection to the Maximo database.
 Entry getNextEntry()
          This method returns a single entry object for a CI\Relationship searched as per criteria.
protected static ResourceHash getResHash()
           
 String getVersion()
          Version information.
 void initialize(Object entry)
          This standard method initializes the Connector with values present in its Configuration panel.
 void modEntry(Entry entry, SearchCriteria search)
          Modifies an existing entry.
 void modEntry(Entry entry, SearchCriteria search, Entry oldEntry)
          Modifies an existing entry.
 void putEntry(Entry entry)
          Adds a new entry to the data source
 Object querySchema(Object arg0)
          This method populates Output Map for CallReply mode and Input Map for Iterator\Lookup mode.
 void selectEntries()
          This is preparation method for Iterator mode.
 void terminate()
          This method will close Connection to the MAXIMO database.
 
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, 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, pushback, queryOperations, queryReply, reconnect, registerScriptBeans, replyEntry, setConfiguration, setContext, setCurrent, setLog, setMaxDuplicateEntries, setName, setParam, setRSInterface, terminateServer
 

Constructor Detail

CCMDBConnector

public CCMDBConnector()
Constructor which populates the modes supported by the Connector.

Method Detail

getVersion

public String getVersion()
Version information.

Specified by:
getVersion in interface VersionInfoInterface
Returns:
version information

getDbUsername

public String getDbUsername()
Returns the username for connection to the Maximo database.

Returns:
the dbUsername.

getJdbcDriver

public String getJdbcDriver()
Returns the JDBC driver for connection to the Maximo database.

Returns:
the jdbcDriver.

getJdbcUrl

public String getJdbcUrl()
Returns the JDBC URL for connection to the Maximo database.

Returns:
the jdbcUrl.

getConnection

public Connection getConnection()
                         throws SQLException
Returns the JDBC Connection to the Maximo database.

Returns:
the Connection.
Throws:
SQLException

getCDMType

public String getCDMType(String classification)
                  throws Exception
Parameters:
classification -
Returns:
Throws:
Exception

getClassification

public String getClassification(String cdmType)
Parameters:
cdmType -
Returns:

getClassTypes

public List<String> getClassTypes(String artifactType)
                           throws CCMDBException
Parameters:
artifactType -
Returns:
List
Throws:
CCMDBException

initialize

public void initialize(Object entry)
                throws Exception
This standard method initializes the Connector with values present in its Configuration panel. If database related parameters are not present in the Connector's configuration.

Specified by:
initialize in interface ConnectorInterface
Overrides:
initialize in class Connector
Parameters:
entry - an initial entry provided to the Connector.
Throws:
Exception - if a problem occurs.

querySchema

public Object querySchema(Object arg0)
                   throws Exception
This method populates Output Map for CallReply mode and Input Map for Iterator\Lookup mode. The attributes for a CI\Relationship are fetched from MAXIMO database.

Specified by:
querySchema in interface ConnectorInterface
Overrides:
querySchema in class Connector
Parameters:
arg0 - an object parameter not used by this method.
Returns:
null, since the Connector handles the schema population on its own.
Throws:
Exception - if a problem occurs.
See Also:
Entry, Vector

terminate

public void terminate()
               throws Exception
This method will close Connection to the MAXIMO database. It will also clear the counter for Iterator mode.

Specified by:
terminate in interface ConnectorInterface
Overrides:
terminate in class Connector
Throws:
Exception - if a problem occur.

checkDbConnection

public String checkDbConnection()
Checks if with the currently configured properties, a connection to the MAXIMO database can be established.

Returns:
if the connection was established successfully null is returned, otherwise the method returns a String containing the exception's text.
Throws:
IOException - if a problem occurs.

selectEntries

public void selectEntries()
                   throws Exception
This is preparation method for Iterator mode. This will fetch values of CI\Relationship from the MAXIMO database.

Specified by:
selectEntries in interface ConnectorInterface
Overrides:
selectEntries in class Connector
Throws:
Exception - if a problem occurs.

getNextEntry

public Entry getNextEntry()
                   throws Exception
This method returns a single entry object for a CI\Relationship searched as per criteria. Refer to selectEntries for more details.

Specified by:
getNextEntry in interface ConnectorInterface
Overrides:
getNextEntry in class Connector
Returns:
the next read entry.
Throws:
Exception - if an error occurs.
See Also:
ConnectorInterface.selectEntries()

findEntry

public Entry findEntry(SearchCriteria criteria)
                throws Exception
Finds an existing entry. The search criteria specifies which entry to locate

Here is an example of how to find all people with names starting with 'J' which are from IBM organization in US.

Example:

 var ctor = input.getConnector();
 var crit = new com.ibm.di.SearchCriteria("$dn",
                com.ibm.di.SearchCriteria.SUBSTRING, "c=US,o=IBM");
 crit.addCriteria("name", com.ibm.di.SearchCriteria.INITIAL_STRING, "J");
 crit.addCriteria("objectclass", com.ibm.di.SearchCriteria.SUBSTRING, "person");
 
 var res = ctor.findEntry(crit);
 if (res != null) {
        main.logmsg("Found entry:");
        main.dumpEntry(res);
 } else {
  if( getFindEntryCount()> 1 ){
   main.logmsg("Found these entries:");
   while ( (entry = ctor.getNextFindEntry()) != null ) {
     main.dumpEntry(entry);
   }
  }
  else {
         main.logmsg("Entry not found!");
  }
 }
 

Specified by:
findEntry in interface ConnectorInterface
Overrides:
findEntry in class Connector
Parameters:
criteria - The search criteria used to locate the entry to be modified
Returns:
The entry found, or null if no or multiple entries found
Throws:
Exception - if an error occurs.

putEntry

public void putEntry(Entry entry)
              throws Exception
Adds a new entry to the data source

Example:

 var ctor = write.getConnector();
 
 for (i = 0; i < 10; i++) {
        var entry = system.newEntry();
        entry.setAttribute("linenumber", i);
        entry.setAttribute("line", i + " line of text...");
 
        main.logmsg("Writes entry to output...");
        main.dumpEntry(entry);
        ctor.putEntry(entry);
 }
 

Specified by:
putEntry in interface ConnectorInterface
Overrides:
putEntry in class Connector
Parameters:
entry - The entry data to add
Throws:
Exception - if an error occurs.

modEntry

public void modEntry(Entry entry,
                     SearchCriteria search,
                     Entry oldEntry)
              throws Exception
Description copied from class: Connector
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
oldEntry - The old entry found by the search criteria
Throws:
Exception - if an error occurs.

modEntry

public void modEntry(Entry entry,
                     SearchCriteria search)
              throws Exception
Description copied from class: Connector
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 - if an error occurs.

deleteEntry

public void deleteEntry(Entry entry,
                        SearchCriteria search)
                 throws Exception
Description copied from class: Connector
Deletes an existing entry. The search criteria specifies which entry to modify. Some connectors may silently ignore the search criteria. For example, the LDAP connector will use the distinguished name ($dn) from the entry parameter (if it exists) rather than expanding the search criteria and search for the entry. Each connector's inner semantics governs whether the search parameter is used or not.

Specified by:
deleteEntry in interface ConnectorInterface
Overrides:
deleteEntry in class Connector
Parameters:
entry - The entry data
search - The search criteria used to locate the entry to be deleted
Throws:
Exception - if an error occurs.

getResHash

protected static ResourceHash getResHash()