com.esri.arcgis.geometry
Class IBufferProgressProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.geometry.IBufferProgressProxy
All Implemented Interfaces:
IBufferProgress, Externalizable, Serializable

public class IBufferProgressProxy
extends com.esri.arcgis.interop.Dispatch
implements IBufferProgress, Serializable

Implemented by clients to receive reports of buffer operation progress.

Remarks

ConstructBuffers , ConstructBuffersByDistances and ConstructBuffersByDistances2 can report progress, if desired, during lengthy operations. You can implement the IBufferProgress interface and specify it as the parameter to the BufferProgress property of a BufferConstruction object. You will then be notified of buffer progress events. You can also cancel a buffer operation in your implementation of the methods on this interface.

Buffer progress is measured in units of “operations”, “stages” and “steps”. An operation is either the action of buffering a group of geometries of the same dimension, or of dissolving together buffers generated from inputs of different dimensions. Each operation has one or more stages. Point buffering always has one stage. Polyline and polygon buffering may have multiple stages. Finally, each stage is divided into steps. There is one step for each buffer that is generated from each individual input.

Here are some examples.
1. Buffer 1000 points, without unioning the buffers. There is one operation, one stage and step progress will be reported for every point.
2. Buffer 1000 points with dissolve. There is 1 operation, 1 stage, and some number of steps, but in this case the steps correspond to progress made through both the buffering and dissolve operations, and thus do not correspond to individual points being buffered.
3. Buffer 500 points and 500 polygons, without dissolve. There are 2 operations. The polygon buffer operation may be subdivided into multiple stages depending on the buffer distance and complexity of the polygons encountered. Multiple stages mean that the buffers are “grown” incrementally. So for example, buffers at a distance of distance/3 are first generated, then those are rebuffered, etc. The number of stages may not be known in advance and could increase during the course of processing. There is one step per generated buffer.
4. 500 points and 500 polygons are buffered with dissolve. There are 3 operations, the final one being the dissolve operation. There may be multiple stages for the polygon buffering operation, depending on the buffer distance and how complicated the polygons are. If so, each stage would report 500 polygon buffering steps.

Product Availability

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

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, E
 
Constructor Summary
  IBufferProgressProxy()
           
  IBufferProgressProxy(Object obj)
           
protected IBufferProgressProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 boolean onOperationBegin(int currentOperation, int numOperations)
          Called at the beginning of each buffer operation.
 boolean onStageBegin(int currentStage, int currentNumStages)
          Called at the beginning of the next buffering stage within an operation.
 boolean onStepCompleted(int stepsCompleted, int numSteps)
          Called periodically to report number of steps completed in current stage.
 void readExternal(ObjectInput in)
           
 void removeListener(String iidStr, Object theListener)
           
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, constructVtblPosTable, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, getVtblPos, hashCode, initDispatch, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, queryInterface, release, setNativeMode, setPropertyByName, toString, vtblInvoke
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IBufferProgressProxy

public IBufferProgressProxy()

IBufferProgressProxy

public IBufferProgressProxy(Object obj)
                     throws IOException
Throws:
IOException

IBufferProgressProxy

protected IBufferProgressProxy(Object obj,
                               String iid)
                        throws IOException
Throws:
IOException
Method Detail

addListener

public void addListener(String iidStr,
                        Object theListener,
                        Object theSource)
                 throws IOException
Overrides:
addListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

removeListener

public void removeListener(String iidStr,
                           Object theListener)
                    throws IOException
Overrides:
removeListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

onOperationBegin

public boolean onOperationBegin(int currentOperation,
                                int numOperations)
                         throws IOException,
                                AutomationException
Called at the beginning of each buffer operation. For example, buffering a set of polygons and polylines, without dissolve, has two operations.

Remarks

This method is called by the BufferConstruction object at the beginning of each buffering operation. Refer to IBufferProgress for an overview of progress reporting and definitions of the terms 'operation', 'stage' and 'step'. You can return true to indicate that buffering should continue or false to terminate the call to ConstructBuffers, ConstructBuffersByDistances, or ConstructBuffersByDistances2.

Product Availability

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

Specified by:
onOperationBegin in interface IBufferProgress
Parameters:
currentOperation - The currentOperation (in)
numOperations - The numOperations (in)
Returns:
The pbContinue
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onStageBegin

public boolean onStageBegin(int currentStage,
                            int currentNumStages)
                     throws IOException,
                            AutomationException
Called at the beginning of the next buffering stage within an operation.

Remarks

This method is called by the BufferConstruction object at the beginning of each buffering stage. Refer to IBufferProgress for an overview of progress reporting and definitions of the terms 'operation', 'stage' and 'step'. You can return true to indicate that buffering should continue or false to terminate the call to ConstructBuffers, ConstructBuffersByDistances, or ConstructBuffersByDistances2.

Product Availability

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

Specified by:
onStageBegin in interface IBufferProgress
Parameters:
currentStage - The currentStage (in)
currentNumStages - The currentNumStages (in)
Returns:
The pbContinue
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onStepCompleted

public boolean onStepCompleted(int stepsCompleted,
                               int numSteps)
                        throws IOException,
                               AutomationException
Called periodically to report number of steps completed in current stage.

Remarks

This method is called by the BufferConstruction object after a buffer has been generated for a geometry. Refer to IBufferProgress for an overview of progress reporting and definitions of the terms 'operation', 'stage' and 'step'. You can return true to indicate that buffering should continue or false to terminate the call to ConstructBuffers, ConstructBuffersByDistances, or ConstructBuffersByDistances2.

Product Availability

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

Specified by:
onStepCompleted in interface IBufferProgress
Parameters:
stepsCompleted - The stepsCompleted (in)
numSteps - The numSteps (in)
Returns:
The pbContinue
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
Overrides:
writeExternal in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Overrides:
readExternal in class com.esri.arcgis.interop.Dispatch
Throws:
IOException
ClassNotFoundException