com.esri.arcgis.trackinganalyst
Class ActionProcessor

java.lang.Object
  extended by com.esri.arcgis.trackinganalyst.ActionProcessor
All Implemented Interfaces:
com.esri.arcgis.interop.RemoteObjRef, IDocumentVersionSupportGEN, IPersist, IPersistStream, ISupportErrorInfo, IActionProcessor, IActionState, IActionUpdate, Externalizable, Serializable

public class ActionProcessor
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IActionProcessor, IPersistStream, IActionUpdate, IActionState, ISupportErrorInfo, IDocumentVersionSupportGEN, Externalizable

The Action Processor object processes all actions in the main actioncollection and children.

Description

The Action processor object is the main controller for processing action collections. An Action is an object that performs analysis or processes data as it comes into one of the folowing tracking analyst systems:

Currently Tracking Analyst supports the following types of actions:

Name Description
TagAction This action runs in the TrackingServer system and places a Tagged value in the DataMessage Tag property when its condition is satisfied.
FilterAction This action runs in all three systems and filters the DataMessage or Feature from further processing.
HighlightSuppressionAction This action only runs within the TrackingAnalyst Layer system and provides highlighting or suppression of features as they are displayed or rendered within the Map display.
VisualBasicAction This action only runs within the Tracking Analyst Server connection and executes Visual basic code when the condition of the action is satisfied.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

See Also:
Serialized Form

Constructor Summary
ActionProcessor()
          Constructs a ActionProcessor using ArcGIS Engine.
ActionProcessor(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
ActionProcessor theActionProcessor = (ActionProcessor) obj;
 
Method Summary
 void checkLayers()
          Checks for deleted Layers and disables affected actions.
 void clearQueue()
          Purges the processing queue and terminates the processing of queued messages.
 Object convertToSupportedObject(int docVersion)
          Convert the object to another object that is supported.
 boolean equals(Object o)
          Compare this object with another
 IActionCollection getActions()
          Allows access to the action processor's action collection.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 int getProcessorWaitTimeOut()
          Provides a configurable timeout for waiting to be able to process data objects, defaulted to 5 seconds.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 int hashCode()
          the hashcode for this object
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 void isDirty()
          isDirty
 boolean isExcludeRealtimeActions()
          Indicates if real-time actions are excluded from appearing on the interface.
 boolean isSupportedAtVersion(int docVersion)
          Is this object valid at the given document version.
 boolean isSuspended()
          Indicates whether the action processor will process any new data objects or any queued data objects.
 void load(IStream pstm)
          load
 void processData(Object piObject, boolean bQueueProcessing, Object pvarReturnedObjects)
          Takes an object as a parameter and runs it through an action list.
 void readExternal(ObjectInput in)
           
 void resetToDefaultState()
          Reset the State information to default.
 void save(IStream pstm, int fClearDirty)
          save
 void setActionsByRef(IActionCollection piActions)
          Allows access to the action processor's action collection.
 void setExcludeRealtimeActions(boolean pbvarExclude)
          Indicates if real-time actions are excluded from appearing on the interface.
 void setProcessorWaitTimeOut(int plProcessorWaitTimeOut)
          Provides a configurable timeout for waiting to be able to process data objects, defaulted to 5 seconds.
 void setSuspended(boolean pbvarSuspended)
          Indicates whether the action processor will process any new data objects or any queued data objects.
 void update()
          Notify a tracking action that lookup table values have changed.
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

ActionProcessor

public ActionProcessor()
                throws IOException,
                       UnknownHostException
Constructs a ActionProcessor using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

ActionProcessor

public ActionProcessor(Object obj)
                throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
ActionProcessor theActionProcessor = (ActionProcessor) obj;

Construct a ActionProcessor using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to ActionProcessor.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

processData

public void processData(Object piObject,
                        boolean bQueueProcessing,
                        Object pvarReturnedObjects)
                 throws IOException,
                        AutomationException
Takes an object as a parameter and runs it through an action list.

Description

The ProcessData method takes an object as a parameter and runs it through an action list. The object can be queued if desired and an internal thread will run the object through the action list when able.

When this method is called without requesting that the object is to be queued, the third parameter will contain the potentially modified copy of the object or modified object. One special case for this returned object is when the action list contains a filter action. In this case, if the object is filtered out then the return is NULL.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
processData in interface IActionProcessor
Parameters:
piObject - A reference to another Object (IUnknown) (in)
bQueueProcessing - The bQueueProcessing (in)
pvarReturnedObjects - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

clearQueue

public void clearQueue()
                throws IOException,
                       AutomationException
Purges the processing queue and terminates the processing of queued messages.

Description

This method purges the processing queue thus terminating the processing of queued messages.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
clearQueue in interface IActionProcessor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isSuspended

public boolean isSuspended()
                    throws IOException,
                           AutomationException
Indicates whether the action processor will process any new data objects or any queued data objects.

Description

The suspended property controls whether the action processor will process any new data objects or any queued data objects. New data objects do not queue up when the processor is suspended rather they just fall through the processor unprocessed.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
isSuspended in interface IActionProcessor
Returns:
The pbvarSuspended
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSuspended

public void setSuspended(boolean pbvarSuspended)
                  throws IOException,
                         AutomationException
Indicates whether the action processor will process any new data objects or any queued data objects.

Description

The suspended property controls whether the action processor will process any new data objects or any queued data objects. New data objects do not queue up when the processor is suspended rather they just fall through the processor un processed.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
setSuspended in interface IActionProcessor
Parameters:
pbvarSuspended - The pbvarSuspended (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getActions

public IActionCollection getActions()
                             throws IOException,
                                    AutomationException
Allows access to the action processor's action collection.

Description

This property allows access to the Action Processor's Action Collection. The action collection contains all actions that the processor is processing.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
getActions in interface IActionProcessor
Returns:
A reference to a com.esri.arcgis.trackinganalyst.IActionCollection
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setActionsByRef

public void setActionsByRef(IActionCollection piActions)
                     throws IOException,
                            AutomationException
Allows access to the action processor's action collection.

Description

This property allows access to the Action Processors Action Collection. The action collection contains all actions that the processor is processing. The developer is responsible for ensuring that the action collection is not changed while another thread is processing a data object.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
setActionsByRef in interface IActionProcessor
Parameters:
piActions - A reference to a com.esri.arcgis.trackinganalyst.IActionCollection (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getProcessorWaitTimeOut

public int getProcessorWaitTimeOut()
                            throws IOException,
                                   AutomationException
Provides a configurable timeout for waiting to be able to process data objects, defaulted to 5 seconds.

Description

This property provides a configurable timeout for waiting to be able to process data objects. The default value for this setting is 5 seconds.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
getProcessorWaitTimeOut in interface IActionProcessor
Returns:
The plProcessorWaitTimeOut
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setProcessorWaitTimeOut

public void setProcessorWaitTimeOut(int plProcessorWaitTimeOut)
                             throws IOException,
                                    AutomationException
Provides a configurable timeout for waiting to be able to process data objects, defaulted to 5 seconds.

Description

This property provides a configurable timeout for waiting to be able to process data objects. The default value for this setting is 5 seconds.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
setProcessorWaitTimeOut in interface IActionProcessor
Parameters:
plProcessorWaitTimeOut - The plProcessorWaitTimeOut (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isExcludeRealtimeActions

public boolean isExcludeRealtimeActions()
                                 throws IOException,
                                        AutomationException
Indicates if real-time actions are excluded from appearing on the interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
isExcludeRealtimeActions in interface IActionProcessor
Returns:
The pbvarExclude
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setExcludeRealtimeActions

public void setExcludeRealtimeActions(boolean pbvarExclude)
                               throws IOException,
                                      AutomationException
Indicates if real-time actions are excluded from appearing on the interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
setExcludeRealtimeActions in interface IActionProcessor
Parameters:
pbvarExclude - The pbvarExclude (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

checkLayers

public void checkLayers()
                 throws IOException,
                        AutomationException
Checks for deleted Layers and disables affected actions.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
checkLayers in interface IActionProcessor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public void isDirty()
             throws IOException,
                    AutomationException
isDirty

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
isDirty in interface IPersistStream
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

load

public void load(IStream pstm)
          throws IOException,
                 AutomationException
load

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
load in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

save

public void save(IStream pstm,
                 int fClearDirty)
          throws IOException,
                 AutomationException
save

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
save in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
fClearDirty - The fClearDirty (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSizeMax

public void getSizeMax(_ULARGE_INTEGER[] pcbSize)
                throws IOException,
                       AutomationException
getSizeMax

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSizeMax in interface IPersistStream
Parameters:
pcbSize - A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClassID

public void getClassID(GUID[] pClassID)
                throws IOException,
                       AutomationException
getClassID

Description

IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getClassID in interface IPersist
Parameters:
pClassID - A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

update

public void update()
            throws IOException,
                   AutomationException
Notify a tracking action that lookup table values have changed.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
update in interface IActionUpdate
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

resetToDefaultState

public void resetToDefaultState()
                         throws IOException,
                                AutomationException
Reset the State information to default.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Tracking Analyst Extension.

Specified by:
resetToDefaultState in interface IActionState
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interfaceSupportsErrorInfo

public void interfaceSupportsErrorInfo(GUID riid)
                                throws IOException,
                                       AutomationException
interfaceSupportsErrorInfo

Description

Indicates whether the interface supports IErrorInfo.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
interfaceSupportsErrorInfo in interface ISupportErrorInfo
Parameters:
riid - A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isSupportedAtVersion

public boolean isSupportedAtVersion(int docVersion)
                             throws IOException,
                                    AutomationException
Is this object valid at the given document version.

Remarks

Use IsSupportedAtVersion to identify if a particular object should be saved to the ObjectStream. This result is based on the esriArcGISVersion enumeration. In some instances, if the object is not supported at a particular ArcGIS version, the object may support conversion to another similar object; use IDocumentVersionSupportGEN::ConvertToSupportedObject to accomplish this.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
isSupportedAtVersion in interface IDocumentVersionSupportGEN
Parameters:
docVersion - A com.esri.arcgis.system.esriArcGISVersion constant (in)
Returns:
The supported
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

convertToSupportedObject

public Object convertToSupportedObject(int docVersion)
                                throws IOException,
                                       AutomationException
Convert the object to another object that is supported.

Remarks

This method should be used when IDocumentVersionSupportGEN::IsSupportedAtVersion returns FALSE. Calling ConvertToSupportedObject will return an IUnknown pointer to a relevant object supported at the particular ArcGIS version. Not all objects will return a supported object; in these cases a null pointer will be returned.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
convertToSupportedObject in interface IDocumentVersionSupportGEN
Parameters:
docVersion - A com.esri.arcgis.system.esriArcGISVersion constant (in)
Returns:
A Variant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException