com.ibm.di.connector.maximo
Class TpaeIFConnector

java.lang.Object
  extended by com.ibm.di.connector.Connector
      extended by com.ibm.di.connector.maximo.core.SimpleTpaeIFConnector
          extended by com.ibm.di.connector.maximo.TpaeIFConnector
All Implemented Interfaces:
ConnectorInterface, VersionInfoInterface

public class TpaeIFConnector
extends SimpleTpaeIFConnector

Tpae IF Connector is able to work with hierarchical entries and is based on the SimpleTpaeIFConnector.


Field Summary
 
Fields inherited from class com.ibm.di.connector.maximo.core.SimpleTpaeIFConnector
cfg, connIterator, connLookup, proxyLog
 
Fields inherited from class com.ibm.di.connector.Connector
ALL_MODES, myLog, PROPERTY_MESSAGE, PROPERTY_READER, PROPERTY_WRITER
 
Constructor Summary
TpaeIFConnector()
          Default constructor.
 
Method Summary
 void deleteEntry(Entry entry, SearchCriteria sc)
          Deletes an existing entry.
 Entry findEntry(SearchCriteria searchCriteria)
          Finds an existing entry.
 Entry getNextEntry()
          Returns the next Entry from the connector.
 java.lang.String getVersion()
          Version information.
 void initialize(java.lang.Object obj)
          Initialize the connector.
 void modEntry(Entry newEntry, SearchCriteria searchCriteria, Entry oldEntry)
          Modifies an existing entry.
 void putEntry(Entry newEntry)
          Adds a new entry to the data source
 java.lang.Object querySchema(java.lang.Object obj)
          This method populates the input/output map of the connector with the hierarchical schema of the specified Object structure.
 void selectEntries()
          Prepare the Connector for sequential read.
 void setConfiguration(java.lang.Object config)
          This method makes sure that InternalSchema.CONNECTOR_COMPUTE_CHANGES is set to false since compute changes logic is not supported for hierarchical entries yet.
 
Methods inherited from class com.ibm.di.connector.maximo.core.SimpleTpaeIFConnector
clearSchemaCache, extractExceptionInformation, extractMaximoException, getFc, getMboList, getResHash, setParam, terminate
 
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, setContext, setCurrent, setDebugMode, setLog, setMaxDuplicateEntries, setModes, setModes, setName, setParser, setProperty, setRSInterface, terminateServer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TpaeIFConnector

public TpaeIFConnector()
Default constructor.

Method Detail

setConfiguration

public void setConfiguration(java.lang.Object config)
This method makes sure that InternalSchema.CONNECTOR_COMPUTE_CHANGES is set to false since compute changes logic is not supported for hierarchical entries yet.

Specified by:
setConfiguration in interface ConnectorInterface
Overrides:
setConfiguration in class Connector
Parameters:
config - The configuration object (an instance of ConnectorConfig)

initialize

public void initialize(java.lang.Object obj)
                throws java.lang.Exception
Initialize the connector. The connector may be passed a parameter of any kind by the user. It is up to the connector to determine whether this object can be used or not. The parameter is typically provided by a user script. When an AssemblyLine initializes it's Connectors, they are passed a ConnectorMode object.

Specified by:
initialize in interface ConnectorInterface
Overrides:
initialize in class SimpleTpaeIFConnector
Parameters:
obj - User provided parameter
Throws:
java.lang.Exception - if the initialization of this connector fails.

selectEntries

public void selectEntries()
                   throws MxConnectorException
Prepare the Connector for sequential read. If necessary, create a result set to be used for getNextEntry(). When the Connector is used as an Iterator in an AssemblyLine, this method will be called. Default is an empty method.

Specified by:
selectEntries in interface ConnectorInterface
Overrides:
selectEntries in class SimpleTpaeIFConnector
Throws:
MxConnectorException

getNextEntry

public Entry getNextEntry()
                   throws MxConnectorException
Returns the next Entry from the connector. The entry is populated with attributes and values from the next entry in the input set.

Example:

 var ctor = input.getConnector();
 var entry = ctor.getNextEntry();
 
 for (; entry != null; entry = ctor.getNextEntry()) {
        main.logmsg("Read entry...");
        main.dumpEntry(entry);
 }
 

Specified by:
getNextEntry in interface ConnectorInterface
Overrides:
getNextEntry in class SimpleTpaeIFConnector
Returns:
- the next Entry, or null if no more data
Throws:
MxConnectorException
See Also:
ConnectorInterface.selectEntries()

putEntry

public void putEntry(Entry newEntry)
              throws MxConnectorException
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 SimpleTpaeIFConnector
Parameters:
newEntry - The entry data to add
Throws:
MxConnectorException

findEntry

public Entry findEntry(SearchCriteria searchCriteria)
                throws java.lang.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 SimpleTpaeIFConnector
Parameters:
searchCriteria - The search criteria used to locate the entry to be modified
Returns:
The entry found, or null if no or multiple entries found
Throws:
java.lang.Exception - if an error occurs.

modEntry

public void modEntry(Entry newEntry,
                     SearchCriteria searchCriteria,
                     Entry oldEntry)
              throws MxConnectorException
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 SimpleTpaeIFConnector
Parameters:
newEntry - The entry data
searchCriteria - The search criteria used to locate the entry to be modified
oldEntry - The old entry found by the search criteria
Throws:
MxConnectorException

deleteEntry

public void deleteEntry(Entry entry,
                        SearchCriteria sc)
                 throws MxConnectorException
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 SimpleTpaeIFConnector
Parameters:
entry - The entry data
sc - The search criteria used to locate the entry to be deleted
Throws:
MxConnectorException

querySchema

public java.lang.Object querySchema(java.lang.Object obj)
                             throws java.lang.Exception
This method populates the input/output map of the connector with the hierarchical schema of the specified Object structure.

Note: This method uses SchemaUtils.convertEntryToSchemaHier(Entry, ConnectorConfig, boolean) method to display a hierarchical schema. However currently this method is no converting correctly the hierarchical entry to a hierarchical schema. This will be addressed later in the release.

Specified by:
querySchema in interface ConnectorInterface
Overrides:
querySchema in class SimpleTpaeIFConnector
Parameters:
obj - 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

getVersion

public java.lang.String getVersion()
Version information.

Specified by:
getVersion in interface VersionInfoInterface
Overrides:
getVersion in class SimpleTpaeIFConnector
Returns:
version information