com.esri.arcgis.geodatabase
Class CodedValueDomain

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

public class CodedValueDomain
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IDomain, ICodedValueDomain, ICodedValueDomain2, IClone, IPersist, IPersistStream, ISchemaLock, IXMLSerialize, Externalizable

Esri Attribute set constraint object.

Description

CodedValueDomain maintains information about the coded values belonging to this coded value domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
CodedValueDomain()
          Constructs a CodedValueDomain using ArcGIS Engine.
CodedValueDomain(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
CodedValueDomain theCodedValueDomain = (CodedValueDomain) obj;
 
Method Summary
 void addCode(Object value, String name)
          Adds a (value, name) code.
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 void changeSchemaLock(int schemaLock)
          Changes a schema lock.
 void deleteCode(Object value)
          Deletes a code with the specified value.
 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.
 int getCodeCount()
          The number of codes for the associated attribute.
 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.
 int getMergePolicy()
          The merge policy.
 String getName()
          The name of the domain.
 String getName(int index)
          The code name for the specified code index.
 String getOwner()
          The owner of the domain.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 int getSplitPolicy()
          The split policy.
 int getType()
          The domain type.
 Object getValue(int index)
          The value for the specified code index.
 int hashCode()
          the hashcode for this object
 void isDirty()
          isDirty
 boolean isEqual(IClone other)
          Indicates if the receiver and other have the same properties.
 boolean isIdentical(IClone other)
          Indicates if 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 setMergePolicy(int policy)
          The merge policy.
 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 sortByName(boolean descending)
          Sort the codes in the coded value domain by name.
 void sortByValue(boolean descending)
          Sort the codes in the coded value domain by value.
 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

CodedValueDomain

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

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

CodedValueDomain

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

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Remarks

This property only applies to domains in ArcSDE geodatabases.

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.

Remarks

This property only applies to domains in ArcSDE geodatabases.

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.

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

The MemberOf method returns true if the specified value is a member of the domain and false otherwise.

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.

getCodeCount

public int getCodeCount()
                 throws IOException,
                        AutomationException
The number of codes for the associated attribute.

Description

The CodeCount property returns the number of codes in this coded value domain.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCodeCount in interface ICodedValueDomain
Returns:
The values
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getName

public String getName(int index)
               throws IOException,
                      AutomationException
The code name for the specified code index.

Product Availability

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

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

getValue

public Object getValue(int index)
                throws IOException,
                       AutomationException
The value for the specified code index.

Product Availability

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

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

addCode

public void addCode(Object value,
                    String name)
             throws IOException,
                    AutomationException
Adds a (value, name) code.

Description

The AddCode method adds a code to the domain.

Remarks

The AddCode method adds a new coded value to the coded value domain. AddCode requires a value for the coded value as a Variant, and the name of the coded value, which is a user friendly description for that coded value, as a String. The value supplied for the variant parameter must be of the correct type for the domain (e.g., Numeric values for a numeric domain, string values for a string domain).
If AddCode is called on a domain that is already created, the IWorkspaceDomains2::AlterDomain method must be called to persist the change.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

deleteCode

public void deleteCode(Object value)
                throws IOException,
                       AutomationException
Deletes a code with the specified value.

Description

DeleteCode function removes the coded value from this domain. The parameter represents the value of the coded value to be removed, not the description.

Remarks

If DeleteCode is called on a domain that is already created, the IWorkspaceDomains2::AlterDomain method must be called to persist the change.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

sortByName

public void sortByName(boolean descending)
                throws IOException,
                       AutomationException
Sort the codes in the coded value domain by name.

Product Availability

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

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

sortByValue

public void sortByValue(boolean descending)
                 throws IOException,
                        AutomationException
Sort the codes in the coded value domain by value.

Product Availability

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

Specified by:
sortByValue in interface ICodedValueDomain2
Parameters:
descending - The descending (in)
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
Indicates if 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
Indicates if 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.

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.

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