Class AssemblyLineComponent

  • All Implemented Interfaces:
    java.util.Map
    Direct Known Subclasses:
    AttributeMapComponent, BranchingComponent, CSDeltaTaskComponent, EndBranchComponent, EndLoopComponent, FunctionComponent, ReplyChannelComponent, ScriptComponent

    public class AssemblyLineComponent
    extends java.lang.Object
    implements java.util.Map
    This class is used by the AssemblyLine (AssemblyLine) to wrap a Connector object and provide additional functionality over the underlying Connector object. All attribute mapping and hook handling is performed by this class.

    The underlying Connector object is exposed as a property called connector. This class is also the root class of a hierarchy of classes which represent components which can be hosted in an AssemblyLine (for example Function Components, Script Components, Branch Components, Loop Components, etc.)

    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected AttributeMapping addmap  
      static java.lang.String CHECKPOINT_GETS
      Deprecated.
      Checkpoint/restart is deprecated
      protected ConnectorConfig config
      This is our configuration (with attribute maps, hooks etc ...)
      protected RawConnectorConfig connConfig
      This is the configuration of the ConnectorInterface
      ConnectorInterface connector
      This is the connector we are working with.
      protected ConnectorPool connPool
      Holds the Connector Pool object when a pooled Connector is used
      static java.lang.String END_OF_DATA
      The key used to get the flag which is raised (it's value is set to true) when the the component wrapped by this AssemblyLineComponent is in Iterator mode and the feed has been exhausted.
      protected AttributeMapping handler
      This is the object performing hooks
      static java.lang.String HOOKS_INVOKED
      The key used to get the list of invoked hooks in this cycle.
      protected AttributeMapping imap
      These are the objects performing input and output attribute mapping
      protected static java.lang.String INITIALIZE  
      protected int initializeCount
      How many times the component has been initialized
      static java.lang.String LAST_CONN
      The key used to get the last Entry with information from the Connector, or the last Entry that was sent to the Connector
      static java.lang.String LAST_ERROR
      The key used to get the last error that have occurred.
      protected Log log
      This is the Log object we use for logging
      protected AttributeMapping modmap  
      protected java.lang.String name
      This is the connector name as given by the AssemblyLine
      static java.lang.String NUM_ADD
      The key used to get the number additions this component has made.
      static java.lang.String NUM_CALLREPLY
      The key used to get the number of call-replays operations this component has executed.
      static java.lang.String NUM_DELETE
      The key used to get the number of deletions this component has made.
      static java.lang.String NUM_ERRORS
      The key used to get the number of errors this component has made.
      static java.lang.String NUM_GET
      The key used to get the number of entries this component has gotten.
      static java.lang.String NUM_GET_TRIES
      The key used to get the number of times we tried to get an Entry.
      static java.lang.String NUM_GETCLIENT
      The key used to get the number of the clients this component has connected with.
      static java.lang.String NUM_GETCLIENT_TRIES
      The key used to get the number of times we tried to get a client
      static java.lang.String NUM_IGNORED
      The key used to get the number of ignored entries.
      static java.lang.String NUM_LOOKUP
      The key used to get the number of lookups this component has made.
      static java.lang.String NUM_MODIFY
      The key used to get the number of modifications this component has made.
      static java.lang.String NUM_NOCHANGE
      The key used to get the number of no-change entries.
      static java.lang.String NUM_SKIPPED
      The key used to get the number of skipped entries.
      protected AssemblyLine parent
      This is the parent task (AssemblyLine)
      protected boolean pooledConnector
      Indicates whether this Connector is got from a Connector Pool
      protected static java.lang.String SELECT  
      TaskStatistics stats
      This is the statistics object for the component
      static java.lang.String SUCCESSFUL
      The key used to get the status the last operation ended with.
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void add​(Entry meta)
      This method implements the AddOnly mode operation.
      void callreply​(Entry meta)
      This method implements the CallReply mode operation.
      boolean checkInitialize()
      Checks whether the connector needs to be (re)initialized or not.
      boolean checkTerminate()
      Checks whether the connector should be terminated (e.g.
      void clear()
      void close()
      This method closes the connector (connector.terminate()) and calls the before/after close hooks.
      boolean componentInitialized()
      Returns true if component is initialized
      boolean containsKey​(java.lang.Object key)
      boolean containsValue​(java.lang.Object val)
      Returns true if a key maps to this value.
      void debug​(java.lang.String msg)
      Write a message to the log file prefixed by this connector's name
      void delete​(Entry meta)
      This method implements the Delete mode operation.
      void deleteEntry​(Entry meta)
      This method calls the delete method.
      void delta​(Entry meta)
      This method implements the Delta mode operation.
      void doConnectorInitialize()
      This method calls the appropriate hooks and the connector's initialize method.
      void doConnectorTerminate()
      This method calls the appropriate hooks and the connector's terminate method.
      void doConnectorTerminate​(boolean force)
      This method calls the appropriate hooks and the connector's terminate method.
      void dumpEntry​(Entry meta)
      Deprecated.
      protected void dumpObjects​(Entry conn, Entry work, Entry current)  
      java.util.Set<java.util.Map.Entry> entrySet()
      protected java.lang.Object executeOperation​(int operation, Entry work, Entry conn, SearchCriteria search, Entry current)
      This method is used to take care of dangerous/safe operations when the AL is simulating
      void expandParameters​(BaseConfiguration cf)
      Deprecated. 
      boolean failBack​(Entry work, Entry error)
      Attempt to fall back to the original connector after a failOver.
      boolean failOver​(Entry work, Entry error)
      Attempt a failOver.
      java.lang.Object get​(java.lang.Object propName)
      BaseConfiguration getBaseConfiguration()  
      java.lang.Object getConfig​(java.lang.String param)
      This method returns the configuration value for a parameter
      ConnectorConfig getConfiguration()  
      ConnectorInterface getConnector()
      Returns the ConnectorInterface we are working with
      java.lang.Object getConnectorParam​(java.lang.String param)
      This method returns the ConnectorInterface attached to this AL component.
      SearchCriteria getCriteria()
      This method returns the link criteria
      Entry getCurrent()
      Gets the current entry of the AssemblyLineComponent object
      boolean getDebug()
      This method returns the debug mode flag.
      int getDuplicateEntryCount()
      Gets the count of duplicate Entries found by the last findEntry by the ConnectorInterface
      Entry getFirstDuplicateEntry()
      Gets the first Duplicate Entry from the ConnectorInterface.
      AttributeMapping getHandler()  
      Entry getLastEntry()
      This method returns the last entry read and mapped.
      Entry getLastReadEntry()
      This method returns the last entry read from the connector.
      Log getLog()
      Returns the log object
      java.lang.String getName()
      This method returns the name assigned to the Connector by the AssemblyLine.
      Entry getnext()
      The method returns the next entry from the connector.
      Entry getnext​(Entry work)
      The method returns the next entry from the connector.
      ConnectorInterface getnextClient()
      The method returns the next client from the connector.
      Entry getNextDuplicateEntry()
      Gets the next Duplicate Entry from the ConnectorInterface.
      Entry getRestartInfoEntry()
      Deprecated. 
      java.lang.String getSimulatingState()
      The state of this component.
      TaskStatistics getStats()
      Gets the stats attribute of the AssemblyLineComponent object
      int getType()
      This method returns the mode of a Connector, or the type constant for any other type of component.
      void handleException​(java.lang.String aOper, java.lang.Throwable e, Entry meta)
      This method is called by the AssemblyLine.
      void handleSuccess​(java.lang.String oper, Entry meta)
      This method is called by the AssemblyLine if the operation oper is successful.
      void initialize()
      This method initializes the underlying connector and registers the script beans in the ScriptEngine context.
      boolean isCheckpointRestartEnabled()
      Deprecated. 
      boolean isDeltaMode()  
      boolean isEmpty()
      Returns false.
      boolean isEnabled()
      Returns true if this Component is enabled in this AssemblyLine
      boolean isExceptionFatal​(java.lang.Exception e)
      Returns true if an exception is fatal
      boolean isFailOvered()
      Returns true when using the failover connector.
      java.util.Set keySet()
      void logmsg​(java.lang.String msg)
      Write a message to the log file prefixed by this connector's name
      Entry lookup​(Entry meta)
      The method is called to lookup an entry using the configured Link Criteria.
      Entry lookup​(java.lang.String attribute, java.lang.String value)
      The method is called to lookup an entry using exact matching for attribute and value.
      Entry mapEntry​(Entry work, Entry conn)
      The method is called to map an entry using the configured input attribute map.
      void modify​(Entry old, Entry meta)
      This method implements the Modify operation (called by Update if the entry exists)
      void pushback​(Entry entry)
      This method pushes an entry back to the connector.
      java.lang.Object put​(java.lang.Object propName, java.lang.Object propValue)
      void putAll​(java.util.Map map)
      boolean reconnect()
      Cause the underlying ConnectorInterface to reconnect to it's data source
      java.lang.Object remove​(java.lang.Object propName)
      void reply​(Entry meta)
      This method is used to send a reply entry to a connector
      void resetStatus()
      This method resets the Properties of this AssemblyLineComponent.
      void setConnectorParam​(java.lang.String param, java.lang.Object value)
      This method sets the configuration value for the ConnectorInterface's parameter.
      void setCriteria​(SearchCriteria mySearchCrit)
      This method sets the link criteria for this AssemblyLineComponent
      boolean setCriteria​(SearchCriteria mySearchCrit, Entry work)
      This method sets the link criteria template for this AssemblyLineComponent, and then expands the template using the given work Entry.
      void setCurrent​(Entry current)
      Sets the current entry of the AssemblyLineComponent object
      void setDebug​(boolean debug)
      This method sets the the debug mode flag.
      void setDuplicateEntryCount​(int maxdup)
      Sets the max number of duplicate entries for the ConnectorInterface.
      void setErrorObject​(java.lang.String oper, java.lang.String reason)
      Deprecated.
      Not used anymore
      void setName​(java.lang.String name)
      This method assigns a name to the Connector.
      void setRestartInfoEntry​(ALState state, Entry rsi, int restartPoint)
      Deprecated. 
      void setSimulatingState​(java.lang.String state)
      This methods defines the behavior of a Component when the AL is simulating
      void setSuccessful​(boolean b)
      Sets the value that will be returned from wasSuccessful().
      int size()
      java.lang.String toString()
      Returns the name and class of this component
      boolean trigger​(java.lang.String oper)
      Calls the hook named oper
      boolean trigger​(java.lang.String oper, Entry work)
      Calls the hook named oper, declaring work as the corresponding bean.
      boolean trigger​(java.lang.String oper, Entry work, Entry conn)
      Calls the hook named oper, declaring work and conn as the corresponding beans.
      protected boolean triggerImpl​(java.lang.String oper, Entry work, Entry conn)
      Calls the hook named oper, declaring work and conn as the corresponding beans.
      void update​(Entry meta)
      This method implements the Update mode operation.
      void useAttributeMap​(java.lang.String fileName)
      Load an attribute map from a file and use it for the default map.
      void useAttributeMap​(java.lang.String fileName, boolean extend)
      Load an attribute map from a file and use it for the default map.
      void useAttributeMap​(java.lang.String fileName, boolean input, boolean extend)
      Load an attribute map from a file and use it for the specified map.
      void useInputMap​(AttributeMapConfig map)
      Sets the provided AttributeMapConfig to be used for input mapping.
      void useMap​(java.lang.String attributeMapName)
      Sets the named Attribute Map to be used for input and output mapping.
      void useMap​(java.lang.String attributeMapName, boolean input)
      Sets the named Attribute Map to be used for input or output mapping.
      void useOutputMap​(AttributeMapConfig map)
      Sets the provided AttributeMapConfig to be used for output mapping.
      java.util.Collection values()
      Returns the values in this Map.
      void verifySchema​(Entry entry, boolean input)
      Deprecated. 
      boolean wasConfigurationModified()  
      boolean wasSuccessful()
      Returns true if this component was successfully executed the last time it was called.
      boolean willExecute​(Entry work)
      Return true/false if this component should be executed.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Field Detail

      • CHECKPOINT_GETS

        public static final java.lang.String CHECKPOINT_GETS
        Deprecated.
        Checkpoint/restart is deprecated
        See Also:
        Constant Field Values
      • NUM_ERRORS

        public static final java.lang.String NUM_ERRORS
        The key used to get the number of errors this component has made.
        See Also:
        Constant Field Values
      • NUM_ADD

        public static final java.lang.String NUM_ADD
        The key used to get the number additions this component has made.
        See Also:
        Constant Field Values
      • NUM_MODIFY

        public static final java.lang.String NUM_MODIFY
        The key used to get the number of modifications this component has made.
        See Also:
        Constant Field Values
      • NUM_DELETE

        public static final java.lang.String NUM_DELETE
        The key used to get the number of deletions this component has made.
        See Also:
        Constant Field Values
      • NUM_GET

        public static final java.lang.String NUM_GET
        The key used to get the number of entries this component has gotten.
        See Also:
        Constant Field Values
      • NUM_GET_TRIES

        public static final java.lang.String NUM_GET_TRIES
        The key used to get the number of times we tried to get an Entry.
        See Also:
        Constant Field Values
      • NUM_GETCLIENT

        public static final java.lang.String NUM_GETCLIENT
        The key used to get the number of the clients this component has connected with.
        See Also:
        Constant Field Values
      • NUM_GETCLIENT_TRIES

        public static final java.lang.String NUM_GETCLIENT_TRIES
        The key used to get the number of times we tried to get a client
        See Also:
        Constant Field Values
      • NUM_CALLREPLY

        public static final java.lang.String NUM_CALLREPLY
        The key used to get the number of call-replays operations this component has executed.
        See Also:
        Constant Field Values
      • NUM_LOOKUP

        public static final java.lang.String NUM_LOOKUP
        The key used to get the number of lookups this component has made.
        See Also:
        Constant Field Values
      • NUM_NOCHANGE

        public static final java.lang.String NUM_NOCHANGE
        The key used to get the number of no-change entries.
        See Also:
        Constant Field Values
      • NUM_SKIPPED

        public static final java.lang.String NUM_SKIPPED
        The key used to get the number of skipped entries.
        See Also:
        Constant Field Values
      • NUM_IGNORED

        public static final java.lang.String NUM_IGNORED
        The key used to get the number of ignored entries.
        See Also:
        Constant Field Values
      • LAST_ERROR

        public static final java.lang.String LAST_ERROR
        The key used to get the last error that have occurred.
        See Also:
        Constant Field Values
      • SUCCESSFUL

        public static final java.lang.String SUCCESSFUL
        The key used to get the status the last operation ended with.
        See Also:
        Constant Field Values
      • LAST_CONN

        public static final java.lang.String LAST_CONN
        The key used to get the last Entry with information from the Connector, or the last Entry that was sent to the Connector
        See Also:
        Constant Field Values
      • HOOKS_INVOKED

        public static final java.lang.String HOOKS_INVOKED
        The key used to get the list of invoked hooks in this cycle.
        See Also:
        Constant Field Values
      • END_OF_DATA

        public static final java.lang.String END_OF_DATA
        The key used to get the flag which is raised (it's value is set to true) when the the component wrapped by this AssemblyLineComponent is in Iterator mode and the feed has been exhausted.
        See Also:
        Constant Field Values
      • connector

        public ConnectorInterface connector
        This is the connector we are working with. See getConnector()
      • stats

        public TaskStatistics stats
        This is the statistics object for the component
      • name

        protected java.lang.String name
        This is the connector name as given by the AssemblyLine
      • parent

        protected AssemblyLine parent
        This is the parent task (AssemblyLine)
      • imap

        protected AttributeMapping imap
        These are the objects performing input and output attribute mapping
      • handler

        protected AttributeMapping handler
        This is the object performing hooks
      • config

        protected ConnectorConfig config
        This is our configuration (with attribute maps, hooks etc ...)
      • connConfig

        protected RawConnectorConfig connConfig
        This is the configuration of the ConnectorInterface
      • log

        protected Log log
        This is the Log object we use for logging
      • pooledConnector

        protected boolean pooledConnector
        Indicates whether this Connector is got from a Connector Pool
      • connPool

        protected ConnectorPool connPool
        Holds the Connector Pool object when a pooled Connector is used
      • initializeCount

        protected int initializeCount
        How many times the component has been initialized
    • Constructor Detail

      • AssemblyLineComponent

        public AssemblyLineComponent​(TaskInterface parent,
                                     java.lang.String name,
                                     ConnectorConfig config,
                                     ConnectorInterface conn)
                              throws java.lang.Exception
        Constructor for the AssemblyLineComponent object
        Parameters:
        parent - The AssemblyLine using this component
        name - The name of this connector
        config - The configuration for this connector
        conn - An optional connector to use if we need a (runtime provided) connector
        Throws:
        java.lang.Exception - Any exception that might occur while loading the config
      • AssemblyLineComponent

        public AssemblyLineComponent​(TaskInterface parent,
                                     java.lang.String name,
                                     ConnectorConfig config,
                                     ConnectorInterface conn,
                                     boolean forceRuntime)
                              throws java.lang.Exception
        Constructor for the AssemblyLineComponent object
        Parameters:
        parent - The AssemblyLine using this component
        name - The name of this connector
        config - The configuration for this connector
        conn - An optional connector to use if we need a (runtime provided) connector
        forceRuntime - whether to use the runtime provided connector
        Throws:
        java.lang.Exception - Any exception that might occur while loading the config
      • AssemblyLineComponent

        public AssemblyLineComponent()
        Empty Constructor for the AssemblyLineComponent object
    • Method Detail

      • setCurrent

        public void setCurrent​(Entry current)
        Sets the current entry of the AssemblyLineComponent object
        Parameters:
        current - The new current value
      • setDebug

        public void setDebug​(boolean debug)
        This method sets the the debug mode flag. May be called by different threads.
        Parameters:
        debug - True to enable debug, false to disable
      • setErrorObject

        @Deprecated
        public void setErrorObject​(java.lang.String oper,
                                   java.lang.String reason)
        Deprecated.
        Not used anymore
        Declare an error object in the script engine
        Parameters:
        oper - The new errorObject value
        reason - The new errorObject value
      • setDuplicateEntryCount

        public void setDuplicateEntryCount​(int maxdup)
        Sets the max number of duplicate entries for the ConnectorInterface. This is used by the lookup operation when a lookup returns more than one entry.
        Parameters:
        maxdup - The new maximum
      • getName

        public java.lang.String getName()
        This method returns the name assigned to the Connector by the AssemblyLine.
        Returns:
        The name of this Connector (in scripting terms)
      • setName

        public void setName​(java.lang.String name)
        This method assigns a name to the Connector.
        Parameters:
        name - the name to set.
      • toString

        public java.lang.String toString()
        Returns the name and class of this component
        Overrides:
        toString in class java.lang.Object
      • getCurrent

        public Entry getCurrent()
        Gets the current entry of the AssemblyLineComponent object
        Returns:
        The current Entry
      • getConfiguration

        public ConnectorConfig getConfiguration()
        Returns:
        the Connector configuration
      • getBaseConfiguration

        public BaseConfiguration getBaseConfiguration()
        Returns:
        the BaseConfiguration
      • getConfig

        public java.lang.Object getConfig​(java.lang.String param)
        This method returns the configuration value for a parameter
        Parameters:
        param - The parameter name
        Returns:
        The object associated with parameter name
      • getConnectorParam

        public java.lang.Object getConnectorParam​(java.lang.String param)
        This method returns the ConnectorInterface attached to this AL component.

        Note that this applies only to Connectors and will return null for any other type of component.

        Parameters:
        param - The parameter name
        Returns:
        The object associated with parameter name
      • setConnectorParam

        public void setConnectorParam​(java.lang.String param,
                                      java.lang.Object value)
        This method sets the configuration value for the ConnectorInterface's parameter.
        Parameters:
        param - The parameter name
        value - The parameter value
      • getConnector

        public ConnectorInterface getConnector()
        Returns the ConnectorInterface we are working with
        Returns:
        The Connector we are working with
      • getDebug

        public boolean getDebug()
        This method returns the debug mode flag.
        Returns:
        True if debug is enabled, false otherwise
      • getCriteria

        public SearchCriteria getCriteria()
        This method returns the link criteria

        This example code demonstrates how to get, modify and set different SearchCriteria for a component.

        Example:

         var conCrit = input.getCriteria();
         var newCrit = new com.ibm.di.server.SearchCriteria();
        
         for (i = 0; i < conCrit.size(); i++) {
                var rsc = conCrit.getCriteria(i);
                if ((rsc.name.equals("pass"))
                                && (rsc.match == com.ibm.di.server.SearchCriteria.SUBSTRING)) {
                        newCrit.addTemplate("password", com.ibm.di.server.SearchCriteria.EXACT,
                                        rsc.value);
                } else {
                        newCrit.addTemplate(rsc.name, rsc.match, rsc.value);
                }
         }
         input.setCriteria(newCrit);
         
        Returns:
        The link criteria of this AssemblyLineComponent
      • setCriteria

        public void setCriteria​(SearchCriteria mySearchCrit)
        This method sets the link criteria for this AssemblyLineComponent
        Parameters:
        mySearchCrit - The link criteria to set
      • setCriteria

        public boolean setCriteria​(SearchCriteria mySearchCrit,
                                   Entry work)
        This method sets the link criteria template for this AssemblyLineComponent, and then expands the template using the given work Entry. If the template is successfully expanded, the method will return true.
        Parameters:
        mySearchCrit - The Criteria to set
        work - The Entry to use for expansion.
        Returns:
        true if the link criteria was successfully expanded.
      • isDeltaMode

        public boolean isDeltaMode()
        Returns:
        true if we are in Delta mode.
      • getLastReadEntry

        public Entry getLastReadEntry()
        This method returns the last entry read from the connector.
        Returns:
        The last input entry (unmapped)
      • getLastEntry

        public Entry getLastEntry()
        This method returns the last entry read and mapped.
        Returns:
        The last input entry (mapped)
      • getnextClient

        public ConnectorInterface getnextClient()
                                         throws java.lang.Exception
        The method returns the next client from the connector.
        Returns:
        The next client or null if there are no more clients
        Throws:
        java.lang.Exception - Errors that may occur
      • getnext

        public Entry getnext()
                      throws java.lang.Exception
        The method returns the next entry from the connector.
        Returns:
        The next input entry or null if there are no more entries
        Throws:
        java.lang.Exception - Errors that may occur
      • getnext

        public Entry getnext​(Entry work)
                      throws java.lang.Exception
        The method returns the next entry from the connector. It is called by the AssemblyLine if we are working in Iterator mode.
        Parameters:
        work - The work entry to fill in
        Returns:
        The work entry filled with the next input entry, or null if there are no more entries
        Throws:
        java.lang.Exception - Errors that may occur
      • getStats

        public TaskStatistics getStats()
        Gets the stats attribute of the AssemblyLineComponent object
        Returns:
        The TaskStatistics object holding the statistics for this component.
      • getLog

        public Log getLog()
        Returns the log object
        Returns:
        The Log object
      • getHandler

        public AttributeMapping getHandler()
        Returns:
        the object performing hooks
      • isExceptionFatal

        public boolean isExceptionFatal​(java.lang.Exception e)
        Returns true if an exception is fatal
        Parameters:
        e - The exception to check
        Returns:
        True if the exception is fatal
      • getDuplicateEntryCount

        public int getDuplicateEntryCount()
        Gets the count of duplicate Entries found by the last findEntry by the ConnectorInterface
        Returns:
        The duplicateEntryCount value
      • getFirstDuplicateEntry

        public Entry getFirstDuplicateEntry()
                                     throws java.lang.Exception
        Gets the first Duplicate Entry from the ConnectorInterface. This function also resets the implicit pointer to the next Entry.
        Returns:
        The firstDuplicateEntry value
        Throws:
        java.lang.Exception - Any exceptions thrown by the connector's underlying classes
      • getNextDuplicateEntry

        public Entry getNextDuplicateEntry()
                                    throws java.lang.Exception
        Gets the next Duplicate Entry from the ConnectorInterface. This function also moves an implicit pointer to the next Entry.
        Returns:
        The nextDuplicateEntry value, null means no more values
        Throws:
        java.lang.Exception - Any exceptions thrown by the connector's underlying classes
      • isEnabled

        public boolean isEnabled()
        Returns true if this Component is enabled in this AssemblyLine
        Returns:
        The enabled value
      • close

        public void close()
                   throws java.lang.Exception
        This method closes the connector (connector.terminate()) and calls the before/after close hooks.
        Throws:
        java.lang.Exception
      • willExecute

        public boolean willExecute​(Entry work)
                            throws java.lang.Exception
        Return true/false if this component should be executed. Also calls the "Before Execute" hook.
        Parameters:
        work - The current work Entry
        Returns:
        True if this component is enabled
        Throws:
        java.lang.Exception - Any exception thrown by the executed hook
      • initialize

        public void initialize()
                        throws java.lang.Exception
        This method initializes the underlying connector and registers the script beans in the ScriptEngine context.
        Throws:
        java.lang.Exception - any exception, which occurs during the initialization of the component and is not handled by the reconnect mechanism or the error hooks; it is also possible that the exception is thrown by some of the initialize hooks
      • pushback

        public void pushback​(Entry entry)
        This method pushes an entry back to the connector. The entry is returned the next time connector.getNextEntry() is called.
        Parameters:
        entry - The entry to push back
      • doConnectorInitialize

        public void doConnectorInitialize()
                                   throws java.lang.Exception
        This method calls the appropriate hooks and the connector's initialize method.
        Throws:
        java.lang.Exception - if the connector's initialization fails or an error in one of the executed hooks occurred.
      • doConnectorTerminate

        public void doConnectorTerminate()
                                  throws java.lang.Exception
        This method calls the appropriate hooks and the connector's terminate method.
        Throws:
        java.lang.Exception - if the connector's termination fails or an error in one of the executed hooks occurred.
      • doConnectorTerminate

        public void doConnectorTerminate​(boolean force)
                                  throws java.lang.Exception
        This method calls the appropriate hooks and the connector's terminate method.
        Parameters:
        force - Forces a connector terminate, even if the connector was initialized elsewhere.
        Throws:
        java.lang.Exception - if the connector's termination fails or an error in one of the executed hooks occurred.
      • lookup

        public Entry lookup​(java.lang.String attribute,
                            java.lang.String value)
                     throws java.lang.Exception
        The method is called to lookup an entry using exact matching for attribute and value.
        Parameters:
        attribute - The attribute name to search
        value - The attribute value
        Returns:
        The entry found or null if no entries or more than one entry was found.
        Throws:
        java.lang.Exception - Any exceptions thrown by the underlying connector
      • lookup

        public Entry lookup​(Entry meta)
                     throws java.lang.Exception
        The method is called to lookup an entry using the configured Link Criteria. The link criteria is applied using meta as source for variable substitution. If you allow duplicate entries by configuration, the method will return null only when no entries have been found.
        Parameters:
        meta - The entry object providing values for variable substitution.
        Returns:
        The entry found or null if no entries or more than one entry was found.
        Throws:
        java.lang.Exception - the component is not initialized or the underlying Connector raised an error or some of the user-defined hooks raised an error
      • deleteEntry

        public void deleteEntry​(Entry meta)
                         throws java.lang.Exception
        This method calls the delete method. It is included since JavaScript and possibly other scripting languages choke on the "delete" keyword.
        Parameters:
        meta - The work object to use for the link criteria
        Throws:
        java.lang.Exception - Any Exception
        See Also:
        delete(com.ibm.di.entry.Entry)
      • delete

        public void delete​(Entry meta)
                    throws java.lang.Exception
        This method implements the Delete mode operation.
        Parameters:
        meta - The work object to use for the link criteria
        Throws:
        java.lang.Exception - the component is not initialized or the underlying Connector raised an error or some of the user-defined hooks raised an error
      • update

        public void update​(Entry meta)
                    throws java.lang.Exception
        This method implements the Update mode operation.
        Parameters:
        meta - The work entry
        Throws:
        java.lang.Exception - the component is not initialized or the underlying Connector raised an error or some of the user-defined hooks raised an error
      • modify

        public void modify​(Entry old,
                           Entry meta)
                    throws java.lang.Exception
        This method implements the Modify operation (called by Update if the entry exists)
        Parameters:
        old - The current entry in the destination system
        meta - The new entry to use in the attribute map
        Throws:
        java.lang.Exception - Any Exception
      • add

        public void add​(Entry meta)
                 throws java.lang.Exception
        This method implements the AddOnly mode operation.
        Parameters:
        meta - The work entry to add
        Throws:
        java.lang.Exception - the component is not initialized or the underlying Connector raised an error or some of the user-defined hooks raised an error
      • reply

        public void reply​(Entry meta)
                   throws java.lang.Exception
        This method is used to send a reply entry to a connector
        Parameters:
        meta - The work entry to send back
        Throws:
        java.lang.Exception - the component is not initialized or the underlying Connector raised an error or some of the user-defined hooks raised an error
      • callreply

        public void callreply​(Entry meta)
                       throws java.lang.Exception
        This method implements the CallReply mode operation.
        Parameters:
        meta - The work entry to send
        Throws:
        java.lang.Exception - the component is not initialized or the underlying Connector raised an error or some of the user-defined hooks raised an error
      • delta

        public void delta​(Entry meta)
                   throws java.lang.Exception
        This method implements the Delta mode operation.
        Parameters:
        meta - The delta entry
        Throws:
        java.lang.Exception - Any Exception
      • dumpEntry

        @Deprecated
        public void dumpEntry​(Entry meta)
                       throws java.lang.Exception
        Deprecated.
        Parameters:
        meta - an Entry to be added to the data source by the Connector
        Throws:
        java.lang.Exception - problem while adding the Entry to the data source
      • logmsg

        public void logmsg​(java.lang.String msg)
        Write a message to the log file prefixed by this connector's name
        Parameters:
        msg - The message to write
      • debug

        public void debug​(java.lang.String msg)
        Write a message to the log file prefixed by this connector's name
        Parameters:
        msg - The message to write
      • handleException

        public void handleException​(java.lang.String aOper,
                                    java.lang.Throwable e,
                                    Entry meta)
                             throws java.lang.Exception
        This method is called by the AssemblyLine. The aOper is any of the standard modes. The mode specific error hook is called first, then the "default" error hook is called.
        Parameters:
        aOper - Hook prefix
        e - The error causing this hook to be called, or null for no error
        meta - The work entry
        Throws:
        java.lang.Exception - Throws the parameter e if we cannot or do not want to handle it, or an Exception from the Hooks.
      • failOver

        public boolean failOver​(Entry work,
                                Entry error)
                         throws java.lang.Exception
        Attempt a failOver.
        Parameters:
        work - The work entry
        weeoe - The error Entry (may be filled in if an Exception occurs)
        Returns:
        true if we could do a failover
        Throws:
        java.lang.Exception - an Exception from the Hook.
      • failBack

        public boolean failBack​(Entry work,
                                Entry error)
                         throws java.lang.Exception
        Attempt to fall back to the original connector after a failOver.
        Parameters:
        work - The work entry
        weeoe - The error Entry (may be filled in if an Exception occurs)
        Returns:
        true if we could do a failover
        Throws:
        java.lang.Exception - an Exception from the Hook.
      • handleSuccess

        public void handleSuccess​(java.lang.String oper,
                                  Entry meta)
                           throws java.lang.Exception
        This method is called by the AssemblyLine if the operation oper is successful. The mode specific success hook is called first, then the "default" success hook is called.
        Parameters:
        oper - Hook prefix
        meta - The work entry
        Throws:
        java.lang.Exception - Any Exception from the Hooks
      • trigger

        public boolean trigger​(java.lang.String oper,
                               Entry work,
                               Entry conn)
                        throws java.lang.Exception
        Calls the hook named oper, declaring work and conn as the corresponding beans. The trigger function calls one of the AssemblyLine hooks defined for this Connector using the provided conn/work.
        Parameters:
        oper - Name of the hook to call
        work - This will be the work bean in the hook
        conn - This will be the conn bean in the hook
        Returns:
        True if the hook was executed, false if the hook is not defined or disabled.
        Throws:
        java.lang.Exception - Any exception thrown by the execution of the hook
      • trigger

        public boolean trigger​(java.lang.String oper,
                               Entry work)
                        throws java.lang.Exception
        Calls the hook named oper, declaring work as the corresponding bean. The trigger function calls one of the AssemblyLine hooks defined for this Connector using the provided work.
        Parameters:
        oper - Name of the hook to call
        work - This will be the work bean in the hook
        Returns:
        True if the hook was executed, false if the hook is not defined or disabled.
        Throws:
        java.lang.Exception - Any exception thrown by the execution of the hook
      • trigger

        public boolean trigger​(java.lang.String oper)
                        throws java.lang.Exception
        Calls the hook named oper
        Parameters:
        oper - Name of the hook to call
        Returns:
        True if the hook was executed, false if the hook is not defined or disabled.
        Throws:
        java.lang.Exception - Any exception thrown by the execution of the hook
      • triggerImpl

        protected boolean triggerImpl​(java.lang.String oper,
                                      Entry work,
                                      Entry conn)
                               throws java.lang.Exception
        Calls the hook named oper, declaring work and conn as the corresponding beans. The trigger function calls one of the AssemblyLine hooks defined for this Connector using the provided conn/work.
        Parameters:
        oper - Name of the hook to call
        work - This will be the work bean in the hook. Maybe null.
        conn - This will be the conn bean in the hook. Maybe null.
        Returns:
        True if the hook was executed, false if the hook is not defined or disabled.
        Throws:
        java.lang.Exception - Any exception thrown by the execution of the hook
      • expandParameters

        @Deprecated
        public void expandParameters​(BaseConfiguration cf)
                              throws java.lang.Exception
        Deprecated.
        Does nothing!
        Parameters:
        cf - ignored
        Throws:
        java.lang.Exception - never
      • verifySchema

        @Deprecated
        public void verifySchema​(Entry entry,
                                 boolean input)
                          throws java.lang.Exception
        Deprecated.
        This method does nothing.
        Parameters:
        entry - - ignored
        input - - ignored
        Throws:
        java.lang.Exception - - never
      • getRestartInfoEntry

        @Deprecated
        public Entry getRestartInfoEntry()
                                  throws java.lang.Exception
        Deprecated.
        This method returns null
        Returns:
        null
        Throws:
        java.lang.Exception - - never
      • isCheckpointRestartEnabled

        @Deprecated
        public boolean isCheckpointRestartEnabled()
                                           throws java.lang.Exception
        Deprecated.
        Always returns false
        Returns:
        false
        Throws:
        java.lang.Exception - - never
      • setRestartInfoEntry

        @Deprecated
        public void setRestartInfoEntry​(ALState state,
                                        Entry rsi,
                                        int restartPoint)
                                 throws java.lang.Exception
        Deprecated.
        This method does nothing.
        Parameters:
        state - - ignored
        rsi - - ignored
        restartPoint - - ignored
        Throws:
        java.lang.Exception - - never
      • dumpObjects

        protected void dumpObjects​(Entry conn,
                                   Entry work,
                                   Entry current)
      • reconnect

        public boolean reconnect()
                          throws java.lang.Exception
        Cause the underlying ConnectorInterface to reconnect to it's data source
        Returns:
        true if the reconnect operation completed successfully, false otherwise.
        Throws:
        java.lang.Exception - if an error while reconnecting occurs.
      • mapEntry

        public Entry mapEntry​(Entry work,
                              Entry conn)
                       throws java.lang.Exception
        The method is called to map an entry using the configured input attribute map.
        Parameters:
        work - The work entry
        conn - The conn entry
        Returns:
        The mapped entry
        Throws:
        java.lang.Exception - problem while mapping the entry
      • checkInitialize

        public boolean checkInitialize()
                                throws java.lang.Exception
        Checks whether the connector needs to be (re)initialized or not.
        Returns:
        true if connector was (re)initialized
        Throws:
        java.lang.Exception
      • checkTerminate

        public boolean checkTerminate()
                               throws java.lang.Exception
        Checks whether the connector should be terminated (e.g. init option = always).
        Returns:
        true if connector was terminated
        Throws:
        java.lang.Exception
      • wasConfigurationModified

        public boolean wasConfigurationModified()
        Returns:
        true if the connection configuration has been modified since the last call.
      • executeOperation

        protected java.lang.Object executeOperation​(int operation,
                                                    Entry work,
                                                    Entry conn,
                                                    SearchCriteria search,
                                                    Entry current)
                                             throws java.lang.Exception
        This method is used to take care of dangerous/safe operations when the AL is simulating
        Parameters:
        operation - the operation (the method that is called). Recognizable input are the values putEntry, modEntry, deleteEntry, perform, getNextClient, getNextEntry, findEntry, selectEntries, replyEntry and queryReply
        work - The work entry. If a null is passed the method will get the work entry from its parent (AssemblyLine) and if it still null then a new work entry will be created. If the Proxy simulation state is executed and the passed operation does not expect an entry to be returned then the entry retrieved from the Proxy AL will be merged with the work entry
        conn - For the operations that expect an entry to be returned and we are with Scripted simulation state set then the conn entry modified in the script will be used as the returned entry.
        search - The SearchCriteria object used to locate the entry to be modified/deleted
        current - The old entry found by the search criteria this would be only available for the modEntry operation and only then will be exposed in a script
        Returns:
        Operations that expect an object to be returned are findEntry, getNextEntry, queryReply and perform. In case one of this operations are simulated then either empty Entry is returned or the entry retrieved form the proxy AL or the conn entry modified by executed script
        Throws:
        java.lang.Exception - in case the call to one of the methods fails.
        java.lang.ClassCastException - in case the parent of the AssemblyLineComponent is not an instance of the AssemblyLine class
        Since:
        7.0
      • componentInitialized

        public boolean componentInitialized()
        Returns true if component is initialized
        Returns:
        true if component is initialized
        Since:
        7.0
      • wasSuccessful

        public boolean wasSuccessful()
        Returns true if this component was successfully executed the last time it was called.
        Returns:
        true if this component was successfully executed the last time it was called, false otherwise.
      • setSuccessful

        public void setSuccessful​(boolean b)
        Sets the value that will be returned from wasSuccessful().
        Parameters:
        b - - The new value
      • resetStatus

        public void resetStatus()
        This method resets the Properties of this AssemblyLineComponent. SUCCESSFUL is set to "true", and HOOKS_INVOKED is set to an empty list.
      • size

        public int size()
        Specified by:
        size in interface java.util.Map
      • isEmpty

        public boolean isEmpty()
        Returns false.
        Specified by:
        isEmpty in interface java.util.Map
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Specified by:
        containsKey in interface java.util.Map
      • containsValue

        public boolean containsValue​(java.lang.Object val)
        Returns true if a key maps to this value. Does not consider the statistics values.
        Specified by:
        containsValue in interface java.util.Map
        Parameters:
        val - The value to look for.
      • get

        public java.lang.Object get​(java.lang.Object propName)
        Specified by:
        get in interface java.util.Map
      • put

        public java.lang.Object put​(java.lang.Object propName,
                                    java.lang.Object propValue)
        Specified by:
        put in interface java.util.Map
      • remove

        public java.lang.Object remove​(java.lang.Object propName)
        Specified by:
        remove in interface java.util.Map
      • putAll

        public void putAll​(java.util.Map map)
        Specified by:
        putAll in interface java.util.Map
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map
      • keySet

        public java.util.Set keySet()
        Specified by:
        keySet in interface java.util.Map
      • values

        public java.util.Collection values()
        Returns the values in this Map. Does not include the statistics values.
        Specified by:
        values in interface java.util.Map
      • entrySet

        public java.util.Set<java.util.Map.Entry> entrySet()
        Specified by:
        entrySet in interface java.util.Map
      • isFailOvered

        public boolean isFailOvered()
        Returns true when using the failover connector.
        Returns:
        true if this connector is failovered.
        Since:
        7.1.1
      • useMap

        public void useMap​(java.lang.String attributeMapName)
                    throws java.lang.Exception
        Sets the named Attribute Map to be used for input and output mapping. If the name is null, mapping will use this Connector's map.
        Parameters:
        attributeMapName - Name used to locate the AttributeMap.
        Throws:
        java.lang.Exception
        Since:
        7.1.1
      • useMap

        public void useMap​(java.lang.String attributeMapName,
                           boolean input)
                    throws java.lang.Exception
        Sets the named Attribute Map to be used for input or output mapping. If the name is null, mapping will use this Connector's map.
        Parameters:
        attributeMapName - Name used to locate the AttributeMap.
        input - If true, this is used for input mapping, false means output.
        Throws:
        java.lang.Exception
        Since:
        7.1.1
      • useInputMap

        public void useInputMap​(AttributeMapConfig map)
                         throws java.lang.Exception
        Sets the provided AttributeMapConfig to be used for input mapping.
        Parameters:
        map - If null, this Connector's Input map is used.
        Throws:
        java.lang.Exception
        Since:
        7.1.1
      • useOutputMap

        public void useOutputMap​(AttributeMapConfig map)
                          throws java.lang.Exception
        Sets the provided AttributeMapConfig to be used for output mapping.
        Parameters:
        map - If null, this Connector's Output map is used.
        Throws:
        java.lang.Exception
        Since:
        7.1.1
      • useAttributeMap

        public void useAttributeMap​(java.lang.String fileName)
                             throws java.lang.Exception
        Load an attribute map from a file and use it for the default map. This works like useAttributeMap(fileName, false)
        Parameters:
        fileName - The name of the external file containing the attribute map. If null, the mapping will be reset to this Connector's default map.
        Throws:
        java.lang.Exception - if the file cannot be read
        Since:
        7.1.1
      • useAttributeMap

        public void useAttributeMap​(java.lang.String fileName,
                                    boolean extend)
                             throws java.lang.Exception
        Load an attribute map from a file and use it for the default map. The default map is the output map in AddOnly, Update and Delta mode. For all other modes the input map will be used. If the named file is already being used for this mapping, nothing will be done. The format of the external file is described in FileNamespace.
        Parameters:
        fileName - The name of the external file containing the attribute map. If null, the mapping will be reset to this Connector's default map.
        extend - If true, the new map will extend the existing map. If false, the new map will replace the existing map.
        Throws:
        java.lang.Exception - if the file cannot be read
        Since:
        7.1.1
        See Also:
        FileNamespace
      • useAttributeMap

        public void useAttributeMap​(java.lang.String fileName,
                                    boolean input,
                                    boolean extend)
                             throws java.lang.Exception
        Load an attribute map from a file and use it for the specified map. If the named file is already being used for this mapping, nothing will be done. The format of the external file is described in FileNamespace.
        Parameters:
        fileName - The name of the external file containing the attribute map. If null, the mapping will be reset to the Connector's default map.
        input - If true, change the input map. If false, change the output map.
        extend - If true, the new map will extend the existing map. If false, the new map will replace the existing map.
        Throws:
        java.lang.Exception - if the file cannot be read
        Since:
        7.1.1
        See Also:
        FileNamespace