com.esri.arcgis.geodatabaseextensions
Class ICadastralFabricLocksProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.geodatabaseextensions.ICadastralFabricLocksProxy
All Implemented Interfaces:
ICadastralFabricLocks, Externalizable, Serializable

public class ICadastralFabricLocksProxy
extends com.esri.arcgis.interop.Dispatch
implements ICadastralFabricLocks, Serializable

Provides access to members that assign object locks for a cadastral job.

Remarks

In the enterprise, multi-user geodatabase environment, a specialized implementation for reconciling versions is in place for cadastral fabrics. The implementation uses two distinct parts for handling fabric class attributes on lines and parcels, on the one hand, and for handling coordinates and geometries for fabric classes on the other.

In the first part, the cadastral fabric provides a pessimistic-locking mechanism that prevents conflicts in the edits of parcel attributes, such as distance and bearing values on lines, or the parcel area name value, for example. This avoids the need to do conflict resolution on these attributes when reconciling versions in an enterprise SDE environment.

The second part of this implementation allows coordinates and geometries to be posted without conflicts, in a strategy of last-one-in-wins. This avoids the scenario of reconciling conflicts for vast numbers of points that have been changed in a least squares adjustment in two different versions. Note this does not apply to the attribute values on the lines and parcel fabric classes, these latter being handled under the aforementioned strategy of pessimistic locking.

All Cadastral jobs are defined by a set of Job parcels. Job Parcels can be flagged as Edit Parcels. In order to change the attributes of the line or parcel fabric classes, the associated parcels must be set as Edit parcels, giving them exclusive edits.

Soft locks refers to parcels that can be taken and used as an edit parcel in another job.

Soft locks are:

When using this interface you need to first set the LockingJob property. All other methods rely on this property being set and are applied to the job that is set by this property.

This interface manages the information held in the JobObjects table and in the Jobs table.

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
  ICadastralFabricLocksProxy()
           
  ICadastralFabricLocksProxy(Object obj)
           
protected ICadastralFabricLocksProxy(Object obj, String iid)
           
 
Method Summary
 void acquireLocks(ILongArray pLocks, boolean takeSoftLocks, ILongArray[] ppLocksInConflict, ILongArray[] ppSoftLocksInConflict)
          Acquire locks on the LockingJob.
 void addListener(String iidStr, Object theListener, Object theSource)
           
 boolean lockJob()
          Lock current job.
 void readExternal(ObjectInput in)
           
 void releaseJobLock(boolean forceRelease)
          Release current job's lock.
 void removeListener(String iidStr, Object theListener)
           
 void setLockingJob(String rhs1)
          The name of the Job to apply locks on.
 void undoLastAcquiredLocks()
          Rolls back most recent set of acquired locks, until last edit operation.
 void validateJobLock(boolean[] locked, String[] lockingMachine, int[] lockingPID)
          Correct orphan job locks for current machine, and return current lock information.
 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

ICadastralFabricLocksProxy

public ICadastralFabricLocksProxy()

ICadastralFabricLocksProxy

public ICadastralFabricLocksProxy(Object obj)
                           throws IOException
Throws:
IOException

ICadastralFabricLocksProxy

protected ICadastralFabricLocksProxy(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

setLockingJob

public void setLockingJob(String rhs1)
                   throws IOException,
                          AutomationException
The name of the Job to apply locks on.

Remarks

The Cadastral Job on which all methods will be applied.

When using this interface you need to first set this property, before using any of the other methods.

Product Availability

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

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

acquireLocks

public void acquireLocks(ILongArray pLocks,
                         boolean takeSoftLocks,
                         ILongArray[] ppLocksInConflict,
                         ILongArray[] ppSoftLocksInConflict)
                  throws IOException,
                         AutomationException
Acquire locks on the LockingJob. TakeSoftLocks allows locks to be transferred from other jobs in the same version.

Remarks

Add the given parcel ids as members of the current job.

The array of locks refer to the object ids of parcels in the parcel fabric class.

Soft locks refers to parcels that can be taken and used as an edit parcel in another job.

Soft locks are:

Set the parameter to True if you'd like to automatically get these locks for the current Job.

Product Availability

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

Specified by:
acquireLocks in interface ICadastralFabricLocks
Parameters:
pLocks - A reference to a com.esri.arcgis.system.ILongArray (in)
takeSoftLocks - The takeSoftLocks (in)
ppLocksInConflict - A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
ppSoftLocksInConflict - A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

undoLastAcquiredLocks

public void undoLastAcquiredLocks()
                           throws IOException,
                                  AutomationException
Rolls back most recent set of acquired locks, until last edit operation. Only effective once.

Remarks

Undo the last set of locks acquired. This action is applied up until the last edit operation.

Product Availability

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

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

lockJob

public boolean lockJob()
                throws IOException,
                       AutomationException
Lock current job. An existing lock will cause failure.

Remarks

Enters the MachineName and ProcessID values into the Jobs table.

This method is usually the next call after setting the LockingJob. If the method returns FALSE, then the lock is already held by another machine or process id.

Product Availability

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

Specified by:
lockJob in interface ICadastralFabricLocks
Returns:
The succeed
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

releaseJobLock

public void releaseJobLock(boolean forceRelease)
                    throws IOException,
                           AutomationException
Release current job's lock.

Remarks

Removes the MachineName and ProcessID values out of the Jobs table.

Product Availability

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

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

validateJobLock

public void validateJobLock(boolean[] locked,
                            String[] lockingMachine,
                            int[] lockingPID)
                     throws IOException,
                            AutomationException
Correct orphan job locks for current machine, and return current lock information.

Remarks

Validates the MachineName and ProcessID values in the Jobs table.

Product Availability

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

Specified by:
validateJobLock in interface ICadastralFabricLocks
Parameters:
locked - The locked (out: use single element array)
lockingMachine - The lockingMachine (out: use single element array)
lockingPID - The lockingPID (out: use single element array)
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