com.esri.arcgis.geodatabase
Class RangeDomain

java.lang.Object
  extended by com.esri.arcgis.geodatabase.RangeDomain
All Implemented Interfaces:
IDomain, IRangeDomain, ISchemaLock, com.esri.arcgis.interop.RemoteObjRef, IClone, IPersist, IPersistStream, IXMLSerialize, Externalizable, Serializable

public class RangeDomain
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IDomain, IRangeDomain, IPersist, IPersistStream, IClone, ISchemaLock, IXMLSerialize, Externalizable

ESRI Range Domain object.

Description

RangeDomain coclass maintains information regarding this range domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
RangeDomain()
          Constructs a RangeDomain using ArcGIS Engine.
RangeDomain(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
RangeDomain theRangeDomain = (RangeDomain) obj;
 
Method Summary
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 void changeSchemaLock(int schemaLock)
          Changes a schema lock.
 void deserialize(IXMLSerializeData data)
          Deserializes an object from XML.
 boolean equals(Object o)
          Compare this object with another
 IClone esri_clone()
          Clones the receiver and assigns the result to *clone.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 void getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
          The list of current locks.
 String getDescription()
          The description of the domain.
 int getDomainID()
          The ID of the domain.
 int getFieldType()
          The field type of the field.
 Object getMaxValue()
          The maximum value for the associated attribute.
 int getMergePolicy()
          The merge policy.
 Object getMinValue()
          The minimum value for the associated attribute.
 String getName()
          The name of the domain.
 String getOwner()
          The owner of the domain.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 int getSplitPolicy()
          The split policy.
 int getType()
          The domain type.
 int hashCode()
          the hashcode for this object
 void isDirty()
          isDirty
 boolean isEqual(IClone other)
          Returns TRUE when the receiver and other have the same properties.
 boolean isIdentical(IClone other)
          Returns TRUE when the receiver and other are the same object.
 void load(IStream pstm)
          load
 boolean memberOf(Object value)
          Indicates whether the value is a valid member of the domain.
 void readExternal(ObjectInput in)
           
 void save(IStream pstm, int fClearDirty)
          save
 void serialize(IXMLSerializeData data)
          Serializes an object to XML.
 void setDescription(String description)
          The description of the domain.
 void setDomainID(int iD)
          The ID of the domain.
 void setFieldType(int fieldType)
          The field type of the field.
 void setMaxValue(Object value)
          The maximum value for the associated attribute.
 void setMergePolicy(int policy)
          The merge policy.
 void setMinValue(Object value)
          The minimum value for the associated attribute.
 void setName(String name)
          The name of the domain.
 void setOwner(String owner)
          The owner of the domain.
 void setSplitPolicy(int policy)
          The split policy.
 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

RangeDomain

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

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

RangeDomain

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

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

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

getDomainID

public int getDomainID()
                throws IOException,
                       AutomationException
The ID of the domain.

Description

DomainID property returns the ID for the specified domain.

Remarks

This property returns the internal ID of the domain as a Long .

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDomainID in interface IDomain
Returns:
The iD
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDomainID

public void setDomainID(int iD)
                 throws IOException,
                        AutomationException
The ID of the domain.

Description

DomainID property sets the ID for the current domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getDescription

public String getDescription()
                      throws IOException,
                             AutomationException
The description of the domain.

Description

Description property returns the description for the specified domain.

Remarks

This property returns the description for the domain object. Descriptions are strings that can be up to 32 characters long.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDescription in interface IDomain
Returns:
The description
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDescription

public void setDescription(String description)
                    throws IOException,
                           AutomationException
The description of the domain.

Description

Description property sets the description for the specified domain.

Remarks

This property sets the description for the domain object. The description is a string that can be up to 32 characters long.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFieldType

public int getFieldType()
                 throws IOException,
                        AutomationException
The field type of the field.

Description

FieldType returns the esriFieldType that the specified domain applies to.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFieldType in interface IDomain
Returns:
A com.esri.arcgis.geodatabase.esriFieldType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFieldType

public void setFieldType(int fieldType)
                  throws IOException,
                         AutomationException
The field type of the field.

Description

FieldType sets the esriFieldType that the specified domain applies to.

Remarks

This property sets the type of field that the domain applies to, and therefore what fields for a subtype that you can associate the domain to. The field type is an esriFieldType enumeration.



Example:

//Create a new range domain

IRangeDomain pCode = new RangeDomain();

pCode.setMinValue ( "9#");

pCode.setMaxValue ("600000#");

IDomain pDomain = pCode;

pDomain.setName("Area constraint");

pDomain.setFieldType(esriFieldType.esriFieldTypeDouble);

pDomain.setDescription ( "Constrains the area of buildings");

pDomain.setMergePolicy (esriMergePolicyType.esriMPTAreaWeighted);

pDomain.setSplitPolicy (esriSplitPolicyType.esriSPTGeometryRatio);

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setFieldType in interface IDomain
Parameters:
fieldType - A com.esri.arcgis.geodatabase.esriFieldType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMergePolicy

public int getMergePolicy()
                   throws IOException,
                          AutomationException
The merge policy.

Description

MergePolicy returns the merge policy for the specified domain.

Remarks

This property sets or returns the merge policy for the domain object. The merge policy describes what happens to the values of the field that the domain is applied to when two objects are merged into a single object. The merge policy is an esriMergePolicyType enumeration.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getMergePolicy in interface IDomain
Returns:
A com.esri.arcgis.geodatabase.esriMergePolicyType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMergePolicy

public void setMergePolicy(int policy)
                    throws IOException,
                           AutomationException
The merge policy.

Description

MergePolicy sets the merge policy for the specified domain.

Remarks

This property sets the merge policy for the domain object. The merge policy describes what happens to the values of the field that the domain is applied to when two objects are merged into a single object.





Example:

//Create a new range domain
IRangeDomain pCode = new RangeDomain();
pCode.setMinValue ( "9#");
pCode.setMaxValue ("600000#");

IDomain pDomain = pCode;
pDomain.setName("Area constraint");
pDomain.setFieldType(esriFieldType.esriFieldTypeDouble);
pDomain.setDescription ( "Constrains the area of buildings");
pDomain.setMergePolicy (esriMergePolicyType.esriMPTAreaWeighted);
pDomain.setSplitPolicy (esriSplitPolicyType.esriSPTGeometryRatio);

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setMergePolicy in interface IDomain
Parameters:
policy - A com.esri.arcgis.geodatabase.esriMergePolicyType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSplitPolicy

public int getSplitPolicy()
                   throws IOException,
                          AutomationException
The split policy.

Description

SplitPolicy returns the split policy set for the specified domain.

Remarks

This property returns the split policy for the domain object. The split policy describes what happens to the values of the field that the domain is applied to when an object is split into two objects. The split policy is an esriSplitPolicyType enumeration.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSplitPolicy in interface IDomain
Returns:
A com.esri.arcgis.geodatabase.esriSplitPolicyType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSplitPolicy

public void setSplitPolicy(int policy)
                    throws IOException,
                           AutomationException
The split policy.

Description

SplitPolicy sets the split policy set for the specified domain.

Remarks

This property sets the split policy for the domain object. The split policy describes what happens to the values of the field that the domain is applied to when an object is split into two objects. The split policy is an esriSplitPolicyType enumeration.



Example:

//Create a new range domain
IRangeDomain pCode = new RangeDomain();
pCode.setMinValue ( "9#");
pCode.setMaxValue ("600000#");

IDomain pDomain = pCode;
pDomain.setName("Area constraint");
pDomain.setFieldType(esriFieldType.esriFieldTypeDouble);
pDomain.setDescription ( "Constrains the area of buildings");
pDomain.setMergePolicy (esriMergePolicyType.esriMPTAreaWeighted);
pDomain.setSplitPolicy (esriSplitPolicyType.esriSPTGeometryRatio);

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setSplitPolicy in interface IDomain
Parameters:
policy - A com.esri.arcgis.geodatabase.esriSplitPolicyType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getName

public String getName()
               throws IOException,
                      AutomationException
The name of the domain.

Description

Name property returns the name of the specified domain.

Remarks

This property returns the name of the domain object. The domain name is a String the length of which is dependent on the underlying DBMS.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getName in interface IDomain
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setName

public void setName(String name)
             throws IOException,
                    AutomationException
The name of the domain.

Description

Name property sets the name of the specified domain.

Remarks

This property sets the name of the domain object. The domain name is a String the length of which is dependent on the underlying DBMS.



Example:

//Create a new range domain
IRangeDomain pCode = new RangeDomain();
pCode.setMinValue ( "9#");
pCode.setMaxValue ("600000#");

IDomain pDomain = pCode;
pDomain.setName("Area constraint");
pDomain.setFieldType(esriFieldType.esriFieldTypeDouble);
pDomain.setDescription ( "Constrains the area of buildings");
pDomain.setMergePolicy (esriMergePolicyType.esriMPTAreaWeighted);
pDomain.setSplitPolicy (esriSplitPolicyType.esriSPTGeometryRatio);

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getOwner

public String getOwner()
                throws IOException,
                       AutomationException
The owner of the domain.

Description

Owner returns the owner of the specified domain.

Remarks

This property returns the owner of the domain as a String . The owner is the DBMS user who created the domain. The domain owner is the only user who can succesfully delete a domain from the database.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getOwner in interface IDomain
Returns:
The owner
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setOwner

public void setOwner(String owner)
              throws IOException,
                     AutomationException
The owner of the domain.

Description

Owner property sets the owner for the specified domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getType

public int getType()
            throws IOException,
                   AutomationException
The domain type.

Description

Type property returns the esriDomainType of the specified domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getType in interface IDomain
Returns:
A com.esri.arcgis.geodatabase.esriDomainType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

memberOf

public boolean memberOf(Object value)
                 throws IOException,
                        AutomationException
Indicates whether the value is a valid member of the domain.

Description

MemberOf function returns a boolean TRUE if the specified value is a member of this domain or FALSE if it is not.

Remarks

The MemberOf method will tell you if some value is a valid member of an attribute domain. Use this function to determine if some value is valid based on a domain. MemberOf returns a Boolean . If the value is not in the domain, it returns False . If the value is in the domain, it returns True .


Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
memberOf in interface IDomain
Parameters:
value - A Variant (in)
Returns:
The isMember
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMinValue

public Object getMinValue()
                   throws IOException,
                          AutomationException
The minimum value for the associated attribute.

Description

MinValue property returns the min value set for this range domain.

Remarks

This property returns the minimum valid value associated with the range domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getMinValue in interface IRangeDomain
Returns:
A Variant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMinValue

public void setMinValue(Object value)
                 throws IOException,
                        AutomationException
The minimum value for the associated attribute.

Description

MinValue property sets the minimum value for this range domain.

Remarks

This property sets the minimum valid value associated with the range domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setMinValue in interface IRangeDomain
Parameters:
value - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMaxValue

public Object getMaxValue()
                   throws IOException,
                          AutomationException
The maximum value for the associated attribute.

Description

The MaxValue property returns or sets the maximum value set for this range domain.

Remarks

This property returns the maximum valid value associated with the range domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getMaxValue in interface IRangeDomain
Returns:
A Variant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMaxValue

public void setMaxValue(Object value)
                 throws IOException,
                        AutomationException
The maximum value for the associated attribute.

Description

MaxValue property sets the max value allowable for this domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setMaxValue in interface IRangeDomain
Parameters:
value - A Variant (in)
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.

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.

esri_clone

public IClone esri_clone()
                  throws IOException,
                         AutomationException
Clones the receiver and assigns the result to *clone.

Product Availability

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

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

assign

public void assign(IClone src)
            throws IOException,
                   AutomationException
Assigns the properties of src to the receiver.

Description

Use Assign method to assign the properties of source object to receiver object. Both objects need to have the same CLSIDs. Both source and receiver objects need to be instantiated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isEqual

public boolean isEqual(IClone other)
                throws IOException,
                       AutomationException
Returns TRUE when the receiver and other have the same properties.

Description

IsEqual returns True if the receiver and the source have the same properties. Note, this does not imply that the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isEqual in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The equal
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isIdentical

public boolean isIdentical(IClone other)
                    throws IOException,
                           AutomationException
Returns TRUE when the receiver and other are the same object.

Description

IsIdentical returns true if the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isIdentical in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The identical
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

changeSchemaLock

public void changeSchemaLock(int schemaLock)
                      throws IOException,
                             AutomationException
Changes a schema lock.

Remarks

There are two kinds of schema locks: shared and exclusive. Shared schema locks are applied automatically by the geodatabase when accessing a dataset and are removed when all references to the dataset are removed. For this reason, it's not necessary to explicitly apply or remove shared schema locks. There is no limit to the number of shared schema locks a dataset or object can have at any given time.
In contrast to shared schema locks, exclusive schema locks are controlled by the developer or ArcGIS application, such as ArcMap or ArcCatalog. An exclusive lock is used to lock a geodatabase dataset or object from use by others to make the necessary changes to it. An exclusive lock is promoted from a shared lock and demoted back to a shared lock when no longer needed. The presence of additional shared schema locks on a dataset or object prevents an exclusive schema lock from being applied and precludes the ability to make changes to the underlying dataset and its schema while it is in use. Only one exclusive schema lock is allowed per dataset. As opposed to shared schema locks, exclusive schema locks are not applied or removed automatically; it is the responsibility of the developer to apply or remove exclusive schema locks.
Limit the scope of exclusive schema locks to the operation that requires the lock. Gather the necessary information to perform the action, obtain the exclusive lock, make the change, and release the lock. Some examples of operations for which an exclusive schema lock should be obtained include:
  • Modifications to attribute domains, such as adding or removing values from a coded value domain or changing the range for range domains
  • Adding or deleting a field from a feature class or object class
  • Associating a class extension with a feature class
  • Creating a topology, geometric network, network dataset, terrain, schematic dataset, representation, or cadastral fabric on a set of feature classes
  • Any use of the IClassSchemaEdit interface
  • Putting a feature class into and taking it out of load-only mode with the IFeatureClassLoad.LoadOnlyMode method
  • Managing (creating, deleting, or modifying) spatial and attribute indexes
Once the action requiring an exclusive schema lock is complete, the exclusive schema lock must be demoted to a shared lock. This includes when errors are raised during the schema modification, for example, consider the case where a field is being deleted from a feature class. To delete the field, an exclusive schema lock is obtained. However, on the call to DeleteField, an error is thrown; that is, the field being deleted is a required field, such as the ObjectID field. In the handling of the error, the exclusive schema lock must be demoted to a shared lock before proceeding.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
changeSchemaLock in interface ISchemaLock
Parameters:
schemaLock - A com.esri.arcgis.geodatabase.esriSchemaLock constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCurrentSchemaLocks

public void getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
                           throws IOException,
                                  AutomationException
The list of current locks.

Remarks

The ISchemaLockInfo interface is used in concert with ISchemaLock to provide information about a schema lock, for example, whether it is shared or exclusive and for ArcSDE geodatabases, the name of the user who has the lock. Note that there will always be at least one schema lock on the dataset. Also note that by checking the schema locks on a dataset a shared schema lock is applied to the data.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCurrentSchemaLocks in interface ISchemaLock
Parameters:
schemaLockInfo - A reference to a com.esri.arcgis.geodatabase.IEnumSchemaLockInfo (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

serialize

public void serialize(IXMLSerializeData data)
               throws IOException,
                      AutomationException
Serializes an object to XML.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

deserialize

public void deserialize(IXMLSerializeData data)
                 throws IOException,
                        AutomationException
Deserializes an object from XML.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deserialize in interface IXMLSerialize
Parameters:
data - A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
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