com.esri.arcgis.geodatabase
Class IVersionEdit4Proxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.geodatabase.IVersionEditProxy
          extended by com.esri.arcgis.geodatabase.IVersionEdit2Proxy
              extended by com.esri.arcgis.geodatabase.IVersionEdit3Proxy
                  extended by com.esri.arcgis.geodatabase.IVersionEdit4Proxy
All Implemented Interfaces:
IVersionEdit, IVersionEdit2, IVersionEdit3, IVersionEdit4, Externalizable, Serializable

public class IVersionEdit4Proxy
extends IVersionEdit3Proxy
implements IVersionEdit4, Serializable

Provides access to members that return information about versions and posting of versions.

Description

The IVersionEdit4 interface is used to reconcile a source version with a target version and optionally not obtain version locks during the process, abort the reconcile process if conflicts are detected, resolve the conflicts in favor of the source version and set the conflict detection granularity to the attribute level as opposed to the row level. Once reconciled, the object provides the ability to work with representations of the version prior to start editing, the pre-reconcile version, the reconcile version, and the common ancestor version for conflict resolution.

Product Availability

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

See Also:
Serialized Form

Field Summary
 boolean noncastable
           
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, objRef
 
Constructor Summary
  IVersionEdit4Proxy()
           
  IVersionEdit4Proxy(Object obj)
           
protected IVersionEdit4Proxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 boolean reconcile4(String versionName, boolean acquireLock, boolean abortIfConflicts, boolean childWins, boolean columnLevel)
          Reconciles the current version with a target version.
 void removeListener(String iidStr, Object theListener)
           
 
Methods inherited from class com.esri.arcgis.geodatabase.IVersionEdit3Proxy
reconcile3
 
Methods inherited from class com.esri.arcgis.geodatabase.IVersionEdit2Proxy
reconcile2
 
Methods inherited from class com.esri.arcgis.geodatabase.IVersionEditProxy
canPost, getCommonAncestorVersion, getConflictClasses, getModifiedClasses, getPreReconcileVersion, getReconcileVersion, getStartEditingVersion, post, reconcile
 
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, optimizedVtblInvoke, queryInterface, readExternal, release, setNativeMode, setPropertyByName, toString, vtblInvoke, writeExternal
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.geodatabase.IVersionEdit3
reconcile3
 
Methods inherited from interface com.esri.arcgis.geodatabase.IVersionEdit2
reconcile2
 
Methods inherited from interface com.esri.arcgis.geodatabase.IVersionEdit
canPost, getCommonAncestorVersion, getConflictClasses, getModifiedClasses, getPreReconcileVersion, getReconcileVersion, getStartEditingVersion, post, reconcile
 

Field Detail

noncastable

public boolean noncastable
Constructor Detail

IVersionEdit4Proxy

public IVersionEdit4Proxy()

IVersionEdit4Proxy

public IVersionEdit4Proxy(Object obj)
                   throws IOException
Throws:
IOException

IVersionEdit4Proxy

protected IVersionEdit4Proxy(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 IVersionEdit3Proxy
Throws:
IOException

removeListener

public void removeListener(String iidStr,
                           Object theListener)
                    throws IOException
Overrides:
removeListener in class IVersionEdit3Proxy
Throws:
IOException

reconcile4

public boolean reconcile4(String versionName,
                          boolean acquireLock,
                          boolean abortIfConflicts,
                          boolean childWins,
                          boolean columnLevel)
                   throws IOException,
                          AutomationException
Reconciles the current version with a target version.

Remarks

The Reconcile4 function reconciles the current source version with the specified target version. The target version must be an ancestor of the current version or an error will be returned. The target version name passed in is case-sensitive and should take the form {owner}.{version_name} for example, SDE.DEFAULT. The first Boolean argument acquireLock specifies if locks should be obtained or not - true acquires the lock, false does not acquire the locks. The second Boolean argument abortIfConflicts specifies if the reconcile process should abort the reconcile if conflicts are detected for any class. Ideally, the second Boolean is only set to true when performing a reconcile in an automated batch type environment where a user does not have the ability to interactively resolve conflicts. By default all conflicts are resolved in favor of the target version, but setting the third Boolean argument childWins to true all conflicts detected would be resolved in favor of the source version. By setting the Boolean argument columnLevel to true, conflicts are detected only when the same attribute is updated in the source and target versions. For example, if the source version has modified the parcel's owner attribute and the target version has modified the parcel's street address attribute the feature will not be in conflict. It is only when each version modifies the same attribute that the object will be in conflict.

If the returned Boolean value from Reconcile4 is true, then conflicts were detected. Otherwise no conflicts were detected.

A reconcile can only be performed if no other users are currently editing the version. As well, the target version cannot concurrently be reconciling by a second application. See IVersion::IVersionLocks for additional information on detecting version locks.

The Reconcile4 method provides the ability to either acquire or not acquire the version locks during the reconcile process. If the locks are not acquired the version is able to be reconciled in parallel when other versions are currently being reconciled. One may desire this functionality when there is no intention of posting the version after the reconcile process. If the intention is to "post" the version after performing the reconcile, it is strongly recommended that the locks are acquired.

If one does attempt to post after performing the reconcile, there is a chance that the target version might have been modified since the reconcile. In this case, an FDO_E_VERSION_REDEFINED error will be raised informing you that the version has been redefined. The version will have to be re-reconciled. Therefore, the first reconcile is a waste of server and client system resources.

Calling IVersionEdit4::Reconcile4 will abort the current edit operation therefore any edits made within an open edit operation when reconcile is called will be lost. If there is an open edit operation it is good practice to call StopEditOperation prior to calling Reconcile

Product Availability

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

Specified by:
reconcile4 in interface IVersionEdit4
Parameters:
versionName - The versionName (in)
acquireLock - The acquireLock (in)
abortIfConflicts - The abortIfConflicts (in)
childWins - The childWins (in)
columnLevel - The columnLevel (in)
Returns:
The foundConflicts
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.