com.esri.arcgis.geodatabase
Class ComplexJunctionFeature

java.lang.Object
  extended by com.esri.arcgis.geodatabase.ComplexJunctionFeature
All Implemented Interfaces:
IComplexJunctionFeature, IComplexNetworkFeature, IFeature, IFeatureBuffer, IFeatureChanges, IFeatureConnect, IFeatureDraw, IFeatureEdit, IFeatureEdit2, IFeatureEvents, IFeatureProject, IFeatureSimplify, IFeatureSimplify2, IFeatureSnap, IJunctionFeature, INetworkFeature, INetworkFeatureEvents, IObject, IRelatedObjectEvents, IRow, IRowBuffer, IRowChanges, IRowCompare, IRowEdit, IRowEvents, IRowSubtypes, IValidate, com.esri.arcgis.interop.RemoteObjRef, ISupportErrorInfo, Serializable

public class ComplexJunctionFeature
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IRow, IRowBuffer, IRowEvents, IRowSubtypes, IRowChanges, IRowCompare, IFeature, IFeatureBuffer, IFeatureEvents, IFeatureDraw, IFeatureChanges, IFeatureSimplify, IFeatureSimplify2, INetworkFeature, INetworkFeatureEvents, IJunctionFeature, IComplexJunctionFeature, IComplexNetworkFeature, IRowEdit, IFeatureEdit, IFeatureEdit2, IFeatureSnap, IFeatureConnect, IRelatedObjectEvents, IValidate, ISupportErrorInfo, IFeatureProject

Esri Complex junction geometric network feature.

Remarks

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as IFeatureClassExtension.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
ComplexJunctionFeature()
          Constructs a ComplexJunctionFeature using ArcGIS Engine.
ComplexJunctionFeature(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
ComplexJunctionFeature theComplexJunctionFeature = (ComplexJunctionFeature) obj;
 
Method Summary
 IDisplayFeedback beginMoveSet(ISet features, IPoint start)
          Prepares the set of features for a move operation.
 void connect()
          Connect the Feature to the geometrically coincident NetworkFeature.
 IEnumNetEID createNetworkElements()
          Create the necessary NetworkElements in the associated Logical Network.
 void delete()
          Deletes the row.
 void deleteSet(ISet rows)
          Deletes the set of rows.
 void disconnect()
          Disconnect the Feature from all connected NetworkFeatures.
 void draw(int drawPhase, IDisplay display, ISymbol symbol, boolean symbolInstalled, IGeometry geometry, int drawStyle)
          Draws the feature on the display.
 boolean equals(Object o)
          Compare this object with another
 IObjectClass esri_getClass()
          The Object Class for the row.
 int findEdgeEID(IPoint point)
          The EID associated with the EdgeElement at the specified point.
 int findJunctionEID(IPoint point)
          The EID associated with the JunctionElement at the specified point.
static String getClsid()
          getClsid.
 IFeatureElement getConnectionPoint(int connectionPointIndex)
          The specified connection point.
 IFeatureElement getConnectionPointByName(String connectionPointName)
          The specified named connection point.
 int getConnectionPointCount()
          The number of connection points associated with the Feature.
 String getConnectionPointName(int connectionPointIndex)
          The name of the specified connection point.
 int getEdgeElementCount()
          The number of edge elements associated with this Feature.
 IEdgeFeature getEdgeFeature(int connectionPointIndex, int index)
          The EdgeFeature associated with the specified index value and the indexed connection point.
 int getEdgeFeatureCount(int connectionPointIndex)
          The number of EdgeFeatures associated with the indexed connection point.
 IEnvelope getExtent()
          The extent of the feature.
 int getFeatureType()
          The type of the feature.
 IFields getFields()
          The fields Collection for this row buffer.
 int getFieldToEIDMapping(int fieldIndex)
          The EID associated with the specified field index.
 IGeometricNetwork getGeometricNetwork()
          The containing GeometricNetwork.
 IGeometry getGeometryForEdgeElement(int subID)
          The geometry corresponding to the element with the given subID.
 IGeometry getGeometryForJunctionElement(int subID)
          The geometry (point) corresponding to the junction with the given subID.
 IInvalidArea getInvalidArea()
          The area to be drawn.
 IFields getInvalidFields()
          Returns all invalid fields.
 IEnumRule getInvalidRules()
          The set of all invalid rules.
 IEnumRule getInvalidRulesByField(String fieldName)
          The set of all invalid rules for the specified field.
 int getJunctionElementCount()
          The number of junctions associated with this Feature.
 int getNetworkAncillaryRole()
          Programmatic update of the NetworkFeature.
 int getOID()
          The OID for the row.
 IGeometry getOriginalGeometryForJunctionElement(int subID)
          The geometry (point) corresponding to the junction with the given subID.
 IGeometry getOriginalShape()
          The original shape for the feature.
 Object getOriginalValue(int index)
          The value of the field at the specified index immediately after the last call to Store on the Row object.
 IGeometry getShape()
          A reference to the default shape for the feature.
 IGeometry getShapeCopy()
          A cloned copy of the default shape for the feature.
 int getSubtypeCode()
          The subtype for the row.
 ITable getTable()
          The Table for the row.
 int getTopologicalConfiguration()
          The configuration of this Feature.
 Object getValue(int index)
          The value of the field with the specified index.
 int hashCode()
          the hashcode for this object
 void initDefaultValues()
          The default values of the row.
 void initShape()
          Initialize the shape.
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 boolean isEnabled()
          Indicates whether the NetworkFeature is open or not (i.e., closed).
 boolean isEnabledByIndex(int edgeIndex)
          Indicates whether the NetworkFeature is open or not (i.e., closed).
 boolean isEqual(IRow otherRow)
          Indicates if the rows (which may be from two different versions) are the same (oid + values).
 boolean isHasOID()
          Indicates if the row has an OID.
 boolean isShapeChanged()
          Indicates if the shape has changed.
 boolean isSimpleGeometry(IGeometry geometry, int[] reason)
          Returns true if the input geometry is simple according to the rules appropriate for this feature.
 boolean isValueChanged(int index)
          Indicates whether the value of the field at the specified index has changed since the last call to Store on the Row object.
 void moveSet(ISet features, ILine moveVector)
          Moves the set of features through a distance and direction specified by moveVector.
 void onChanged()
          An after event that is fired when a custom object is changed.
 void onConnect()
          Preparation for connecting a NetworkFeature to another.
 void onDelete()
          An after event that is fired when a custom object is deleted.
 void onDisconnect()
          Preparation for disconnecting the NetworkFeature.
 void onInitialize()
          An after event that is fired when a custom object is initialized.
 void onMerge()
          An after event that is fired when Features have been merged, on each deleted input Feature.
 void onNew()
          An after event that is fired when a custom object is Stored for the first time.
 void onSplit()
          An after event that is fired when a Feature is split, on the deleted input Feature.
 void onValidate()
          An after event that is fired when a custom object is validated.
 void project(ISpatialReference outputSR)
          Project the feature geometry to the provided spatial reference.
 void relatedObjectChanged(IRelationshipClass relationshipClass, IObject objectThatChanged)
          Notifies this object that a related object changed.
 void relatedObjectMoved(IRelationshipClass relationshipClass, IObject objectThatChanged, ILine moveVector)
          Notifies this object that a related object moved.
 void relatedObjectRotated(IRelationshipClass relationshipClass, IObject objectThatChanged, IPoint origin, double angle)
          Notifies this object that a related object rotated.
 void relatedObjectSetMoved(IRelationshipClass relationshipClass, ISet objectsThatNeedToChange, ISet objectsThatChanged, ILine moveVector)
          Notifies this object that a set of objects with relationships to the input set of objects moved.
 void relatedObjectSetRotated(IRelationshipClass relationshipClass, ISet objectsThatNeedToChange, ISet objectsThatChanged, IPoint origin, double angle)
          Notifies this object that a set of objects with relationships to the input set of objects rotated.
 void rotateSet(ISet features, IPoint origin, double angle)
          Rotates the set of features according to the specified origin and angle.
 void setEnabled(boolean isEnabled)
          Indicates whether the NetworkFeature is open or not (i.e., closed).
 void setEnabledByIndex(int edgeIndex, boolean isEnabled)
          Indicates whether the NetworkFeature is open or not (i.e., closed).
 void setInvalidAreaByRef(IInvalidArea invalidArea)
          The area to be drawn.
 void setJunctionElementCount(int numJunctions)
          The number of junctions associated with this Feature.
 void setNetworkAncillaryRole(int role)
          Programmatic update of the NetworkFeature.
 void setRotationAngle(double rhs1)
          The rotation angle of this Feature.
 void setShapeByRef(IGeometry shape)
          A reference to the default shape for the feature.
 void setSubtypeCode(int subtypeCode)
          The subtype for the row.
 void setTopologicalConfiguration(int configuration)
          The configuration of this Feature.
 void setValue(int index, Object value)
          The value of the field with the specified index.
 void simplifyGeometry(IGeometry geometry)
          Simplifies the input geometry using the rules appropriate for this feature.
 boolean snap(IPoint point, double tolerance)
          Snap the feature based on the arguments.
 ISet split(IGeometry point)
          Split the feature.
 void splitAttributes(IFeature baseFeature)
          Split the feature attributes.
 ISet splitWithUpdate(IGeometry geometry)
          Split the feature by updating the split feature and creating new feature(s) for the smaller portion.
 void store()
          Stores the row.
 void update(INetworkFeature callingFeature, IAffineTransformation2D transformation, ISet rigidEdges, ITransformGroup group)
          Programmatic update of the NetworkFeature.
 boolean validate(String[] errorMessage)
          Validates the row.
 
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

ComplexJunctionFeature

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

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

ComplexJunctionFeature

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

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

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

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

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

isHasOID

public boolean isHasOID()
                 throws IOException,
                        AutomationException
Indicates if the row has an OID.

Remarks

If the table has been registered with the geodatabase it will have unique Object ID, automatically created by the register tool, and the HasOID property will be set to True. Tables not registered with the geodatabase will not have an OID column and the HasOID property will be set to False. See the IClassSchemaEdit::RegisterAsObjectClass method for more information.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getOID

public int getOID()
           throws IOException,
                  AutomationException
The OID for the row.

Description

Gets the OID for a row in a table that has a unique Object ID, such as tables registered with the geodatabase.

Example:

if (pRow.isHasOID()) {

        System.out.print(pRow.getOID());

      }

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getTable

public ITable getTable()
                throws IOException,
                       AutomationException
The Table for the row.

Description

Returns a pointer to the table the row belongs to.

Example:

ITable pTable;

pTable = pRow.getTable();


Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

store

public void store()
           throws IOException,
                  AutomationException
Stores the row.

Remarks

The Store method is called by an application once it has modified the values of a Row. Once Store is called on a Row object, all subsequent queries within the same edit session, using the Geodatabase API, will reflect the modified state of the Row object.

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 Store method triggers the following actions:

- The IRowEvents::OnChanged is called for the row being stored. The OnNew is called if this is a newly created row being stored for the first time. A custom row object can implement the OnChanged method and take some special action when it is called - for example; update a special column in the row

- The IRelatedObjectEvents::RelatedObjectChanged method is called for related objects in a related object class if the table for this row is an object class that participates in relationship classes with notification

Store should not be used for batch operations, such as updates or inserts. For performing a number of inserts or updates using cursors, refer to the ITable::Insert, ITable::Update, ITable::UpdateSearchedRows , IFeatureClass::Update andIFeatureClass::Insert. If an insert or update cursor is used on non-simple features (such as network features), the cursor will revert to using Store.

It is not necessary to explicitly call Connect on network features, this is handled polymorphically when Store is called on the feature. This is also the case with features in a Topology, Dirty Area creation is handled internally when Store is called.

Store should not be called inside of edit events, such as OnCreateFeature, OnChangeFeature or OnDeleteFeature. Even if you are modifying the geometry or other field values, Store will be called once the event is complete.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

delete

public void delete()
            throws IOException,
                   AutomationException
Deletes the row.

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getValue

public Object getValue(int index)
                throws IOException,
                       AutomationException
The value of the field with the specified index.

Product Availability

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

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

setValue

public void setValue(int index,
                     Object value)
              throws IOException,
                     AutomationException
The value of the field with the specified index.

Product Availability

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

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

getFields

public IFields getFields()
                  throws IOException,
                         AutomationException
The fields Collection for this row buffer.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onChanged

public void onChanged()
               throws IOException,
                      AutomationException
An after event that is fired when a custom object is changed.

Remarks

The OnChanged method is called by the geodatabase when an application program calls Store on an existing Row object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onDelete

public void onDelete()
              throws IOException,
                     AutomationException
An after event that is fired when a custom object is deleted.

Remarks

The OnDelete method is called by the geodatabase when an application program calls Delete on a Row object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onInitialize

public void onInitialize()
                  throws IOException,
                         AutomationException
An after event that is fired when a custom object is initialized.

Remarks

The OnInitialize method is called by the geodatabase after hydrating a cocreated Row object with its state (its set of field values) but before handing the Row to an application program. This is an opportunity for the Row object to initialize further state and derived member variables.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onNew

public void onNew()
           throws IOException,
                  AutomationException
An after event that is fired when a custom object is Stored for the first time.

Remarks

The OnNew method is called by the geodatabase when an application program calls Store on a newly created Row object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onValidate

public void onValidate()
                throws IOException,
                       AutomationException
An after event that is fired when a custom object is validated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSubtypeCode

public int getSubtypeCode()
                   throws IOException,
                          AutomationException
The subtype for the row.

Remarks

When creating new objects within ArcMap, the default subtype and any default values are automatically set. When objects are created programmatically, the default subtype and default values are not automatically set. The subtype code of the feature can be specified with the SubtypeCode property.

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setSubtypeCode

public void setSubtypeCode(int subtypeCode)
                    throws IOException,
                           AutomationException
The subtype for the row.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

initDefaultValues

public void initDefaultValues()
                       throws IOException,
                              AutomationException
The default values of the row.

Remarks

When creating new objects within ArcMap, the default subtype and any default values are automatically set. When objects are created programmatically, the default subtype and default values are not automatically set. InitDefaultValues will populate fields with the specified default values.

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isValueChanged

public boolean isValueChanged(int index)
                       throws IOException,
                              AutomationException
Indicates whether the value of the field at the specified index has changed since the last call to Store on the Row object.

Product Availability

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

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

getOriginalValue

public Object getOriginalValue(int index)
                        throws IOException,
                               AutomationException
The value of the field at the specified index immediately after the last call to Store on the Row object.

Product Availability

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

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

isEqual

public boolean isEqual(IRow otherRow)
                throws IOException,
                       AutomationException
Indicates if the rows (which may be from two different versions) are the same (oid + values).

Product Availability

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

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

getShapeCopy

public IGeometry getShapeCopy()
                       throws IOException,
                              AutomationException
A cloned copy of the default shape for the feature.

Remarks

The ShapeCopy property is a cloned copy of the feature’s Shape. When modifying the geometry of a feature or a set of features, use the ShapeCopy property to obtain a copy of the feature's geometry, perform the modification on the geometries, then apply the modifications by setting the geometry to the Shape property.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getShape

public IGeometry getShape()
                   throws IOException,
                          AutomationException
A reference to the default shape for the feature.

Remarks

The basic process to change the shape of a feature is:

1) Get the feature's existing geometry through IFeature.ShapeCopy or create a new geometry
2) Modify the geometry
3) Set the feature's geometry using IFeature.Shape
4) Store the feature

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getShape in interface IFeature
Specified by:
getShape in interface IFeatureBuffer
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setShapeByRef

public void setShapeByRef(IGeometry shape)
                   throws IOException,
                          AutomationException
A reference to the default shape for the feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setShapeByRef in interface IFeature
Specified by:
setShapeByRef in interface IFeatureBuffer
Parameters:
shape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getExtent

public IEnvelope getExtent()
                    throws IOException,
                           AutomationException
The extent of the feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFeatureType

public int getFeatureType()
                   throws IOException,
                          AutomationException
The type of the feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

esri_getClass

public IObjectClass esri_getClass()
                           throws IOException,
                                  AutomationException
The Object Class for the row.

Product Availability

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

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

initShape

public void initShape()
               throws IOException,
                      AutomationException
Initialize the shape.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onSplit

public void onSplit()
             throws IOException,
                    AutomationException
An after event that is fired when a Feature is split, on the deleted input Feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onMerge

public void onMerge()
             throws IOException,
                    AutomationException
An after event that is fired when Features have been merged, on each deleted input Feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

draw

public void draw(int drawPhase,
                 IDisplay display,
                 ISymbol symbol,
                 boolean symbolInstalled,
                 IGeometry geometry,
                 int drawStyle)
          throws IOException,
                 AutomationException
Draws the feature on the display.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
draw in interface IFeatureDraw
Parameters:
drawPhase - A com.esri.arcgis.system.esriDrawPhase constant (in)
display - A reference to a com.esri.arcgis.display.IDisplay (in)
symbol - A reference to a com.esri.arcgis.display.ISymbol (in)
symbolInstalled - The symbolInstalled (in)
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
drawStyle - A com.esri.arcgis.geodatabase.esriDrawStyle constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setInvalidAreaByRef

public void setInvalidAreaByRef(IInvalidArea invalidArea)
                         throws IOException,
                                AutomationException
The area to be drawn.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setInvalidAreaByRef in interface IFeatureDraw
Parameters:
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getInvalidArea

public IInvalidArea getInvalidArea()
                            throws IOException,
                                   AutomationException
The area to be drawn.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isShapeChanged

public boolean isShapeChanged()
                       throws IOException,
                              AutomationException
Indicates if the shape has changed.

Remarks

IFeatureChanges::ShapeChanged can be used to determine if a feature's geometry has changed. If the feature's geometry has been changed, but IRow::Store has not yet been called, ShapeChanged will return True. Once Store is called, ShapeChanged will return False. ShapeChanged can also be used in an event triggered by Store, such as IRowEvents::OnChanged. When used in this manner, ShapeChanged will return True if the feature's shape has changed. Once Store is complete, ShapeChanged will return false.

When working with Network Features, IFeatureChanges.ShapeChanged will return true in all instances where the geometry has changed and false for any attribute or connectivity update.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getOriginalShape

public IGeometry getOriginalShape()
                           throws IOException,
                                  AutomationException
The original shape for the feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

simplifyGeometry

public void simplifyGeometry(IGeometry geometry)
                      throws IOException,
                             AutomationException
Simplifies the input geometry using the rules appropriate for this feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
simplifyGeometry in interface IFeatureSimplify
Parameters:
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isSimpleGeometry

public boolean isSimpleGeometry(IGeometry geometry,
                                int[] reason)
                         throws IOException,
                                AutomationException
Returns true if the input geometry is simple according to the rules appropriate for this feature.

Product Availability

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

Specified by:
isSimpleGeometry in interface IFeatureSimplify2
Parameters:
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
reason - A com.esri.arcgis.geometry.esriNonSimpleReasonEnum constant (out: use single element array)
Returns:
The isSimpleGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getGeometricNetwork

public IGeometricNetwork getGeometricNetwork()
                                      throws IOException,
                                             AutomationException
The containing GeometricNetwork.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isEnabled

public boolean isEnabled()
                  throws IOException,
                         AutomationException
Indicates whether the NetworkFeature is open or not (i.e., closed).

Remarks

The Enabled property provides access the enabled state of network features. The enabled state of network feature governs whether the feature is enabled or disabled for tracing. By default, all network features are enabled when the network is built or when first created.

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setEnabled

public void setEnabled(boolean isEnabled)
                throws IOException,
                       AutomationException
Indicates whether the NetworkFeature is open or not (i.e., closed).

Example:

//Assume you already have a reference to IFeature called pFeature
INetworkFeature pNetworkFeature = pFeature;

if(pNetworkFeature != null){

if(pNetworkFeature.isEnabled )
pNetworkFeature.setEnabled (false);
else
pNetworkFeature.setEnabled (true);
}
pFeature.store();

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

connect

public void connect()
             throws IOException,
                    AutomationException
Connect the Feature to the geometrically coincident NetworkFeature.

Remarks

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

Looping through a collection or enumeration of junctions and calling Connect on each one to establish connectivity with a complex edge feature is an expensive operation. Calling IComplexEdgeFeature::ConnectatIntermediateVertices once on the complex edge feature will result in increased performance with the same resultant connectivity.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
connect in interface INetworkFeature
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IComplexEdgeFeature.connectAtIntermediateVertices()

disconnect

public void disconnect()
                throws IOException,
                       AutomationException
Disconnect the Feature from all connected NetworkFeatures.

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onDisconnect

public void onDisconnect()
                  throws IOException,
                         AutomationException
Preparation for disconnecting the NetworkFeature.

Remarks

OnDisconnect is not currently implemented.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

createNetworkElements

public IEnumNetEID createNetworkElements()
                                  throws IOException,
                                         AutomationException
Create the necessary NetworkElements in the associated Logical Network.

Remarks

Every network feature in a geometric network has a corresponding network element in the logical network. CreateNetworkElements is called by the geometric network when network features are created. It is not neccessary for developers to call this method after creating new network features.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

onConnect

public void onConnect()
               throws IOException,
                      AutomationException
Preparation for connecting a NetworkFeature to another.

Remarks

OnConnect is not currently implemented.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getGeometryForJunctionElement

public IGeometry getGeometryForJunctionElement(int subID)
                                        throws IOException,
                                               AutomationException
The geometry (point) corresponding to the junction with the given subID.

Product Availability

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

Specified by:
getGeometryForJunctionElement in interface IJunctionFeature
Parameters:
subID - The subID (in)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOriginalGeometryForJunctionElement

public IGeometry getOriginalGeometryForJunctionElement(int subID)
                                                throws IOException,
                                                       AutomationException
The geometry (point) corresponding to the junction with the given subID.

Product Availability

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

Specified by:
getOriginalGeometryForJunctionElement in interface IJunctionFeature
Parameters:
subID - The subID (in)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

update

public void update(INetworkFeature callingFeature,
                   IAffineTransformation2D transformation,
                   ISet rigidEdges,
                   ITransformGroup group)
            throws IOException,
                   AutomationException
Programmatic update of the NetworkFeature.

Remarks

The Update method is reserved for internal use during the process of updating the shape and storing the result. There is no need for clients to directly call this method.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
update in interface IJunctionFeature
Parameters:
callingFeature - A reference to a com.esri.arcgis.geodatabase.INetworkFeature (in)
transformation - A reference to a com.esri.arcgis.geometry.IAffineTransformation2D (in)
rigidEdges - A reference to a com.esri.arcgis.system.ISet (in)
group - A reference to a com.esri.arcgis.geodatabase.ITransformGroup (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNetworkAncillaryRole

public int getNetworkAncillaryRole()
                            throws IOException,
                                   AutomationException
Programmatic update of the NetworkFeature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setNetworkAncillaryRole

public void setNetworkAncillaryRole(int role)
                             throws IOException,
                                    AutomationException
Programmatic update of the NetworkFeature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setNetworkAncillaryRole in interface IJunctionFeature
Parameters:
role - A com.esri.arcgis.geodatabase.esriNetworkFeatureAncillaryRole constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getGeometryForEdgeElement

public IGeometry getGeometryForEdgeElement(int subID)
                                    throws IOException,
                                           AutomationException
The geometry corresponding to the element with the given subID.

Product Availability

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

Specified by:
getGeometryForEdgeElement in interface IComplexJunctionFeature
Parameters:
subID - The subID (in)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEdgeFeatureCount

public int getEdgeFeatureCount(int connectionPointIndex)
                        throws IOException,
                               AutomationException
The number of EdgeFeatures associated with the indexed connection point.

Product Availability

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

Specified by:
getEdgeFeatureCount in interface IComplexJunctionFeature
Parameters:
connectionPointIndex - The connectionPointIndex (in)
Returns:
The numFeatures
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEdgeFeature

public IEdgeFeature getEdgeFeature(int connectionPointIndex,
                                   int index)
                            throws IOException,
                                   AutomationException
The EdgeFeature associated with the specified index value and the indexed connection point.

Product Availability

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

Specified by:
getEdgeFeature in interface IComplexJunctionFeature
Parameters:
connectionPointIndex - The connectionPointIndex (in)
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEdgeFeature
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTopologicalConfiguration

public int getTopologicalConfiguration()
                                throws IOException,
                                       AutomationException
The configuration of this Feature.

Remarks

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as class extensions.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setTopologicalConfiguration

public void setTopologicalConfiguration(int configuration)
                                 throws IOException,
                                        AutomationException
The configuration of this Feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setTopologicalConfiguration in interface IComplexJunctionFeature
Parameters:
configuration - A com.esri.arcgis.geodatabase.esriTopoConfiguration constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRotationAngle

public void setRotationAngle(double rhs1)
                      throws IOException,
                             AutomationException
The rotation angle of this Feature.

Remarks

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as class extensions.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFieldToEIDMapping

public int getFieldToEIDMapping(int fieldIndex)
                         throws IOException,
                                AutomationException
The EID associated with the specified field index.

Product Availability

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

Specified by:
getFieldToEIDMapping in interface IComplexJunctionFeature
Parameters:
fieldIndex - The fieldIndex (in)
Returns:
The eID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getJunctionElementCount

public int getJunctionElementCount()
                            throws IOException,
                                   AutomationException
The number of junctions associated with this Feature.

Remarks

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as class extensions.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setJunctionElementCount

public void setJunctionElementCount(int numJunctions)
                             throws IOException,
                                    AutomationException
The number of junctions associated with this Feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

findJunctionEID

public int findJunctionEID(IPoint point)
                    throws IOException,
                           AutomationException
The EID associated with the JunctionElement at the specified point.

Remarks

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as class extensions.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
findJunctionEID in interface IComplexJunctionFeature
Parameters:
point - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The junctionEID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEdgeElementCount

public int getEdgeElementCount()
                        throws IOException,
                               AutomationException
The number of edge elements associated with this Feature.

Remarks

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as class extensions.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

findEdgeEID

public int findEdgeEID(IPoint point)
                throws IOException,
                       AutomationException
The EID associated with the EdgeElement at the specified point.

Remarks

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as class extensions.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
findEdgeEID in interface IComplexNetworkFeature
Parameters:
point - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The edgeEID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEnabledByIndex

public boolean isEnabledByIndex(int edgeIndex)
                         throws IOException,
                                AutomationException
Indicates whether the NetworkFeature is open or not (i.e., closed).

Product Availability

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

Specified by:
isEnabledByIndex in interface IComplexNetworkFeature
Parameters:
edgeIndex - The edgeIndex (in)
Returns:
The isEnabled
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setEnabledByIndex

public void setEnabledByIndex(int edgeIndex,
                              boolean isEnabled)
                       throws IOException,
                              AutomationException
Indicates whether the NetworkFeature is open or not (i.e., closed).

Product Availability

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

Specified by:
setEnabledByIndex in interface IComplexNetworkFeature
Parameters:
edgeIndex - The edgeIndex (in)
isEnabled - The isEnabled (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteSet

public void deleteSet(ISet rows)
               throws IOException,
                      AutomationException
Deletes the set of rows.

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

beginMoveSet

public IDisplayFeedback beginMoveSet(ISet features,
                                     IPoint start)
                              throws IOException,
                                     AutomationException
Prepares the set of features for a move operation.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
beginMoveSet in interface IFeatureEdit
Parameters:
features - A reference to a com.esri.arcgis.system.ISet (in)
start - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
A reference to a com.esri.arcgis.display.IDisplayFeedback
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

moveSet

public void moveSet(ISet features,
                    ILine moveVector)
             throws IOException,
                    AutomationException
Moves the set of features through a distance and direction specified by moveVector.

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
moveSet in interface IFeatureEdit
Parameters:
features - A reference to a com.esri.arcgis.system.ISet (in)
moveVector - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rotateSet

public void rotateSet(ISet features,
                      IPoint origin,
                      double angle)
               throws IOException,
                      AutomationException
Rotates the set of features according to the specified origin and angle.

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
rotateSet in interface IFeatureEdit
Parameters:
features - A reference to a com.esri.arcgis.system.ISet (in)
origin - A reference to a com.esri.arcgis.geometry.IPoint (in)
angle - The angle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

split

public ISet split(IGeometry point)
           throws IOException,
                  AutomationException
Split the feature.

Remarks

Split divides polylines by points or polygons by polylines, other kinds of split geometries are not supported (see IGeometry::GeometryType property for an enumeration of geometry types). The new features are automatically stored and the old features deleted. When a feature is split, the feature is deleted and two new features are created. The ObjectID of the deleted feature is not reused, the two new features will have new ObjectID values. You can define a policy on how the other attribute values of the new features are populated; this can be done with ArcCatalog or by using the Domain and Attribute Rule objects.

It is not necessary to call SplitAttributes after calling Split, this is done automatically.

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
split in interface IFeatureEdit
Parameters:
point - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Returns:
A reference to a com.esri.arcgis.system.ISet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

splitAttributes

public void splitAttributes(IFeature baseFeature)
                     throws IOException,
                            AutomationException
Split the feature attributes.

Remarks

This method is intended for internal use only.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
splitAttributes in interface IFeatureEdit
Parameters:
baseFeature - A reference to a com.esri.arcgis.geodatabase.IFeature (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

splitWithUpdate

public ISet splitWithUpdate(IGeometry geometry)
                     throws IOException,
                            AutomationException
Split the feature by updating the split feature and creating new feature(s) for the smaller portion.

Remarks

SplitWithUpdate divides polylines by points or polygons by polylines, other kinds of split geometries are not supported (see IGeometry::GeometryType property for an enumeration of geometry types). Unlike the IFeatureEdit::Split method, SplitWithUpdate does not delete the original feature and insert two new features. When a feature is split, its geometry is modified and a new feature, with a new ObjectID, is inserted comprised of the remaining geometry. The geometry of the original feature will be modified to represent the largest section of the split geometry. For example, if a polyline is split at 60% along its length, the original feature's geometry will be modified to represent the 60% section and a new feature will be created with a geometry representing the remaining 40%.

You can define a policy on how the other attribute values of the new features are populated; this can be done with ArcCatalog or by using the Domain and Attribute Rule objects.

It is not necessary to call SplitAttributes after calling Split, this is done automatically.

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.

Product Availability

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

Specified by:
splitWithUpdate in interface IFeatureEdit2
Parameters:
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Returns:
A reference to a com.esri.arcgis.system.ISet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

snap

public boolean snap(IPoint point,
                    double tolerance)
             throws IOException,
                    AutomationException
Snap the feature based on the arguments.

Remarks

The Snap method in the IFeatureSnap interface is not implemented by the ComplexJunctionFeature class that the custom feature must aggregate. ArcMap will call this method on all complex junctions within snapping distance of the cursor if custom feature snapping is selected in the Snapping dialog box.


The custom feature is responsible for returning a Boolean value indicating whether or not the cursor can snap to one of the connection points. If the cursor can snap (the IPoint is within the tolerance distance of a connection point), then the inbound IPoint is modified to match the location of the connection point.

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as IFeatureClassExtension.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
snap in interface IFeatureSnap
Parameters:
point - A reference to a com.esri.arcgis.geometry.IPoint (in)
tolerance - The tolerance (in)
Returns:
The snapped
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
ISnapEnvironment

getConnectionPointCount

public int getConnectionPointCount()
                            throws IOException,
                                   AutomationException
The number of connection points associated with the Feature.

Remarks

It is recommended that developers do not use Complex Junctions in their data modeling solutions. Developers can leverage existing Geodatabase components in order to implement partial functionality, such as IFeatureClassExtension.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getConnectionPoint

public IFeatureElement getConnectionPoint(int connectionPointIndex)
                                   throws IOException,
                                          AutomationException
The specified connection point.

Product Availability

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

Specified by:
getConnectionPoint in interface IFeatureConnect
Parameters:
connectionPointIndex - The connectionPointIndex (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureElement
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getConnectionPointName

public String getConnectionPointName(int connectionPointIndex)
                              throws IOException,
                                     AutomationException
The name of the specified connection point.

Product Availability

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

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

getConnectionPointByName

public IFeatureElement getConnectionPointByName(String connectionPointName)
                                         throws IOException,
                                                AutomationException
The specified named connection point.

Product Availability

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

Specified by:
getConnectionPointByName in interface IFeatureConnect
Parameters:
connectionPointName - The connectionPointName (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureElement
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

relatedObjectChanged

public void relatedObjectChanged(IRelationshipClass relationshipClass,
                                 IObject objectThatChanged)
                          throws IOException,
                                 AutomationException
Notifies this object that a related object changed.

Remarks

The RelatedObjectChanged method is called when a related object has changed.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
relatedObjectChanged in interface IRelatedObjectEvents
Parameters:
relationshipClass - A reference to a com.esri.arcgis.geodatabase.IRelationshipClass (in)
objectThatChanged - A reference to a com.esri.arcgis.geodatabase.IObject (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

relatedObjectMoved

public void relatedObjectMoved(IRelationshipClass relationshipClass,
                               IObject objectThatChanged,
                               ILine moveVector)
                        throws IOException,
                               AutomationException
Notifies this object that a related object moved.

Remarks

This method is currently reserved and implementations should not define any behavior.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
relatedObjectMoved in interface IRelatedObjectEvents
Parameters:
relationshipClass - A reference to a com.esri.arcgis.geodatabase.IRelationshipClass (in)
objectThatChanged - A reference to a com.esri.arcgis.geodatabase.IObject (in)
moveVector - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

relatedObjectSetMoved

public void relatedObjectSetMoved(IRelationshipClass relationshipClass,
                                  ISet objectsThatNeedToChange,
                                  ISet objectsThatChanged,
                                  ILine moveVector)
                           throws IOException,
                                  AutomationException
Notifies this object that a set of objects with relationships to the input set of objects moved.

Remarks

The RelatedObjectSetMoved method is called when a set of objects in the related object class has moved. The objectsThatChanged argument represents the set of objects in the related object classes that have moved.

The objectsThatNeedToChange argument is a set of objects in this object's class that are related to the objects that moved. The object executing this method will itself be a member of the objectsThatNeedToChange set.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
relatedObjectSetMoved in interface IRelatedObjectEvents
Parameters:
relationshipClass - A reference to a com.esri.arcgis.geodatabase.IRelationshipClass (in)
objectsThatNeedToChange - A reference to a com.esri.arcgis.system.ISet (in)
objectsThatChanged - A reference to a com.esri.arcgis.system.ISet (in)
moveVector - A reference to a com.esri.arcgis.geometry.ILine (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

relatedObjectRotated

public void relatedObjectRotated(IRelationshipClass relationshipClass,
                                 IObject objectThatChanged,
                                 IPoint origin,
                                 double angle)
                          throws IOException,
                                 AutomationException
Notifies this object that a related object rotated.

Remarks

This method is currently reserved and implementations should not define any behavior.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
relatedObjectRotated in interface IRelatedObjectEvents
Parameters:
relationshipClass - A reference to a com.esri.arcgis.geodatabase.IRelationshipClass (in)
objectThatChanged - A reference to a com.esri.arcgis.geodatabase.IObject (in)
origin - A reference to a com.esri.arcgis.geometry.IPoint (in)
angle - The angle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

relatedObjectSetRotated

public void relatedObjectSetRotated(IRelationshipClass relationshipClass,
                                    ISet objectsThatNeedToChange,
                                    ISet objectsThatChanged,
                                    IPoint origin,
                                    double angle)
                             throws IOException,
                                    AutomationException
Notifies this object that a set of objects with relationships to the input set of objects rotated.

Remarks

The RelatedObjectSetRotated method is called when a set of objects in the related object class has moved. Its arguments are similar to the arguments for RelatedObjectSetMoved.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
relatedObjectSetRotated in interface IRelatedObjectEvents
Parameters:
relationshipClass - A reference to a com.esri.arcgis.geodatabase.IRelationshipClass (in)
objectsThatNeedToChange - A reference to a com.esri.arcgis.system.ISet (in)
objectsThatChanged - A reference to a com.esri.arcgis.system.ISet (in)
origin - A reference to a com.esri.arcgis.geometry.IPoint (in)
angle - The angle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getInvalidFields

public IFields getInvalidFields()
                         throws IOException,
                                AutomationException
Returns all invalid fields.

Description

The GetInvalidFields method returns a field set containing the row's invalid fields.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getInvalidRules

public IEnumRule getInvalidRules()
                          throws IOException,
                                 AutomationException
The set of all invalid rules.

Description

The GetInvalidRules method returns an enumerator of rules that are currently violated by the row.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getInvalidRulesByField

public IEnumRule getInvalidRulesByField(String fieldName)
                                 throws IOException,
                                        AutomationException
The set of all invalid rules for the specified field.

Description

The GetInvalidRulesByField method returns an enumerator of rules violated by the specified field of the row.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getInvalidRulesByField in interface IValidate
Parameters:
fieldName - The fieldName (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumRule
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

validate

public boolean validate(String[] errorMessage)
                 throws IOException,
                        AutomationException
Validates the row.

Description

The Validate method indicates whether the row is violating any of its class's rules. A return value of true indicates the row is valid, while a return value of false indicates the row is violating one or more rules.

Remarks

Validate on a row occurs in five steps:

  1. Validate the subtype

  2. Validate the attribute rules

  3. Validate the network connectivity rules (if network feature)

  4. Validate the relationship rules

  5. Perform custom validation (using optional class extension)

The validate process stops once a row is found invalid. For example, if a network feature violates an attribute rule, the validation process stops and the feature's network connectivity rules are not evaluated until the attribute rule violation is corrected.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
validate in interface IValidate
Parameters:
errorMessage - The errorMessage (out: use single element array)
Returns:
The isValid
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interfaceSupportsErrorInfo

public void interfaceSupportsErrorInfo(GUID riid)
                                throws IOException,
                                       AutomationException
interfaceSupportsErrorInfo

Description

Indicates whether the interface supports IErrorInfo.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
interfaceSupportsErrorInfo in interface ISupportErrorInfo
Parameters:
riid - A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

project

public void project(ISpatialReference outputSR)
             throws IOException,
                    AutomationException
Project the feature geometry to the provided spatial reference.

Remarks

Projects the feature from the current spatial reference to the output spatial reference.

Product Availability

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

Specified by:
project in interface IFeatureProject
Parameters:
outputSR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.