|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ICadastralFabricLocks
Provides access to members that assign object locks for a cadastral job.
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.
Method Summary | |
---|---|
void |
acquireLocks(ILongArray pLocks,
boolean takeSoftLocks,
ILongArray[] ppLocksInConflict,
ILongArray[] ppSoftLocksInConflict)
Acquire locks on the LockingJob. |
boolean |
lockJob()
Lock current job. |
void |
releaseJobLock(boolean forceRelease)
Release current job's lock. |
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. |
Method Detail |
---|
void setLockingJob(String rhs1) throws IOException, AutomationException
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.
rhs1
- The rhs1 (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void acquireLocks(ILongArray pLocks, boolean takeSoftLocks, ILongArray[] ppLocksInConflict, ILongArray[] ppSoftLocksInConflict) throws IOException, AutomationException
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.
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 (in/out: use single element array)ppSoftLocksInConflict
- A reference to a com.esri.arcgis.system.ILongArray (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void undoLastAcquiredLocks() throws IOException, AutomationException
Undo the last set of locks acquired. This action is applied up until the last edit operation.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean lockJob() throws IOException, AutomationException
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.
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void releaseJobLock(boolean forceRelease) throws IOException, AutomationException
Removes the MachineName and ProcessID values out of the Jobs table.
forceRelease
- The forceRelease (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void validateJobLock(boolean[] locked, String[] lockingMachine, int[] lockingPID) throws IOException, AutomationException
Validates the MachineName and ProcessID values in the Jobs table.
locked
- The locked (in/out: use single element array)lockingMachine
- The lockingMachine (in/out: use single element array)lockingPID
- The lockingPID (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |