|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.trackinganalyst.TemporalFeatureClass
public class TemporalFeatureClass
Controls settings for the temporal feature class.
The Temporal Feature Class is a Feature class that contains live or dynamic data. This class is responsible for maintaining this data in memory for rapid access by subscribers. This class will return queries that iterate through the data in temporal order, and has the capability to create and delete features. This class will utilize a custom in memory database.
Constructor Summary | |
---|---|
TemporalFeatureClass(Object obj)
Construct a TemporalFeatureClass 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. |
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(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. |
boolean |
equals(Object o)
Compare this object with another |
int |
featureCount(IQueryFilter queryFilter)
The number of features selected by the specified query. |
int |
findField(String name)
The index of the field with the specified name. |
String |
getAliasName()
The alias name of the object class. |
IFIDSet |
getAllLockedFIDs()
Indicates the FIDs for all locked features. |
IField |
getAreaField()
The geometry area field. |
String |
getBrowseName()
The browse name of the dataset. |
String |
getCategory()
The category of the dataset. |
IUID |
getCLSID()
The GUID for the COM Class (CoClass) corresponding to instances of this object class. |
String |
getConnectionName()
Return Connection Name. |
String |
getCurrentZone()
The current Time Zone. |
IStringArray |
getExcludedTrackingEventIDs()
String array of EventIDs to be permanently purged and ignored. |
IUID |
getEXTCLSID()
The GUID for the COM Class (CoClass) corresponding to the class extension for this object class. |
Object |
getExtension()
The extension for this object class. |
IPropertySet |
getExtensionProperties()
The extension properties for this object class. |
IEnvelope |
getExtent()
The extent of the GeoDataset. |
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(Object fids,
boolean recycling)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeoDatabaseHelper#getFeatures(com.esri.arcgis.geodatabase.IFeatureClass, int[], boolean) . |
int |
getFeatureType()
The type of features in this feature class. |
IFields |
getFields()
The fields collection for this object class. |
String |
getFirstTrackId()
Retrives the first Track ID in the list. |
IName |
getFullName()
The associated name object. |
IIndexes |
getIndexes()
The indexes collection for this object class. |
ITime |
getLastUpdateTime(String trackId)
Returns the time that a given track was last updated. |
IField |
getLengthField()
The geometry length field. |
double |
getMessageRate()
Indicates the TemporalFeatureClass message rate. |
String |
getName()
The name of the Dataset. |
String |
getNextTrackId()
Retrives the next Track ID in the list. |
int |
getObjectClassID()
The unique ID for the object class. |
String |
getOIDFieldName()
The name of the field corresponding to the OID. |
IActionProcessor |
getPostActionProcessor()
Evaluates data messages once they are placed in the feature class' internal storage. |
IActionCollection |
getPostActions()
Collection of actions that will be evaluated after data messages are placed in the temporal feature class' internal storage. |
IActionProcessor |
getPreActionProcessor()
The action processor that will evaluate the data messages before they are stored. |
IActionCollection |
getPreActions()
Collection of actions that will be evaluated before data messages are placed in feature class storage. |
IPropertySet |
getPropertySet()
The set of properties for the dataset. |
double |
getPurgePercentage()
Indicates percentage of the maximum number of records to delete when the Purge method is called. |
int |
getPurgeRule()
Indicates rule to use when purging records when AutoPurge is true (e.g., purge oldest records). |
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(Object oids,
boolean recycling)
The cursor of rows based on a set of object ids. |
int |
getSampleSize()
Indicates the sample size used to calculate message rate. |
String |
getServerName()
Return Server Name. |
String |
getShapeFieldName()
The name of the default sShape field. |
int |
getShapeType()
The type of the default Shape for the features in this feature class. |
ISpatialReference |
getSpatialReference()
The spatial reference of the GeoDataset. |
IEnumDataset |
getSubsets()
Datasets contained within this dataset. |
String |
getTemporalColumnName()
Name of the column containing the time-date information. |
String |
getTemporalObjectColumnName()
Name of the column containing the track information. |
Object |
getThreshold()
Indicates the high-water mark, or maximum number of observations allowed before records are purged from memory. |
String |
getTimeZoneXML()
The XML representation of a TimeZone. |
Object |
getTotalFeatureCount()
Indicates the total number of features logged. |
int |
getTrackCount()
Indicates the TemporalFeatureClass track count. |
ISelectionSet |
getTrackFeatures(String trackId)
Returns a selection set of features in a given track. |
String[] |
getTrackIds()
Retrives the Track ID list. |
int |
getType()
The type of the Dataset. |
IWorkspace |
getWorkspace()
The workspace containing this dataset. |
Object |
getZoneList()
List of time zones. |
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. |
void |
interfaceSupportsErrorInfo(GUID riid)
interfaceSupportsErrorInfo |
boolean |
isAdjustForDaylightSavings()
Indicates whether or not to Adjust For Daylight Savings. |
boolean |
isAutoPurge()
Controls whether or not to automatically purge records once a user-defined threshold is met. |
boolean |
isBeingEdited()
True if the dataset is being edited. |
boolean |
isCanSelect()
Indicates if the table supports selection. |
boolean |
isContainsTemporalObjects()
Indicates whether or not a temporal object table is used to collect or provide static information about temporal observations. |
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. |
ICursor |
lastKnownFeatures(Object varStartingTime,
Object varEndingTime)
Searches for last known features in the dataset. |
IFeatureIDSet |
lastKnownOIDs(Object varStartingTime,
Object varEndingTime)
Searches for the last known OIDs in the dataset. |
void |
postMessage(IDataMessage piMsg)
All temporal messages enter the temporal feature class environment via this method. |
void |
pruneTable()
Apply the purge rule to the temporal table. |
void |
queryTemporalExtent(Object[] pvarStartTime,
Object[] pvarEndTime)
Queries the feature class using the full temporal extent. |
void |
queryTrackTimeExtent(String trackId,
ITime[] startTime,
ITime[] endTime)
Returns the start and end times of a given track. |
void |
readProperties(IStream piStream)
Load an object's properties from a stream. |
void |
registerListener(IListener piListener)
Registers a Listener Object with the feature class. |
void |
rename(String name)
Renames this Dataset. |
void |
resetFeatureCount()
Resets total feature count. |
void |
resetMessageRate()
Resets message rate. |
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. |
ICursor |
searchAndLock(IQueryFilter piQueryFilter,
boolean recycling)
Searches records that satisfy the query filter and lockes them. |
ISelectionSet |
select(IQueryFilter queryFilter,
int selType,
int selOption,
IWorkspace selectionContainer)
A selection that contains the object ids selected by the specified query. |
ISelectionSet |
selectAndLock(IQueryFilter piQueryFilter,
int selType,
int selOption,
IWorkspace piSelectionContainer)
Selectes records that satisfy the query filter, selection type and selection option, and lockes them. |
void |
setAdjustForDaylightSavings(boolean pVal)
Indicates whether or not to Adjust For Daylight Savings. |
void |
setAutoPurge(boolean pVal)
Controls whether or not to automatically purge records once a user-defined threshold is met. |
void |
setBrowseName(String name)
The browse name of the dataset. |
void |
setCurrentZone(String pbstrCurrentZone)
The current Time Zone. |
void |
setExcludedTrackingEventIDs(IStringArray pVal)
String array of EventIDs to be permanently purged and ignored. |
void |
setPostActionProcessorByRef(IActionProcessor ppiProcessor)
Evaluates data messages once they are placed in the feature class' internal storage. |
void |
setPostActionsByRef(IActionCollection ppiActions)
Collection of actions that will be evaluated after data messages are placed in the temporal feature class' internal storage. |
void |
setPreActionProcessorByRef(IActionProcessor ppiProcessor)
The action processor that will evaluate the data messages before they are stored. |
void |
setPreActionsByRef(IActionCollection ppiActions)
Collection of actions that will be evaluated before data messages are placed in feature class storage. |
void |
setPurgePercentage(double pVal)
Indicates percentage of the maximum number of records to delete when the Purge method is called. |
void |
setPurgeRule(int pVal)
Indicates rule to use when purging records when AutoPurge is true (e.g., purge oldest records). |
void |
setSampleSize(int plSampleSize)
Indicates the sample size used to calculate message rate. |
void |
setTemporalColumnName(String pVal)
Name of the column containing the time-date information. |
void |
setTemporalObjectColumnName(String rhs1)
Name of the column containing the track information. |
void |
setThreshold(Object pVal)
Indicates the high-water mark, or maximum number of observations allowed before records are purged from memory. |
void |
setTimeZoneXML(String pbstrXML)
The XML representation of a TimeZone. |
void |
unlockAllFeatures()
Unlocks all features that are locked. |
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 |
writeProperties(IStream piStream)
Write the object's properties to a stream. |
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 |
---|
public TemporalFeatureClass(Object obj) throws IOException
obj
to TemporalFeatureClass
. *
TemporalFeatureClass o = (TemporalFeatureClass)obj; // will not work
TemporalFeatureClass o = new TemporalFeatureClass(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server
IOException
- if there are interop problems
TemporalFeatureClass theTemporalFeatureClass = (TemporalFeatureClass) obj;
Method Detail |
---|
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public void queryTemporalExtent(Object[] pvarStartTime, Object[] pvarEndTime) throws IOException, AutomationException
This function returns the full temporal extent of data stored in the feature class. The returned objects are VT_DATE type (e.g., “mm/dd/yyyy hh:mm:ss AM/PM”).
queryTemporalExtent
in interface ITemporalSearch
queryTemporalExtent
in interface ITemporalFeatureClass
pvarStartTime
- A Variant (in/out: use single element array)pvarEndTime
- A Variant (in/out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getTemporalColumnName() throws IOException, AutomationException
This property is the name of the column that contains the temporal data. This data can be a timestamp or a time period.
getTemporalColumnName
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTemporalColumnName(String pVal) throws IOException, AutomationException
This property is the name of the column that contains the temporal data. This data can be a timestamp or a time period.
setTemporalColumnName
in interface ITemporalFeatureClass
pVal
- The pVal (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isContainsTemporalObjects() throws IOException, AutomationException
This property indicates whether or not a temporal object table is used to collect or provide static information about temporal observations. This simply means that for a given temporal observation there is a set of static attributes that do not change from observation to observation.
isContainsTemporalObjects
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getTemporalObjectColumnName() throws IOException, AutomationException
This property returns the column name that provides the temporal data. This property is set during the feature classes creation and is read-only.
getTemporalObjectColumnName
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IActionProcessor getPostActionProcessor() throws IOException, AutomationException
The post action processor is the action processor that will evaluate data messages once they are placed in the feature class's internal storage. These data messages are queued to the actions processor's work queue, and a separate thread is used to perform this processing.
getPostActionProcessor
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPostActionProcessorByRef(IActionProcessor ppiProcessor) throws IOException, AutomationException
The post action processor is the action processor that will evaluate data messages once they are placed in the feature class's internal storage. These data messages are queued to the actions processor's work queue, and a separate thread is used to perform this processing.
setPostActionProcessorByRef
in interface ITemporalFeatureClass
ppiProcessor
- A reference to a com.esri.arcgis.carto.IActionProcessor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IActionCollection getPostActions() throws IOException, AutomationException
This property is a collection of actions that will be evaluated after data messages are placed in the temporal feature class's internal storage.
getPostActions
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPostActionsByRef(IActionCollection ppiActions) throws IOException, AutomationException
This property is a collection of actions that will be evaluated after data messages are place in the temporal feature class's internal storage.
setPostActionsByRef
in interface ITemporalFeatureClass
ppiActions
- A reference to a com.esri.arcgis.carto.IActionCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void registerListener(IListener piListener) throws IOException, AutomationException
registerListener
in interface ITemporalFeatureClass
piListener
- A reference to a com.esri.arcgis.geodatabaseextensions.IListener (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isAutoPurge() throws IOException, AutomationException
This property controls whether or not to automatically purge observations that meet a specified criteria--the user-defined Purge Rule--when the high-water mark has been exceeded.
isAutoPurge
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAutoPurge(boolean pVal) throws IOException, AutomationException
This property controls whether or not to automatically purge observations that meet a specified criteria--the user-defined Purge Rule--when the high-water mark has been exceeded.
setAutoPurge
in interface ITemporalFeatureClass
pVal
- The pVal (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public Object getThreshold() throws IOException, AutomationException
This property indicates the high-water mark or the number of observations that should not be exceeded. When the auto purge property is enabled or true, this level is the maximum number of records that can exist in the table. The auto purge process occurs or is triggered, and it will prune the table according to the Purge Rule. If Auto Purge is not true or enabled then record inserts will fail and no further data will be allowed into the table.
getThreshold
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setThreshold(Object pVal) throws IOException, AutomationException
This property indicates the high-water mark or the number of observations that should not be exceeded. When the auto purge property is enabled or true, this level is the maximum number of records that can exist in the table. The auto purge process occurs or is triggered, and it will prune the table according to the Purge Rule. If Auto Purge is not true or enabled then record inserts will fail and no further data will be allowed into the table.
setThreshold
in interface ITemporalFeatureClass
pVal
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getPurgePercentage() throws IOException, AutomationException
This property indicates the percentage of the maximum allowed number of records to delete when the Purge method is called. This maximum allowed limit is also the same as the Threshold property.
getPurgePercentage
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPurgePercentage(double pVal) throws IOException, AutomationException
This property indicates the percentage of the maximum allowed number of records to delete when the Purge method is called. This maximum allowed limit is also the same as the Threshold property.
setPurgePercentage
in interface ITemporalFeatureClass
pVal
- The pVal (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPurgeRule() throws IOException, AutomationException
This property identifies the purge rule to apply when the Purge method is called via user, or the auto purge criteria. See the purge rule enumeration constants for details about each rule.
getPurgeRule
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPurgeRule(int pVal) throws IOException, AutomationException
This property identifies the purge rule to apply when the Purge method is called via user ,or the auto purge criteria.
See the purge rule enumeration constants for details about each rule.
setPurgeRule
in interface ITemporalFeatureClass
pVal
- A com.esri.arcgis.geodatabaseextensions.enumPurgeRule constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void pruneTable() throws IOException, AutomationException
This function applies the purge rule to the temporal table to purge observations that meet a specified criteria--the user-defined Purge Rule--when the high-water mark has been exceeded.
pruneTable
in interface ITemporalFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getServerName() throws IOException, AutomationException
getServerName
in interface ITemporalFeatureClass2
getServerName
in interface ITemporalFeatureClass3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getConnectionName() throws IOException, AutomationException
getConnectionName
in interface ITemporalFeatureClass2
getConnectionName
in interface ITemporalFeatureClass3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTemporalObjectColumnName(String rhs1) throws IOException, AutomationException
setTemporalObjectColumnName
in interface ITemporalFeatureClass3
rhs1
- The rhs1 (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getName() throws IOException, AutomationException
getName
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IName getFullName() throws IOException, AutomationException
getFullName
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getBrowseName() throws IOException, AutomationException
getBrowseName
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setBrowseName(String name) throws IOException, AutomationException
setBrowseName
in interface IDataset
name
- The name (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getType() throws IOException, AutomationException
// Assume we have a reference to an IfeatureClass (pFeatureClass) IDataset pDataset = null;
pDataset = new IDatasetProxy(pFeatureClass);
System.out.println(pDataset.getName() + " " + pDataset.getType());
if(pFeatureClass != null){
pDataset = pFeatureClass.getFeatureDataset();
System.out.println(pDataset.getName() + " " + pDataset.getType());
}
pDataset = new IDatasetProxy(pDataset.getWorkspace());
System.out.println(pDataset.getName() + " " +
pDataset.getType());
getType
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getCategory() throws IOException, AutomationException
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. In addition to this, returned strings are localized, meaning that code relying on a specific string being provided may fail when deployed with a different version of ArcGIS than it was developed with, or when deployed to a client using a different language than it was developed with.
getCategory
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumDataset getSubsets() throws IOException, AutomationException
The Subsets property returns other Dataset objects contained in this dataset.
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.
getSubsets
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IWorkspace getWorkspace() throws IOException, AutomationException
The Workspace property returns the containing workspace for this dataset.
getWorkspace
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPropertySet getPropertySet() throws IOException, AutomationException
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.
Most datasets do not implement this property and will either raise an error or return a null value if it's called. There are a handful of exceptions that will return property sets; these include the datasets from file geodatabases (as mentioned above) and coverages.
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.
getPropertySet
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean canCopy() throws IOException, AutomationException
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:
canCopy
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IDataset copy(String copyName, IWorkspace copyWorkspace) throws IOException, AutomationException
IDataset::Copy should only be used with datasets from file-based data sources, such as shapefiles and coverages.
copy
in interface IDataset
copyName
- The copyName (in)copyWorkspace
- A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean canDelete() throws IOException, AutomationException
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.
canDelete
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void delete() throws IOException, AutomationException
Certain feature classes, such as network and topology feature classes, cannot be deleted until their containing objects are deleted.
delete
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean canRename() throws IOException, AutomationException
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.
canRename
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void rename(String name) throws IOException, AutomationException
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.
rename
in interface IDataset
name
- The name (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isBeingEdited() throws IOException, AutomationException
Once an edit session has been started on a workspace, the IsBeingEdited method on the IDatasetEdit interface can be used to determine if a particular dataset is participating in the edit session.
The reasons why a dataset may not participate include the connected user has no privileges or permission to edit the dataset, the connected user is not licensed to edit this type of dataset, or the dataset is not versioned but a versioned edit session has been started (or vice versa).
isBeingEdited
in interface IDatasetEdit
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IRow createRow() throws IOException, AutomationException
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.
createRow
in interface ITable
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IRow getRow(int oID) throws IOException, AutomationException
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.
getRow
in interface ITable
oID
- The oID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ICursor getRows(Object oids, boolean recycling) throws IOException, AutomationException
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.
The oids parameter should be passed an integer array. For example:
// Get a recycling cursor for the OID array.
int[] oids = new int[] { 10844, 10853, 10871 };
ICursor cursor = table.getRows(oids, true);
getRows
in interface ITable
oids
- A Variant (in)recycling
- The recycling (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IRowBuffer createRowBuffer() throws IOException, AutomationException
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.
createRowBuffer
in interface ITable
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void updateSearchedRows(IQueryFilter queryFilter, IRowBuffer buffer) throws IOException, AutomationException
This method will edit the rows matching the query filter's constraints. The values in each row will be replaced with the corresponding field's value in the provided row buffer. The fields being edited should be specified in the query filter's SubFields property. If the row buffer contains null values, and the SubFields property is not properly set, the row's values will be overwritten with the row buffer's null values.
updateSearchedRows
in interface ITable
queryFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)buffer
- A reference to a com.esri.arcgis.geodatabase.IRowBuffer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deleteSearchedRows(IQueryFilter queryFilter) throws IOException, AutomationException
deleteSearchedRows
in interface ITable
queryFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int rowCount(IQueryFilter queryFilter) throws IOException, AutomationException
rowCount
in interface ITable
queryFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ICursor ITable_search(IQueryFilter queryFilter, boolean recycling) throws IOException, AutomationException
ITable_search
in interface ITable
queryFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)recycling
- The recycling (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ICursor update(IQueryFilter queryFilter, boolean recycling) throws IOException, AutomationException
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 complex objects and features.
When using cursors within an edit session, they should always be scoped to edit operations. In other words, a cursor should be created after an edit operation has begun and should not be used once that edit operation has been stopped or aborted.
update
in interface ITable
queryFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)recycling
- The recycling (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ICursor insert(boolean useBuffering) throws IOException, AutomationException
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 complex objects use the CreateRow and Store methods to achieve polymorphism, and there is no difference in performance in these cases.
When using cursors within an edit session, they should always be scoped to edit operations. In other words, a cursor should be created after an edit operation has begun and should not be used once that edit operation has been stopped or aborted.
insert
in interface ITable
useBuffering
- The useBuffering (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISelectionSet select(IQueryFilter queryFilter, int selType, int selOption, IWorkspace selectionContainer) throws IOException, AutomationException
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).
The selType parameter determines the type of selection set that will be created: an ID set, a snapshot, or a hybrid. See the ISelectionSet interface for a comparison of the three types.
When calling Select the selectionContainer parameter is no longer required. A null value should be passed as this parameter.
select
in interface IFeatureClass
select
in interface ITable
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IQueryFilter
public int findField(String name) throws IOException, AutomationException
If FindField returns -1, the Field could not be found in the Fields collection.
Developers working with SDE should be aware of qualified field names and their impact on calls to FindField. For more information, see the IFields2 interface.
findField
in interface IClass
name
- The name (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFields getFields() throws IOException, AutomationException
getFields
in interface IClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IIndexes getIndexes() throws IOException, AutomationException
getIndexes
in interface IClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addField(IField field) throws IOException, AutomationException
Prior to adding a new field to a class, an exclusive schema lock should be obtained using the ISchemaLock interface.
Attempting to add a new field that does not allow null values will fail, if the class already has data in it. The only solution is to recreate the class with the non-nullable field, then copy the rows from the original class into the new class.
addField
in interface IClass
field
- A reference to a com.esri.arcgis.geodatabase.IField (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deleteField(IField field) throws IOException, AutomationException
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:
Prior to deleting a field from a class, an exclusive schema lock should be obtained using the ISchemaLock interface.
// Assume we have a reference to a FeatureClass (pFC) IFields pFields; IField pField; pFields = pFC.getFields(); pField = pFields.getField(pFields.findField("MyField")); pFC.deleteField(pField);
deleteField
in interface IClass
field
- A reference to a com.esri.arcgis.geodatabase.IField (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addIndex(IIndex index) throws IOException, AutomationException
Prior to adding a new index to a class, an exclusive schema lock should be obtained using the ISchemaLock interface.
addIndex
in interface IClass
index
- A reference to a com.esri.arcgis.geodatabase.IIndex (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deleteIndex(IIndex index) throws IOException, AutomationException
Prior to deleting an index from a class, an exclusive schema lock should be obtained using the ISchemaLock interface.
deleteIndex
in interface IClass
index
- A reference to a com.esri.arcgis.geodatabase.IIndex (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isHasOID() throws IOException, AutomationException
isHasOID
in interface IClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getOIDFieldName() throws IOException, AutomationException
getOIDFieldName
in interface IClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IUID getCLSID() throws IOException, AutomationException
getCLSID
in interface IClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IUID getEXTCLSID() throws IOException, AutomationException
getEXTCLSID
in interface IClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public Object getExtension() throws IOException, AutomationException
getExtension
in interface IClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPropertySet getExtensionProperties() throws IOException, AutomationException
getExtensionProperties
in interface IClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getObjectClassID() throws IOException, AutomationException
Returns the unique ID of the object class.
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.
getObjectClassID
in interface IObjectClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumRelationshipClass getRelationshipClasses(int role) throws IOException, AutomationException
getRelationshipClasses
in interface IObjectClass
role
- A com.esri.arcgis.geodatabase.esriRelRole constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getAliasName() throws IOException, AutomationException
Returns the alias name for the object class.
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.
getAliasName
in interface IObjectClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISpatialReference getSpatialReference() throws IOException, AutomationException
This property is read only. For layers, when the first layer is added to ArcMap, its spatial reference is read by this property, and the map is set to this spatial reference.
Instances of the esriCarto.GroupLayer class will return null for this property, as a group layer can contain multiple datasets with different spatial references.
Modifications to a spatial reference returned by this property will not be persisted. To modify the spatial reference of a dataset, the IGeoDatasetSchemaEdit and IGeoDatasetSchemaEdit2 interfaces should be used.
getSpatialReference
in interface IGeoDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnvelope getExtent() throws IOException, AutomationException
The IGeoDataset::Extent property returns an envelope representing the maximum extent of data which has been stored in the dataset.
Consider the following scenario. A new feature class has features added to it. The IGeoDataset::Extent is then requested and an envelope is returned. The extents of the envelope returned are represented by the red box in the image below.
If a portion of the features were then deleted and the extent is again requested an envelope with the exact same extents as during the first request would be returned (see image below). This is because the deletion of features does not shrink the extent. However all additions of features outside the red box would increase the envelope returned to encompass the newly added features.
If you would like to update the IGeoDataset::Extent property to reflect the current features in your dataset please see IFeatureClassManage::UpdateExtent (also see IFeatureClassLoad). In the image below the extent has been updated and a new envelope is being returned.
ESRI's GroupLayer implements this property differently from most other layer coclasses. When you instantiate a new GroupLayer, this property will return a valid envelope with zero height and width. With most other newly instantiated layers (for example FeatureLayer, RasterLayer, TinLayer), this property initally returns Nothing.
getExtent
in interface IGeoDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getShapeType() throws IOException, AutomationException
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.
getShapeType
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IFeatureClass.getShapeType()
,
esriGeometryType
public int getFeatureType() throws IOException, AutomationException
This read-only property returns the feature type for the feature class as an esriFeatureType value. 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 enumerator.
getFeatureType
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.esriFeatureType
public String getShapeFieldName() throws IOException, AutomationException
This read-only property returns the name of the geometry field for the feature class.
getShapeFieldName
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint
,
IPolygon
,
IGeometry
,
ILine
public IField getAreaField() throws IOException, AutomationException
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:
getAreaField
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IField
,
IFields
public IField getLengthField() throws IOException, AutomationException
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:
getLengthField
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IField
,
IFields
public IFeatureDataset getFeatureDataset() throws IOException, AutomationException
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.
getFeatureDataset
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFeature createFeature() throws IOException, AutomationException
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.
If multiple features with common attributes are being sequentially created, the CreateFeatureBuffer method, IFeatureCursor.InsertFeature method and IFeatureBuffer interface should be used for better performance.
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
createFeature
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IFeature
,
IFeatureCursor
public IFeature getFeature(int iD) throws IOException, AutomationException
GetFeature will return a feature from the feature class with the parameter-specified Object ID (OID). This method is typically used to find a particular feature with a known Object ID. A cursor should be used to iterate through all features in a 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 feature class (via the ITable interface) except that the return value is an IFeature reference, rather than IRow.
getFeature
in interface IFeatureClass
iD
- The iD (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IFeature
,
IFeatureCursor
public IFeatureCursor getFeatures(Object fids, boolean recycling) throws IOException, AutomationException
GeoDatabaseHelper#getFeatures(com.esri.arcgis.geodatabase.IFeatureClass, int[], boolean)
.
GetFeatures will return an IFeatureCursor which contains the features from the feature class with the parameter-specified Object IDs (OID). This method can be used to loop through a particular set of features with known Object IDs.
Calling the GetFeatures method from the IFeatureClass interface has the same effect as calling the GetRows method from the ITable interface except that the return value is an IFeatureCursor reference, rather than an ICursor reference.
The fids parameter should be provided with an integer array. If the array contains an invalid Object ID, no error will occur, and no feature will be retrieved for the value.
This method should not be called from .NET or Java applications. Instead, call IGeoDatabaseBridge.GetFeatures.
getFeatures
in interface IFeatureClass
fids
- A Variant (in)recycling
- The recycling (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IFeature
,
IFeatureCursor
public int getFeatureClassID() throws IOException, AutomationException
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.
getFeatureClassID
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IObjectClass
public IFeatureBuffer createFeatureBuffer() throws IOException, AutomationException
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.
createFeatureBuffer
in interface IFeatureClass
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IFeature
,
IFeatureCursor
public int featureCount(IQueryFilter queryFilter) throws IOException, AutomationException
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.
featureCount
in interface IFeatureClass
queryFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.In Java, rather than passing Nothing to get the total number of features, you should pass null.
public IFeatureCursor search(IQueryFilter filter, boolean recycling) throws IOException, AutomationException
Search will return an IFeatureCursor with all of the features that satisfy the attribute and/or spatial constraints as specified by an IQueryFilter reference. If a null value is passed to the filter parameter, the feature cursor will return 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. Features 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. In other words, if the feature retrieved by a search cursor has already been instantiated and is being referenced by the calling application, then a reference to the existing feature object is returned.
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.
Existing rows can be edited with either a search cursor or an update cursor. When using a search cursor, NextRow is called, returning a reference to a row. The row is edited, and IRow.Store is called. When using an update cursor, NextRow is called, the row is edited, and ICursor.UpdateRow is called with the row as a parameter. It is important to remember, when using an update cursor, do not call the Store method.
|
ArcMap |
Engine - Simple |
Engine - Complex |
Inside edit sessions |
Search Cursor |
Search Cursor |
Search Cursor |
Outside edit sessions |
Search Cursor |
Update Cursor |
Search Cursor |
When using cursors within an edit session, they should always be scoped to edit operations. In other words, a cursor should be created after an edit operation has begun and should not be used once that edit operation has been stopped or aborted.
search
in interface IFeatureClass
filter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)recycling
- The recycling (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IQueryFilter
public IFeatureCursor IFeatureClass_update(IQueryFilter filter, boolean recycling) throws IOException, AutomationException
IFeatureClass_update
in interface IFeatureClass
filter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)recycling
- The recycling (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFeatureCursor IFeatureClass_insert(boolean useBuffering) throws IOException, AutomationException
IFeatureClass_insert
in interface IFeatureClass
useBuffering
- The useBuffering (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void writeProperties(IStream piStream) throws IOException, AutomationException
writeProperties
in interface IDirectData
piStream
- A reference to a com.esri.arcgis.system.IStream (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void readProperties(IStream piStream) throws IOException, AutomationException
readProperties
in interface IDirectData
piStream
- A reference to a com.esri.arcgis.system.IStream (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void postMessage(IDataMessage piMsg) throws IOException, AutomationException
postMessage
in interface IDirectData
piMsg
- A reference to a com.esri.arcgis.geodatabaseextensions.IDataMessage (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IActionProcessor getPreActionProcessor() throws IOException, AutomationException
getPreActionProcessor
in interface IDirectData
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPreActionProcessorByRef(IActionProcessor ppiProcessor) throws IOException, AutomationException
setPreActionProcessorByRef
in interface IDirectData
ppiProcessor
- A reference to a com.esri.arcgis.carto.IActionProcessor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IActionCollection getPreActions() throws IOException, AutomationException
getPreActions
in interface IDirectData
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setPreActionsByRef(IActionCollection ppiActions) throws IOException, AutomationException
setPreActionsByRef
in interface IDirectData
ppiActions
- A reference to a com.esri.arcgis.carto.IActionCollection (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFeatureIDSet lastKnownOIDs(Object varStartingTime, Object varEndingTime) throws IOException, AutomationException
lastKnownOIDs
in interface ITemporalSearch
varStartingTime
- A Variant (in)varEndingTime
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ICursor lastKnownFeatures(Object varStartingTime, Object varEndingTime) throws IOException, AutomationException
lastKnownFeatures
in interface ITemporalSearch
varStartingTime
- A Variant (in)varEndingTime
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getCurrentZone() throws IOException, AutomationException
This property indicates the current time zone the temporal feature class’ temporal field is using.
getCurrentZone
in interface ITimeZone
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setCurrentZone(String pbstrCurrentZone) throws IOException, AutomationException
setCurrentZone
in interface ITimeZone
pbstrCurrentZone
- The pbstrCurrentZone (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public Object getZoneList() throws IOException, AutomationException
This property indicates a list of time zones that are pulled from the computer’s registry.
getZoneList
in interface ITimeZone
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isAdjustForDaylightSavings() throws IOException, AutomationException
isAdjustForDaylightSavings
in interface ITimeZone
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAdjustForDaylightSavings(boolean pVal) throws IOException, AutomationException
setAdjustForDaylightSavings
in interface ITimeZone
pVal
- The pVal (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getTimeZoneXML() throws IOException, AutomationException
getTimeZoneXML
in interface ITimeZone
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setTimeZoneXML(String pbstrXML) throws IOException, AutomationException
setTimeZoneXML
in interface ITimeZone
pbstrXML
- The pbstrXML (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isCanSelect() throws IOException, AutomationException
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.
isCanSelect
in interface ITableCapabilities
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IStringArray getExcludedTrackingEventIDs() throws IOException, AutomationException
getExcludedTrackingEventIDs
in interface IExcludedEventIDs
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setExcludedTrackingEventIDs(IStringArray pVal) throws IOException, AutomationException
setExcludedTrackingEventIDs
in interface IExcludedEventIDs
pVal
- A reference to a com.esri.arcgis.system.IStringArray (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getTrackCount() throws IOException, AutomationException
getTrackCount
in interface ITemporalFeatureClassStatistics
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getMessageRate() throws IOException, AutomationException
getMessageRate
in interface ITemporalFeatureClassStatistics
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getSampleSize() throws IOException, AutomationException
getSampleSize
in interface ITemporalFeatureClassStatistics
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setSampleSize(int plSampleSize) throws IOException, AutomationException
setSampleSize
in interface ITemporalFeatureClassStatistics
plSampleSize
- The plSampleSize (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public Object getTotalFeatureCount() throws IOException, AutomationException
getTotalFeatureCount
in interface ITemporalFeatureClassStatistics
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void resetFeatureCount() throws IOException, AutomationException
resetFeatureCount
in interface ITemporalFeatureClassStatistics
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void resetMessageRate() throws IOException, AutomationException
resetMessageRate
in interface ITemporalFeatureClassStatistics
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFIDSet getAllLockedFIDs() throws IOException, AutomationException
getAllLockedFIDs
in interface ILockedFeatureSearch
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ICursor searchAndLock(IQueryFilter piQueryFilter, boolean recycling) throws IOException, AutomationException
searchAndLock
in interface ILockedFeatureSearch
piQueryFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)recycling
- The recycling (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISelectionSet selectAndLock(IQueryFilter piQueryFilter, int selType, int selOption, IWorkspace piSelectionContainer) throws IOException, AutomationException
selectAndLock
in interface ILockedFeatureSearch
piQueryFilter
- 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)piSelectionContainer
- A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void unlockAllFeatures() throws IOException, AutomationException
unlockAllFeatures
in interface ILockedFeatureSearch
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interfaceSupportsErrorInfo(GUID riid) throws IOException, AutomationException
Indicates whether the interface supports IErrorInfo.
interfaceSupportsErrorInfo
in interface ISupportErrorInfo
riid
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getFirstTrackId() throws IOException, AutomationException
getFirstTrackId
in interface ITxEnumTrackId
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getNextTrackId() throws IOException, AutomationException
getNextTrackId
in interface ITxEnumTrackId
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String[] getTrackIds() throws IOException, AutomationException
getTrackIds
in interface ITxEnumTrackId
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISelectionSet getTrackFeatures(String trackId) throws IOException, AutomationException
getTrackFeatures
in interface ITxEnumTrackId
trackId
- The trackId (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITime getLastUpdateTime(String trackId) throws IOException, AutomationException
getLastUpdateTime
in interface ITxEnumTrackId
trackId
- The trackId (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryTrackTimeExtent(String trackId, ITime[] startTime, ITime[] endTime) throws IOException, AutomationException
queryTrackTimeExtent
in interface ITxEnumTrackId
trackId
- The trackId (in)startTime
- A reference to a com.esri.arcgis.system.ITime (out: use single element array)endTime
- A reference to a com.esri.arcgis.system.ITime (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |