com.esri.arcgis.geodatabase
Class Index

java.lang.Object
  extended by com.esri.arcgis.geodatabase.Index
All Implemented Interfaces:
IGPDescribe, IGPValue, IIndex, IIndexEdit, com.esri.arcgis.interop.RemoteObjRef, IClone, IPersist, IPersistStream, IXMLSerialize, Externalizable, Serializable

public class Index
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IIndex, IIndexEdit, IClone, IGPValue, IXMLSerialize, IPersist, IPersistStream, IGPDescribe, Externalizable

ESRI Index object.

Description

The Index object represents an index on a table. There are two types of indexes: spatial and attribute.

Spatial indexes exist on the shape field of a feature class. Some of the spatial index parameters, for example the grid size, are only accessible through the GeometryDef object available from the shape field. The spatial index is created automatically when a geodatabase feature class is created, so you do not have to create the spatial index with ArcObjects. However it is possible to delete and recreate the spatial index.

Attribute indexes are based on an ordered list of one or more fields in a table. The order of the list determines which field is used first when resolving data queries. There is a limit of ten fields in a geodatabase attribute index.

For geodatabases, there is one attribute index that is automatically created. This is the index on the Object ID. Another point to note is that you can access indexes created in the native environment of the DBMS.

For shapefiles, both spatial and attribute indexes can be manipulated, though note the usual limit of one field in an attribute index.

Index objects are not appropriate for use with INFO based data such as coverages. The equivalent functionality is available from the IArcInfoTable interface. See the section on coverage specific interfaces for more details.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
Index()
          Constructs a Index using ArcGIS Engine.
Index(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
Index theIndex = (Index) obj;
 
Method Summary
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 Object describe(String name)
          The description of the named object.
 void deserialize(IXMLSerializeData data)
          Deserializes an object from XML.
 void empty()
          Clears the value object.
 boolean equals(Object o)
          Compare this object with another
 IClone esri_clone()
          Clones the receiver and assigns the result to *clone.
 String getAsText()
          Provides the value of the value object.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 IFields getFields()
          The fields collection for this index.
 String getName()
          The name of the index.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 int hashCode()
          the hashcode for this object
 IGPDataType IGPValue_getDataType()
          The data type of the value object.
 boolean isAscending()
          Indicates if the index is based on ascending order.
 void isDirty()
          isDirty
 boolean isEmpty()
          Indicates if the value object is empty.
 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.
 boolean isUnique()
          Indicates if the index is unique.
 void load(IStream pstm)
          load
 void readExternal(ObjectInput in)
           
 void save(IStream pstm, int fClearDirty)
          save
 void serialize(IXMLSerializeData data)
          Serializes an object to XML.
 IGPMessage setAsText(String text)
          Provides the value of the value object with the given string value.
 void setFieldsByRef(IFields rhs1)
          The fields collection for this index.
 void setIsAscending(boolean rhs1)
          Indicates if the index is to be ascending.
 void setIsUnique(boolean rhs1)
          Indicates if the index is to be unique.
 void setName(String rhs1)
          The name of the index.
 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

Index

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

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

Index

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

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

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

getName

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isUnique

public boolean isUnique()
                 throws IOException,
                        AutomationException
Indicates if the index is unique.

Remarks

If IsUnique is true, the field the Index was created for must not have duplicate values.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isAscending

public boolean isAscending()
                    throws IOException,
                           AutomationException
Indicates if the index is based on ascending order.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFields

public IFields getFields()
                  throws IOException,
                         AutomationException
The fields collection for this index.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setName

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

Remarks

ArcGIS imposes a limit on the length of 16 characters on the length of attribute index names. This limit is based on the smallest allowable length within supported databases in order to facilitate distribution and sharing of data between different geodatabases.

Giving a shapefile index a name will apply the name to the index in memory, but the name will not be persisted to disk. On subsequent occasions when the indexes are opened, they will have system-defined names.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setIsUnique

public void setIsUnique(boolean rhs1)
                 throws IOException,
                        AutomationException
Indicates if the index is to be unique.

Remarks

Only non-versioned feature classes and tables can have unique indexes.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setIsAscending

public void setIsAscending(boolean rhs1)
                    throws IOException,
                           AutomationException
Indicates if the index is to be ascending.

Remarks

Whether you can add an index that is ascending is dependent on the DBMS.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setFieldsByRef

public void setFieldsByRef(IFields rhs1)
                    throws IOException,
                           AutomationException
The fields collection for this index.

Remarks

The maximum number of fields in the fields collection of an index is DBMS dependent.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setFieldsByRef in interface IIndexEdit
Parameters:
rhs1 - A reference to a com.esri.arcgis.geodatabase.IFields (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.

IGPValue_getDataType

public IGPDataType IGPValue_getDataType()
                                 throws IOException,
                                        AutomationException
The data type of the value object.

Product Availability

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

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

isEmpty

public boolean isEmpty()
                throws IOException,
                       AutomationException
Indicates if the value object is empty.

Remarks

The IsEmpty method returns if this Value object has been set or not.

Product Availability

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

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

empty

public void empty()
           throws IOException,
                  AutomationException
Clears the value object.

Remarks

The Empty method clears this Value object and releases any associated objects.

Product Availability

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

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

getAsText

public String getAsText()
                 throws IOException,
                        AutomationException
Provides the value of the value object.

Remarks

The GetAsText method returns this Value object as a text string. For DataElement value objects it is the NameString. For simple value objects it is the text string for the scalar value.

Product Availability

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

Specified by:
getAsText in interface IGPValue
Returns:
The text
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAsText

public IGPMessage setAsText(String text)
                     throws IOException,
                            AutomationException
Provides the value of the value object with the given string value.

Remarks

The SetAsText method sets the value of this Value object as a text string. For DataElement value objects it is the NameString. For simple value objects it is the text string representing the scalar value.

Product Availability

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

Specified by:
setAsText in interface IGPValue
Parameters:
text - The text (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IGPMessage
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.

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.

describe

public Object describe(String name)
                throws IOException,
                       AutomationException
The description of the named object.

Product Availability

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

Specified by:
describe in interface IGPDescribe
Parameters:
name - The name (in)
Returns:
A Variant
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