com.esri.arcgis.geodatabase
Class RelQueryTable

java.lang.Object
  extended bycom.esri.arcgis.geodatabase.RelQueryTable
All Implemented Interfaces:
IClass, IConnectionPointContainer, IDataset, IFeatureClass, IObjectClass, IRelQueryTable, IRelQueryTableInfo, IRelQueryTableManage, IRelQueryTableSettings, ITable, ITableCapabilities, IVirtualTable, java.io.Serializable

public class RelQueryTable
extends java.lang.Object
implements IDataset, IClass, ITable, IObjectClass, IFeatureClass, ITableCapabilities, IConnectionPointContainer, IRelQueryTable, IRelQueryTableSettings, IRelQueryTableInfo, IVirtualTable, IRelQueryTableManage

An object that joins two datasets based on common data values.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Remarks

A RelQueryTable is a class that represents a joined pair of tables or feature classes.

A RelationshipClass is used when creating a RelQueryTable to specify the tables involved and the fields on which the join is based. The RelationshipClass can be stored in a geodatabase or created in memory. MemoryRelationshipClasses can include tables that belong to different data sources. Therefore, a RelQueryTable can join tables from different data sources.

A RelQueryTable includes a source table or feature class and a destination table or feature class. If you step through a cursor opened from a RelQueryTable, each row includes the columns from both input tables. The fields from the source appear on the left while the fields from the destination appear on the right. A row from each table is matched based on the primary and foreign keys from IRelationshipClass to produce a single row.

Shapes can only be retrieved from the source table. If the destination table has a geometry field, it will not be included in the RelQueryTable.

 

 

When you perform a join in ArcMap, a RelQueryTable object is created and used as the table or layer's data source for all display purposes. When in ArcMap, you can use the IDisplayTable::DisplayTable property to get a joined table or layer's RelQueryTable.

Since a RelQueryTable implements IObjectClass and IFeatureClass and inherits from Table, it can be treated like any other Table or FeatureClass. The IFeatureClass interface is implemented only when the source is a FeatureClass. A RelQueryTable cursor is read-only so you must edit the source and destination to change the data.

A RelQueryTable is designed to work with relationships that have a one-to-one or a many-to-one cardinality. If the cardinality is one-to-many, a row from the source will be associated with the first matching row in the destination and any other matching rows are ignored. A RelationshipClass with a many-to-many cardinality is not supported and will cause an error. If the relationship has a cardinality of one-to-many or many-to-many, use RelationshipClass objects to access the data. If the cardinality is really one-to-one, but the Relationship is defined as one-to-many, the RelQueryTable will still process correctly.

A RelQueryTable will have an ObjectID if the source has an ObjectID. When initialized, the RelQueryTable uses the values from the source's ObjectID field to define its ObjectIDs. If the source is a non-ObjectID object class, the RelQueryTable can still access the data, but there will be limitations such as an inability to select rows.

ObjectIDs by definition must be unique. The reason relationships with one-to-many cardinalities match one row from the source to only one row in the destination is to prevent repeating ObjectIDs in the RelQueryTable. Repeating ObjectIDs will cause many objects like SelectionSets and table windows to behave incorrectly.

See Also:
ITable, Serialized Form

Constructor Summary
RelQueryTable(java.lang.Object obj)
          Construct a RelQueryTable using a reference to such an object returned from ArcGIS Engine or Server.
 
Method Summary
 void addField(IField field)
          Adds a field to this object class.
 void addIndex(IIndex index)
          Adds an index to this object class.
 void addIObjectClassEventsListener(IObjectClassEvents theListener)
           
 boolean canCopy()
          True if this dataset can be copied.
 boolean canDelete()
          True if this dataset can be deleted.
 boolean canRename()
          True if this dataset can be renamed.
 IDataset copy(java.lang.String copyName, IWorkspace copyWorkspace)
          Copies this dataset to a new dataset with the specified name.
 IFeature createFeature()
          Create a new feature, with a system assigned object ID and null property values.
 IFeatureBuffer createFeatureBuffer()
          Create a feature buffer that can be used with an insert cursor.
 IRow createRow()
          Creates a row in the database with a system assigned object ID and null property values.
 IRowBuffer createRowBuffer()
          Creates a row buffer that can be used with an insert cursor.
 void delete()
          Deletes this dataset.
 void deleteField(IField field)
          Deletes a field from this object class.
 void deleteIndex(IIndex index)
          Deletes an index from this object class.
 void deleteSearchedRows(IQueryFilter queryFilter)
          Delete the Rows in the database selected by the specified query.
 void enumConnectionPoints(IEnumConnectionPoints[] ppEnum)
          Supported Platforms
 boolean equals(java.lang.Object o)
          Compare this object with another
 int featureCount(IQueryFilter queryFilter)
          The number of features selected by the specified query.
 void findConnectionPoint(GUID riid, IConnectionPoint[] ppCP)
          Supported Platforms
 int findField(java.lang.String name)
          The index of the field with the specified name.
 java.lang.String getAliasName()
          The alias name of the object class.
 IField getAreaField()
          The geometry area field.
 IClass getAsIClass()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IConnectionPointContainer getAsIConnectionPointContainer()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IDataset getAsIDataset()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IFeatureClass getAsIFeatureClass()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IObjectClass getAsIObjectClass()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IRelQueryTable getAsIRelQueryTable()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IRelQueryTableInfo getAsIRelQueryTableInfo()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IRelQueryTableManage getAsIRelQueryTableManage()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IRelQueryTableSettings getAsIRelQueryTableSettings()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 ITable getAsITable()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 ITableCapabilities getAsITableCapabilities()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 IVirtualTable getAsIVirtualTable()
          Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.
 ITable getBaseTableOfField(java.lang.String dbColumn)
          Returns the base table for a particular field.
 java.lang.String getBrowseName()
          The browse name of the dataset.
 java.lang.String getCategory()
          The category of the dataset.
 IUID getCLSID()
          The GUID for the COM Class (CoClass) corresponding to instances of this object class.
 ITable getDestinationTable()
          The fields that appear on the right side of the join belong to the destination table.
 IUID getEXTCLSID()
          The GUID for the COM Class (CoClass) corresponding to the class extension for this object class.
 java.lang.Object getExtension()
          The extension for this object class.
 IPropertySet getExtensionProperties()
          The extension properties for this object class.
 IFeature getFeature(int iD)
          Get the feature with the specified object ID.
 int getFeatureClassID()
          The unique ID for the Feature Class.
 IFeatureDataset getFeatureDataset()
          The feature dataset that contains the feature class.
 IFeatureCursor getFeatures(java.lang.Object fids, boolean recycling)
          Get a cursor of Rows given a set of object ids.
 int getFeatureType()
          The type of features in this feature class.
 IFields getFields()
          The fields collection for this object class.
 IName getFullName()
          The associated name object.
 IIndexes getIndexes()
          The indexes collection for this object class.
 int getJoinType()
          Type of table join.
 IField getLengthField()
          The geometry length field.
 java.lang.String getName()
          The name of the Dataset.
 int getObjectClassID()
          The unique ID for the object class.
 java.lang.String getOIDFieldName()
          The name of the field corresponding to the OID.
 IPropertySet getPropertySet()
          The set of properties for the dataset.
 IQueryDef getQueryDef()
          QueryDef used to create the join.
 IRelationshipClass getRelationshipClass()
          Relationship class used in the table join.
 IEnumRelationshipClass getRelationshipClasses(int role)
          The relationship classes in which this object class participates in for the specified role.
 IRow getRow(int oID)
          The row from the database with the specified object ID.
 ICursor getRows(java.lang.Object oids, boolean recycling)
          The cursor of rows based on a set of object ids.
 java.lang.String getShapeFieldName()
          The name of the default sShape field.
 int getShapeType()
          The type of the default Shape for the features in this feature class.
 ITable getSourceTable()
          The fields that appear on the left side of the join belong to the source table.
 IEnumDataset getSubsets()
          Datasets contained within this dataset.
 int getType()
          The type of the Dataset.
 IWorkspace getWorkspace()
          The workspace containing this dataset.
 int hashCode()
          the hashcode for this object
 IFeatureCursor IFeatureClass_insert(boolean useBuffering)
          Returns a cursor that can be used to insert new features.
 IFeatureCursor IFeatureClass_update(IQueryFilter filter, boolean recycling)
          Returns a cursor that can be used to update features selected by the specified query.
 ICursor insert(boolean useBuffering)
          Returns a cursor that can be used to insert new Rows.
 boolean isCanSelect()
          Indicates if the table supports selection.
 boolean isFireRowChangedEvents()
          Fire row changed events.
 boolean isHasDirectAccessLookup()
          Indicates if direct access lookup is used by a RelQueryTable to match records between the source and destination tables.
 boolean isHasOID()
          Indicates if the class has an object identity (OID) field.
 ICursor ITable_search(IQueryFilter queryFilter, boolean recycling)
          An object cursor that can be used to fetch row objects selected by the specified query.
 void removeIObjectClassEventsListener(IObjectClassEvents theListener)
           
 void rename(java.lang.String name)
          Renames this Dataset.
 int rowCount(IQueryFilter queryFilter)
          The number of Rows selected by the specified query.
 IFeatureCursor search(IQueryFilter filter, boolean recycling)
          Returns an object cursor that can be used to fetch feature objects selected by the specified query.
 ISelectionSet select(IQueryFilter queryFilter, int selType, int selOption, IWorkspace selectionContainer)
          A selection that contains the object ids selected by the specified query.
 void setBrowseName(java.lang.String name)
          The browse name of the dataset.
 void setFireRowChangedEvents(boolean pFireRowEvents)
          Fire row changed events.
 ICursor update(IQueryFilter queryFilter, boolean recycling)
          Returns a cursor that can be used to update Rows selected by the specified query.
 void updateSearchedRows(IQueryFilter queryFilter, IRowBuffer buffer)
          Update the Rows in the database selected by the specified query.
 void versionChanged(IVersion pSelectedWorkspace, IVersion pTargetVersion, IEnumTableVersionChanges pTablesRequiringMapEventFiring)
          Updates all children tables to use new version of the workspace.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RelQueryTable

public RelQueryTable(java.lang.Object obj)
              throws java.io.IOException
Construct a RelQueryTable using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to RelQueryTable.
Casting to this class from the return value of a method will not work, as this class represents an abstract class in ArcObjects.
*
RelQueryTable o = (RelQueryTable)obj; // will not work

RelQueryTable o = new RelQueryTable(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server RelQueryTable theRelQueryTable = (RelQueryTable) obj;

Throws:
java.io.IOException - if there are interop problems
Method Detail

getAsIDataset

public IDataset getAsIDataset()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIClass

public IClass getAsIClass()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsITable

public ITable getAsITable()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIObjectClass

public IObjectClass getAsIObjectClass()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIFeatureClass

public IFeatureClass getAsIFeatureClass()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsITableCapabilities

public ITableCapabilities getAsITableCapabilities()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIConnectionPointContainer

public IConnectionPointContainer getAsIConnectionPointContainer()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIRelQueryTable

public IRelQueryTable getAsIRelQueryTable()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIRelQueryTableSettings

public IRelQueryTableSettings getAsIRelQueryTableSettings()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIRelQueryTableInfo

public IRelQueryTableInfo getAsIRelQueryTableInfo()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIVirtualTable

public IVirtualTable getAsIVirtualTable()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


getAsIRelQueryTableManage

public IRelQueryTableManage getAsIRelQueryTableManage()
Deprecated. No replacement. The object reference can be directly used where the implemented interface is needed.


equals

public boolean equals(java.lang.Object o)
Compare this object with another


hashCode

public int hashCode()
the hashcode for this object


addIObjectClassEventsListener

public void addIObjectClassEventsListener(IObjectClassEvents theListener)
                                   throws java.io.IOException
Throws:
java.io.IOException

removeIObjectClassEventsListener

public void removeIObjectClassEventsListener(IObjectClassEvents theListener)
                                      throws java.io.IOException
Throws:
java.io.IOException

getName

public java.lang.String getName()
                         throws java.io.IOException,
                                AutomationException
Description copied from interface: IDataset
The name of the Dataset.

Supported Platforms

Windows, Solaris, Linux

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

getFullName

public IName getFullName()
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IDataset
The associated name object.

Supported Platforms

Windows, Solaris, Linux

Remarks

The FullName property returns a Name object for the dataset. The Name object can be persisted and provides a way to get back to the dataset in a future session of the application, via the Open method on the Name object.

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

getBrowseName

public java.lang.String getBrowseName()
                               throws java.io.IOException,
                                      AutomationException
Description copied from interface: IDataset
The browse name of the dataset.

Supported Platforms

Windows, Solaris, Linux

Remarks

BrowseName returns file names without their extension. For example, States.shp would appear as States.

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

setBrowseName

public void setBrowseName(java.lang.String name)
                   throws java.io.IOException,
                          AutomationException
Description copied from interface: IDataset
The browse name of the dataset.

Supported Platforms

Windows, Solaris, Linux

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

getType

public int getType()
            throws java.io.IOException,
                   AutomationException
Description copied from interface: IDataset
The type of the Dataset.

Supported Platforms

Windows, Solaris, Linux

Remarks

The Type property returns the enumerated type for the dataset, such as esriDTTable or esriDTFeatureDataset.

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

getCategory

public java.lang.String getCategory()
                             throws java.io.IOException,
                                    AutomationException
Description copied from interface: IDataset
The category of the dataset.

Supported Platforms

Windows, Solaris, Linux

Remarks

IDataset::Category returns a description of the category of the dataset.  The description returned from the Category property is the same value that is displayed in the Type column within the Contents tab in ArcCatalog.  The value will contain a description of the dataset such as "Topology" prefixed with a description of the type of workspace containing the dataset such as "File Geodatabase".

The description returned from IDataset::Category may change between releases of ArcGIS.

Specified by:
getCategory in interface IDataset
Returns:
The category
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getSubsets

public IEnumDataset getSubsets()
                        throws java.io.IOException,
                               AutomationException
Description copied from interface: IDataset
Datasets contained within this dataset.

Supported Platforms

Windows, Solaris, Linux

Description

The Subsets property returns other Dataset objects contained in this dataset.

Remarks

IDataset::Subsets is not supported for Graph objects such as a Geometric Network.  To return the feature classes contained in a Geometric Network, use the IFeatureClassContainer interface.

Specified by:
getSubsets in interface IDataset
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumDataset
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getWorkspace

public IWorkspace getWorkspace()
                        throws java.io.IOException,
                               AutomationException
Description copied from interface: IDataset
The workspace containing this dataset.

Supported Platforms

Windows, Solaris, Linux

Description

The Workspace property returns the containing workspace for this dataset.

Specified by:
getWorkspace in interface IDataset
Returns:
A reference to a com.esri.arcgis.geodatabase.IWorkspace
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPropertySet

public IPropertySet getPropertySet()
                            throws java.io.IOException,
                                   AutomationException
Description copied from interface: IDataset
The set of properties for the dataset.

Supported Platforms

Windows, Solaris, Linux

Description

The PropertySet property is used to return any additional intrinsic properties (but not metadata properties) that may apply to the dataset. One use of this property is to distinguish between the types of File Geodatabase datafile formats. If called on a Feature Class or Table in a File Geodatabase the Datafile Format property can either be esriFGDBStandardDatafile or esriFGDBCompressedDatafile.

Remarks

Examples of intrinsic properties for which explicit methods exist include the SpatialReference and the Extent methods available on the IGeoDataset interface. In most cases this PropertySet will be empty.

IDataset::PropertySet is not supported for Graph objects such as a Geometric Network.

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

canCopy

public boolean canCopy()
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IDataset
True if this dataset can be copied.

Supported Platforms

Windows, Solaris, Linux

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods.  For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class.  To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

The CanCopy method is supported by:

Specified by:
canCopy in interface IDataset
Returns:
The canCopy
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

copy

public IDataset copy(java.lang.String copyName,
                     IWorkspace copyWorkspace)
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IDataset
Copies this dataset to a new dataset with the specified name.

Supported Platforms

Windows, Solaris, Linux

Remarks

IDataset::Copy does not support the copying of Graph objects such as a Geometric Network.

Specified by:
copy in interface IDataset
Parameters:
copyName - The copyName (in)
copyWorkspace - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IDataset
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
GeoDBDataTransfer

canDelete

public boolean canDelete()
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IDataset
True if this dataset can be deleted.

Supported Platforms

Windows, Solaris, Linux

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods.  For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class.  To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

Specified by:
canDelete in interface IDataset
Returns:
The canDelete
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

delete

public void delete()
            throws java.io.IOException,
                   AutomationException
Description copied from interface: IDataset
Deletes this dataset.

Supported Platforms

Windows, Solaris, Linux

Remarks

Certain feature classes, such as network and topology feature classes, cannot be deleted until their containing objects are deleted.

Specified by:
delete in interface IDataset
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

canRename

public boolean canRename()
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IDataset
True if this dataset can be renamed.

Supported Platforms

Windows, Solaris, Linux

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods.  For example, you may not delete or rename a network feature class nor can you use the Copy method on a Geodatabase feature class.  To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

Specified by:
canRename in interface IDataset
Returns:
The canRename
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rename

public void rename(java.lang.String name)
            throws java.io.IOException,
                   AutomationException
Description copied from interface: IDataset
Renames this Dataset.

Supported Platforms

Windows, Solaris, Linux

Remarks

IDataset::Rename does not support the renaming of Graph objects such as a Geometric Network.  In addition, certain feature classes, such as network feature classes, cannot be renamed.

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

findField

public int findField(java.lang.String name)
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IClass
The index of the field with the specified name.

Supported Platforms

Windows, Solaris, Linux

Remarks

If FindField returns -1, the Field could not be found in the Fields collection.

Specified by:
findField in interface IClass
Parameters:
name - The name (in)
Returns:
The fieldIndex
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getFields

public IFields getFields()
                  throws java.io.IOException,
                         AutomationException
Description copied from interface: IClass
The fields collection for this object class.

Supported Platforms

Windows, Solaris, Linux

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

getIndexes

public IIndexes getIndexes()
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IClass
The indexes collection for this object class.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getIndexes in interface IClass
Returns:
A reference to a com.esri.arcgis.geodatabase.IIndexes
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addField

public void addField(IField field)
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IClass
Adds a field to this object class.

Supported Platforms

Windows, Solaris, Linux

Specified by:
addField in interface IClass
Parameters:
field - A reference to a com.esri.arcgis.geodatabase.IField (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteField

public void deleteField(IField field)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IClass
Deletes a field from this object class.

Supported Platforms

Windows, Solaris, Linux

Remarks

DeleteField removes the specified field from a table, object class or feature class. Fields that are required by the Geodatabase and cannot be removed include:

 

Specified by:
deleteField in interface IClass
Parameters:
field - A reference to a com.esri.arcgis.geodatabase.IField (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addIndex

public void addIndex(IIndex index)
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IClass
Adds an index to this object class.

Supported Platforms

Windows, Solaris, Linux

Specified by:
addIndex in interface IClass
Parameters:
index - A reference to a com.esri.arcgis.geodatabase.IIndex (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteIndex

public void deleteIndex(IIndex index)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IClass
Deletes an index from this object class.

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteIndex in interface IClass
Parameters:
index - A reference to a com.esri.arcgis.geodatabase.IIndex (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isHasOID

public boolean isHasOID()
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IClass
Indicates if the class has an object identity (OID) field.

Supported Platforms

Windows, Solaris, Linux

Specified by:
isHasOID in interface IClass
Returns:
The hasOID
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOIDFieldName

public java.lang.String getOIDFieldName()
                                 throws java.io.IOException,
                                        AutomationException
Description copied from interface: IClass
The name of the field corresponding to the OID.

Supported Platforms

Windows, Solaris, Linux

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

getCLSID

public IUID getCLSID()
              throws java.io.IOException,
                     AutomationException
Description copied from interface: IClass
The GUID for the COM Class (CoClass) corresponding to instances of this object class.

Supported Platforms

Windows, Solaris, Linux

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

getEXTCLSID

public IUID getEXTCLSID()
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IClass
The GUID for the COM Class (CoClass) corresponding to the class extension for this object class.

Supported Platforms

Windows, Solaris, Linux

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

getExtension

public java.lang.Object getExtension()
                              throws java.io.IOException,
                                     AutomationException
Description copied from interface: IClass
The extension for this object class.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getExtension in interface IClass
Returns:
A reference to another Object (IUnknown)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getExtensionProperties

public IPropertySet getExtensionProperties()
                                    throws java.io.IOException,
                                           AutomationException
Description copied from interface: IClass
The extension properties for this object class.

Supported Platforms

Windows, Solaris, Linux

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

createRow

public IRow createRow()
               throws java.io.IOException,
                      AutomationException
Description copied from interface: ITable
Creates a row in the database with a system assigned object ID and null property values.

Supported Platforms

Windows, Solaris, Linux

Remarks

The CreateRow method creates a new row in the underlying database with a system assigned object id value. A row object representing the created row is returned to the caller. The row object returned has the system assigned object ID as the value of the OIDField. All other fields are initialized to null values if they can be made null and to built-in default values appropriate to the type of the field if they cannot be made null.

The caller is responsible for setting the desired field values into the row and calling the Store method on the row. If the table represents an object class with subtypes, then it is the caller’s responsibility to set the default subtype code into the row and call the InitDefaultValues method on the row before storing, if that is the desired result. For tables without object behavior, insert cursors offer a more efficient way for inserting new rows.

Specified by:
createRow in interface ITable
Returns:
A reference to a com.esri.arcgis.geodatabase.IRow
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRow

public IRow getRow(int oID)
            throws java.io.IOException,
                   AutomationException
Description copied from interface: ITable
The row from the database with the specified object ID.

Supported Platforms

Windows, Solaris, Linux

Remarks

The GetRow method returns an existing row object, given its object ID value. The caller can query the returned row object for additional object specific interfaces. The retrieved row may be modified; calling Store on the row object after changing it will trigger messages to related objects and will mark the row for committing to the database.

Specified by:
getRow in interface ITable
Parameters:
oID - The oID (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IRow
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRows

public ICursor getRows(java.lang.Object oids,
                       boolean recycling)
                throws java.io.IOException,
                       AutomationException
Description copied from interface: ITable
The cursor of rows based on a set of object ids.

Supported Platforms

Windows, Solaris, Linux

Remarks

The GetRows method returns a cursor that may be used to retrieve a set of rows specified by the input array of object id values. See the description of the Search method to understand the meaning of the recycling parameter. It is far more efficient to retrieve a set of rows using the GetRows method than it is to retrieve each individual row using the GetRow method. The retrieved rows may be modified; Store should be called on the row objects after changing them.

Specified by:
getRows in interface ITable
Parameters:
oids - A Variant (in)
recycling - The recycling (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ICursor
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

createRowBuffer

public IRowBuffer createRowBuffer()
                           throws java.io.IOException,
                                  AutomationException
Description copied from interface: ITable
Creates a row buffer that can be used with an insert cursor.

Supported Platforms

Windows, Solaris, Linux

Remarks

The CreateRowBuffer method creates a new row buffer object in memory and returns it to the caller. No row is created in the database. The returned row buffer does not have an object ID value. The caller can set values into the row buffer and use it as an argument to the InsertRow method on an insert cursor; the latter is obtained by calling the Insert method on the Table.

Specified by:
createRowBuffer in interface ITable
Returns:
A reference to a com.esri.arcgis.geodatabase.IRowBuffer
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

updateSearchedRows

public void updateSearchedRows(IQueryFilter queryFilter,
                               IRowBuffer buffer)
                        throws java.io.IOException,
                               AutomationException
Description copied from interface: ITable
Update the Rows in the database selected by the specified query.

Supported Platforms

Windows, Solaris, Linux

Remarks

All edits to features that participate in a Topology or Geometric Network must be performed within an edit session and bracketed within an edit operation.

Specified by:
updateSearchedRows in interface ITable
Parameters:
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
buffer - A reference to a com.esri.arcgis.geodatabase.IRowBuffer (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

deleteSearchedRows

public void deleteSearchedRows(IQueryFilter queryFilter)
                        throws java.io.IOException,
                               AutomationException
Description copied from interface: ITable
Delete the Rows in the database selected by the specified query.

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteSearchedRows in interface ITable
Parameters:
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rowCount

public int rowCount(IQueryFilter queryFilter)
             throws java.io.IOException,
                    AutomationException
Description copied from interface: ITable
The number of Rows selected by the specified query.

Supported Platforms

Windows, Solaris, Linux

Specified by:
rowCount in interface ITable
Parameters:
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
Returns:
The numRows
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

ITable_search

public ICursor ITable_search(IQueryFilter queryFilter,
                             boolean recycling)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: ITable
An object cursor that can be used to fetch row objects selected by the specified query.

Specified by:
ITable_search in interface ITable
Parameters:
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
recycling - The recycling (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ICursor
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

update

public ICursor update(IQueryFilter queryFilter,
                      boolean recycling)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: ITable
Returns a cursor that can be used to update Rows selected by the specified query.

Supported Platforms

Windows, Solaris, Linux

Remarks

The Update method returns an ‘update’ cursor that can be used to update or delete rows. It offers somewhat faster performance than multiple calls to Store or Delete on row objects fetched using a non-recycling search cursor for tables storing simple rows and simple features. There is no difference in performance for custom features.

All edits to features that participate in a Topology or Geometric Network must be bracketed within an edit operation.

Specified by:
update in interface ITable
Parameters:
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
recycling - The recycling (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ICursor
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

insert

public ICursor insert(boolean useBuffering)
               throws java.io.IOException,
                      AutomationException
Description copied from interface: ITable
Returns a cursor that can be used to insert new Rows.

Supported Platforms

Windows, Solaris, Linux

Remarks

The Insert method returns an ‘insert’ cursor that can be used to bulk insert rows. It offers significantly faster performance than multiple calls to CreateRow and Store for tables storing simple rows and simple features (that is, for tables whose CLSID is esriGeoDatabase.Row, esriGeoDatabase.Object, or esriGeoDatabase.Feature).

Insert cursors on tables containing custom rows and objects use the CreateRow and Store methods to achieve polymorphism, and there is no difference in performance in these cases.

Specified by:
insert in interface ITable
Parameters:
useBuffering - The useBuffering (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ICursor
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

select

public ISelectionSet select(IQueryFilter queryFilter,
                            int selType,
                            int selOption,
                            IWorkspace selectionContainer)
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: ITable
A selection that contains the object ids selected by the specified query.

Supported Platforms

Windows, Solaris, Linux

Remarks

The Select method returns a selection set that holds either row ids or row objects from the Table depending on the selection option. Multiple selection sets can be created on the same table. It is up to a client application or object to keep a reference on created selections and use them as appropriate. For example, a FeatureLayer creates and uses selections on a FeatureClass (a type of Table).

When calling Select the selectionContainer parameter is no longer required. Null (C#, VB.Net) or Nothing (VB6) should be supplied it its place. 

Specified by:
select in interface ITable
Parameters:
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
selType - A com.esri.arcgis.geodatabase.esriSelectionType constant (in)
selOption - A com.esri.arcgis.geodatabase.esriSelectionOption constant (in)
selectionContainer - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ISelectionSet
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getObjectClassID

public int getObjectClassID()
                     throws java.io.IOException,
                            AutomationException
Description copied from interface: IObjectClass
The unique ID for the object class.

Supported Platforms

Windows, Solaris, Linux

Description

Returns the unique ID of the object class.

Remarks

Each feature class or table registered with the geodatabase is an object class. Object classes have a unique ID which distinguishes them from other object classes in the geodatabase. The ObjectClassID property returns this ID as a long. The object class ID is assigned by the system when the class is created, or registered with the geodatabase, it cannot be modified.

Those feature classes and tables that are in the database, but not registered with the geodatabase will always have an object class ID of -1.

Specified by:
getObjectClassID in interface IObjectClass
Returns:
The objectClassID
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getRelationshipClasses

public IEnumRelationshipClass getRelationshipClasses(int role)
                                              throws java.io.IOException,
                                                     AutomationException
Description copied from interface: IObjectClass
The relationship classes in which this object class participates in for the specified role.

Supported Platforms

Windows, Solaris, Linux

Description

Returns an enumeration of the relationship classes in which the object class participates.

Remarks

Object classes in a geodatabase may participate in any number of relationships classes. The RelationshipClasses property allows you to get a list of those relationship classes that the object class participates in by what role it plays (origin, destination, or either) defined by the esriRelRole enumeration used when you call this property. This property returns a IEnumRelationshipClass interface which you can use to loop through those relationship classes that are returned.

Specified by:
getRelationshipClasses in interface IObjectClass
Parameters:
role - A com.esri.arcgis.geodatabase.esriRelRole constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumRelationshipClass
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IEnumRelationshipClass, esriRelRole

getAliasName

public java.lang.String getAliasName()
                              throws java.io.IOException,
                                     AutomationException
Description copied from interface: IObjectClass
The alias name of the object class.

Supported Platforms

Windows, Solaris, Linux

Description

Returns the alias name for the object class.

Remarks

Object classes in a geodatabase can have between one and three names. The name of the object class, which is the same as the name of the table in the DBMS in which the objects in the object class are stored, the alias name which the user can set for display purposes in end user applications. The third name is the model name which is a tool for developers of custom objects to use to guarantee the names of objects independent of the true name or alias name.

The AliasName property returns the alias name for the object class. If the object class has no alias name, then AliasName will return the name of the object class (fully qualified if on ArcSDE). The alias name can be modified using the IClassSchemEdit interface.

Specified by:
getAliasName in interface IObjectClass
Returns:
The name
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
IModelInfo

getShapeType

public int getShapeType()
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IFeatureClass
The type of the default Shape for the features in this feature class.

Supported Platforms

Windows, Solaris, Linux

Description

ShapeType returns the basic type of geometry of a shape. For the purposes of using the ShapeType property in deciding how to render/symbolize a layer, only esriGeometryPolyline, esriGeometryPolygon, esriGeometryPoint, esriGeometryMulitpoint, and esriGeometryMultipatch need to be checked. All the other types will report as being one of these five types. The reason is that esriGeometryBezier3Curve or esriGeometryPath, etc. can be segments or parts of another shape.

Remarks

This read-only property returns the shape type for the feature class. This shape type can be one of the following esriGeometryType.

Specified by:
getShapeType in interface IFeatureClass
Returns:
A com.esri.arcgis.geometry.esriGeometryType constant
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFeatureType

public int getFeatureType()
                   throws java.io.IOException,
                          AutomationException
Description copied from interface: IFeatureClass
The type of features in this feature class.

Supported Platforms

Windows, Solaris, Linux

Remarks

This read-only property returns the feature type for the feature class. This feature type can be one of the following esriFeatureType. This property can be used to determine if a feature class is of a particular type, in order for the feature class to added to a network or topology, or possibly to skip over the feature class in an enumeration.

Specified by:
getFeatureType in interface IFeatureClass
Returns:
A com.esri.arcgis.geodatabase.esriFeatureType constant
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
esriFeatureType

getShapeFieldName

public java.lang.String getShapeFieldName()
                                   throws java.io.IOException,
                                          AutomationException
Description copied from interface: IFeatureClass
The name of the default sShape field.

Supported Platforms

Windows, Solaris, Linux

Remarks

This read-only property returns the name of the geometry field for the feature class.

Specified by:
getShapeFieldName in interface IFeatureClass
Returns:
The name
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
IGeometry, ILine, IPoint, IPolygon

getAreaField

public IField getAreaField()
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IFeatureClass
The geometry area field.

Supported Platforms

Windows, Solaris, Linux

Remarks

This read-only property returns the name of the field which records the area of each feature. Only feature classes that have a ShapeType of esriGeometryPolygon have an Area field.

A null pointer will be returned if:

Specified by:
getAreaField in interface IFeatureClass
Returns:
A reference to a com.esri.arcgis.geodatabase.IField
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
IField, IFields

getLengthField

public IField getLengthField()
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IFeatureClass
The geometry length field.

Supported Platforms

Windows, Solaris, Linux

Remarks

This read-only property returns the name of the field which records the length of each feature. Only feature classes that have a ShapeType of esriGeometryPolygon or esriGeometryPolyLine have a Length field. For Line features, this field records the length of the polyline. For polygon features, this field records the perimeter of the polygon.

A null pointer will be returned if:

Specified by:
getLengthField in interface IFeatureClass
Returns:
A reference to a com.esri.arcgis.geodatabase.IField
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
IField, IFields

getFeatureDataset

public IFeatureDataset getFeatureDataset()
                                  throws java.io.IOException,
                                         AutomationException
Description copied from interface: IFeatureClass
The feature dataset that contains the feature class.

Supported Platforms

Windows, Solaris, Linux

Remarks

This read-only property returns the IFeatureDataset interface on the feature dataset that this feature class is a memeber of. If the feature class is a stand alone feature class (it does not have a feature dataset), then this function will return a null pointer. A coverage feature class will return the IFeatureDataset interface to the coverage itself. Shapefiles will always return a null pointer.

Specified by:
getFeatureDataset in interface IFeatureClass
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureDataset
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IFeatureDataset, IDataset

createFeature

public IFeature createFeature()
                       throws java.io.IOException,
                              AutomationException
Description copied from interface: IFeatureClass
Create a new feature, with a system assigned object ID and null property values.

Supported Platforms

Windows, Solaris, Linux

Remarks

CreateFeature will create a new feature for the feature class. The new feature is by default assigned a unique object ID (OID). All other fields are initialized to null values if they can be made null and to built-in default values appropriate to the type of the field if they cannot be made null. Use the IFeature::Store method to actually store this new feature in the database. When working with a versioned feature class, CreateFeature should only be called within an edit session. You can start an edit session by calling IWorkspaceEdit::StartEditing. All edits to features that participate in a Topology or Geometric Network must be performed within an edit session and bracketed within an edit operation.

After calling CreateFeature, the default subtype value is not automatically set nor are default values initialized. For features without a subtype that have defined default values, calling IRowSubtypes::InitDefaultValues will initialize the default values.  Use IRowSubtypes::SubtypeCode to set the subtype value for features with subtypes before calling IRowSubtypes::InitDefaultValues to initialize the default values for the particular subtype.

Calling the CreateFeature method on a feature class (via the IFeatureClass interface on the feature class) has the same effect as calling the CreateRow method on the FeatureClass (via the ITable interface on the feature class) except that the IFeatureClass methods return IFeature interfaces on the returned row object.

The basic process to create a new feature is:

1) Create the feature
2) Create the geometry for the feature
3) Store the geometry in the feature
4) Store the feature

Specified by:
createFeature in interface IFeatureClass
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeature
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IFeature, IRowSubtypes, IWorkspaceEdit

getFeature

public IFeature getFeature(int iD)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IFeatureClass
Get the feature with the specified object ID.

Supported Platforms

Windows, Solaris, Linux

Remarks

GetFeature will return the IFeature interface for a feature in the feature class with a given Object ID (OID). This method is typically used to find a particular feature that you know the OID for.  Use a cursor if you wish to loop through all features in the feature class.

Calling the GetFeature method on a feature class (via the IFeatureClass interface on the feature class) has the same effect as calling the GetRow method on the FeatureClass (via the ITable interface on the feature class) except that the IFeatureClass methods return IFeature interfaces.
 

Specified by:
getFeature in interface IFeatureClass
Parameters:
iD - The iD (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeature
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
IObject, IFeature

getFeatures

public IFeatureCursor getFeatures(java.lang.Object fids,
                                  boolean recycling)
                           throws java.io.IOException,
                                  AutomationException
Description copied from interface: IFeatureClass
Get a cursor of Rows given a set of object ids.

Supported Platforms

Windows, Solaris, Linux

Remarks

GetFeatures will return an IFeatureCursor which contains all the features in the feature class with the given Object IDs (OID). This method can be used to loop through a particular set of features that you know the OIDs for.

Calling the GetFeatures method in IFeatureClass has the same effect as calling the GetRows method in ITable except that the IFeatureClass method returns the IFeatureCursor interface on the returned cursor.

Specified by:
getFeatures in interface IFeatureClass
Parameters:
fids - A Variant (in)
recycling - The recycling (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureCursor
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IFeature, IFeatureCursor

getFeatureClassID

public int getFeatureClassID()
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IFeatureClass
The unique ID for the Feature Class.

Supported Platforms

Windows, Solaris, Linux

Remarks

This read-only property will return the unique identifier for this feature class. All feature classes inside Geodatabases have a unique ID. Coverage and Shapefile feature classes do not, so IFeatureClass::FeatureClassID will always return -1 for Coverage and Shapefile feature classes. Since IFeatureClass inherits from IObjectClass, you can also get the feature class ID from IObjectClass:: ObjectClassID.
 


Specified by:
getFeatureClassID in interface IFeatureClass
Returns:
The fID
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IObjectClass

createFeatureBuffer

public IFeatureBuffer createFeatureBuffer()
                                   throws java.io.IOException,
                                          AutomationException
Description copied from interface: IFeatureClass
Create a feature buffer that can be used with an insert cursor.

Supported Platforms

Windows, Solaris, Linux

Remarks

The CreateFeatureBuffer method creates a feature buffer and returns the IFeatureBuffer interface. This can be used to create new features in the feature class with an insert cursor. Like creating a feature with IFeatureClass::CreateFeature, the field values for the new feature must be initialized to some value before it can be stored in the database. All edits to features that participate in a Topology or Geometric Network must be performed within an edit session and bracketed within an edit operation.

Calling the CreateFeatureBuffer method in IFeatureClass has the same effect as calling the CreateRowBuffer interface in ITable except that the IFeatureClass methods return an IFeatureBuffer interface on the created row buffer.

Specified by:
createFeatureBuffer in interface IFeatureClass
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureBuffer
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IFeature, IFeatureCursor, IFeatureBuffer

featureCount

public int featureCount(IQueryFilter queryFilter)
                 throws java.io.IOException,
                        AutomationException
Description copied from interface: IFeatureClass
The number of features selected by the specified query.

Supported Platforms

Windows, Solaris, Linux

Remarks

FeatureCount returns the number of features that satisfy some attribute and/or spatial query as specified by an IQueryFilter object. If Nothing is supplied for the IQueryFilter, then FeatureCount returns the total number of features in the feature class.

In Java, rather than passing Nothing to get the total number of features, you should pass null.

Specified by:
featureCount in interface IFeatureClass
Parameters:
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
Returns:
The numFeatures
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
IQueryFilter

search

public IFeatureCursor search(IQueryFilter filter,
                             boolean recycling)
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IFeatureClass
Returns an object cursor that can be used to fetch feature objects selected by the specified query.

Supported Platforms

Windows, Solaris, Linux

Remarks

Search will return an IFeatureCursor with all of the features that satisfy some attribute and/or spatial query as specified by an IQueryFilter object. If Nothing is given as the IQueryFilter, then the feature cursor will have all of the features from the feature class.

The recycling parameter controls row object allocation behavior. Recycling cursors rehydrate a single feature object on each fetch and can be used to optimize read-only access, for example, when drawing. It is illegal to maintain a reference on a feature object returned by a recycling cursor across multiple calls to NextFeature on the cursor. Feature objects returned by a recycling cursor should not be modified. Non-recycling cursors return a separate feature object on each fetch. The features returned by a non-recycling cursor may be modified and stored with polymorphic behavior. The Geodatabase guarantees "unique instance semantics" on non-recycling feature objects fetched during an edit session. If the feature object to be retrieved by a call to search has already been instantiated and is being referenced by the calling application, then a reference to the existing feature object is returned.

Feature cursors returned from the Search method cannot be used to update the features in the cursor. The feature cursor returned from the Update method should be used to update those features.

Non-recycling feature cursors returned from the Search method *MUST* be used when copying features from the cursor into an insert cursor of another class.  This is because a recycling cursor reuses the same geometry and under some circumstances all of the features inserted into the insert cursor may have the same geometry.  Using a non-recycling cursor ensures that each geometry is unique.

Specified by:
search in interface IFeatureClass
Parameters:
filter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
recycling - The recycling (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureCursor
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.
See Also:
IQueryFilter, IFeatureCursor

IFeatureClass_update

public IFeatureCursor IFeatureClass_update(IQueryFilter filter,
                                           boolean recycling)
                                    throws java.io.IOException,
                                           AutomationException
Description copied from interface: IFeatureClass
Returns a cursor that can be used to update features selected by the specified query.

Specified by:
IFeatureClass_update in interface IFeatureClass
Parameters:
filter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
recycling - The recycling (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureCursor
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

IFeatureClass_insert

public IFeatureCursor IFeatureClass_insert(boolean useBuffering)
                                    throws java.io.IOException,
                                           AutomationException
Description copied from interface: IFeatureClass
Returns a cursor that can be used to insert new features.

Specified by:
IFeatureClass_insert in interface IFeatureClass
Parameters:
useBuffering - The useBuffering (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureCursor
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCanSelect

public boolean isCanSelect()
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: ITableCapabilities
Indicates if the table supports selection.

Supported Platforms

Windows, Solaris, Linux

Remarks

Use CanSelect to determine if you can open a selection set on the table. A situation where CanSelect will be False is a standalone database table without an OID column.

Specified by:
isCanSelect in interface ITableCapabilities
Returns:
The canSelect
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

enumConnectionPoints

public void enumConnectionPoints(IEnumConnectionPoints[] ppEnum)
                          throws java.io.IOException,
                                 AutomationException
Description copied from interface: IConnectionPointContainer

Supported Platforms

Windows, Solaris, Linux

Description

IConnectionPointContainer is a Microsoft interface. Please refer to MSDN for information about this interface.

Specified by:
enumConnectionPoints in interface IConnectionPointContainer
Parameters:
ppEnum - A reference to a com.esri.arcgis.display.IEnumConnectionPoints (out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findConnectionPoint

public void findConnectionPoint(GUID riid,
                                IConnectionPoint[] ppCP)
                         throws java.io.IOException,
                                AutomationException
Description copied from interface: IConnectionPointContainer

Supported Platforms

Windows, Solaris, Linux

Description

IConnectionPointContainer is a Microsoft interface. Please refer to MSDN for information about this interface.

Specified by:
findConnectionPoint in interface IConnectionPointContainer
Parameters:
riid - A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
ppCP - A reference to a com.esri.arcgis.display.IConnectionPoint (out: use single element array)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getSourceTable

public ITable getSourceTable()
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IRelQueryTable
The fields that appear on the left side of the join belong to the source table.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSourceTable in interface IRelQueryTable
Returns:
A reference to a com.esri.arcgis.geodatabase.ITable
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getDestinationTable

public ITable getDestinationTable()
                           throws java.io.IOException,
                                  AutomationException
Description copied from interface: IRelQueryTable
The fields that appear on the right side of the join belong to the destination table.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDestinationTable in interface IRelQueryTable
Returns:
A reference to a com.esri.arcgis.geodatabase.ITable
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getRelationshipClass

public IRelationshipClass getRelationshipClass()
                                        throws java.io.IOException,
                                               AutomationException
Description copied from interface: IRelQueryTable
Relationship class used in the table join.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getRelationshipClass in interface IRelQueryTable
Returns:
A reference to a com.esri.arcgis.geodatabase.IRelationshipClass
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isFireRowChangedEvents

public boolean isFireRowChangedEvents()
                               throws java.io.IOException,
                                      AutomationException
Description copied from interface: IRelQueryTableSettings
Fire row changed events.

Supported Platforms

Windows, Solaris, Linux

Specified by:
isFireRowChangedEvents in interface IRelQueryTableSettings
Returns:
The pFireRowEvents
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFireRowChangedEvents

public void setFireRowChangedEvents(boolean pFireRowEvents)
                             throws java.io.IOException,
                                    AutomationException
Description copied from interface: IRelQueryTableSettings
Fire row changed events.

Supported Platforms

Windows, Solaris, Linux

Specified by:
setFireRowChangedEvents in interface IRelQueryTableSettings
Parameters:
pFireRowEvents - The pFireRowEvents (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getJoinType

public int getJoinType()
                throws java.io.IOException,
                       AutomationException
Description copied from interface: IRelQueryTableInfo
Type of table join.

Supported Platforms

Windows, Solaris, Linux

Remarks

The JoinType can be either esriLeftInnerJoin or esriLeftOuterJoin. A left outer join ensures that all records in the source are returned. A left inner join will only return rows that have matching key field values. The diagram below illustrates the difference.

 

When using ArcMap's user interface to join data, you can choose between either type of join. Clicking the advanced button on the join data dialog box will display a dialog box that allows you to choose the join type. Here, the "Keep all records" option refers to a left outer join when the "Keep only matching records" option specifies a left inner join.

 

Specified by:
getJoinType in interface IRelQueryTableInfo
Returns:
A com.esri.arcgis.geodatabase.esriJoinType constant
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getQueryDef

public IQueryDef getQueryDef()
                      throws java.io.IOException,
                             AutomationException
Description copied from interface: IRelQueryTableInfo
QueryDef used to create the join. This property will be null if the join is done on the client.

Supported Platforms

Windows, Solaris, Linux

Remarks

The QueryDef property returns the query that is used to retrieve the joined data when processing is done on the server. If the join is processed on the client as apposed to a server, the QueryDef property returns a Null or a Nothing object in Visual Basic.

If all tables involved are stored on the same ArcSDE, Personal or File Geodatabase, the processing can be performed by the server, which is normally faster. The JoinType must also be esriLeftInnerJoin in order for processing to occur on the server. In any other case, processing occurs on the client.

Specified by:
getQueryDef in interface IRelQueryTableInfo
Returns:
A reference to a com.esri.arcgis.geodatabase.IQueryDef
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.

getBaseTableOfField

public ITable getBaseTableOfField(java.lang.String dbColumn)
                           throws java.io.IOException,
                                  AutomationException
Description copied from interface: IRelQueryTableInfo
Returns the base table for a particular field.

Supported Platforms

Windows, Solaris, Linux

Remarks

The GetBaseTableofField method will return the underlying Table object that is associated with a field in a RelQueryTable. To ensure that the column will be found, provide a fully qualified field name when executing this method.

Specified by:
getBaseTableOfField in interface IRelQueryTableInfo
Parameters:
dbColumn - The dbColumn (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.ITable
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isHasDirectAccessLookup

public boolean isHasDirectAccessLookup()
                                throws java.io.IOException,
                                       AutomationException
Description copied from interface: IRelQueryTableInfo
Indicates if direct access lookup is used by a RelQueryTable to match records between the source and destination tables.

Supported Platforms

Windows, Solaris, Linux

Remarks

The HasDirectAccessLookup property returns true if the destination table supports the IRandomAccessCursor interface and the source table has an ObjectID field. This interface allows for faster data access and therefore better join performance. Tables from shapefile and ArcInfo workspace factories support this interface.

Specified by:
isHasDirectAccessLookup in interface IRelQueryTableInfo
Returns:
The pDirectAccess
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

versionChanged

public void versionChanged(IVersion pSelectedWorkspace,
                           IVersion pTargetVersion,
                           IEnumTableVersionChanges pTablesRequiringMapEventFiring)
                    throws java.io.IOException,
                           AutomationException
Description copied from interface: IRelQueryTableManage
Updates all children tables to use new version of the workspace.

Supported Platforms

Windows, Solaris, Linux

Specified by:
versionChanged in interface IRelQueryTableManage
Parameters:
pSelectedWorkspace - A reference to a com.esri.arcgis.geodatabase.IVersion (in)
pTargetVersion - A reference to a com.esri.arcgis.geodatabase.IVersion (in)
pTablesRequiringMapEventFiring - A reference to a com.esri.arcgis.geodatabase.IEnumTableVersionChanges (in)
Throws:
AutomationException - If the ArcObject component throws an exception.
java.io.IOException - If there are interop problems.