com.esri.arcgis.geodatabase
Class GeometricNetwork

java.lang.Object
  extended by com.esri.arcgis.geodatabase.GeometricNetwork
All Implemented Interfaces:
IDataset, IDatasetEdit, IFeatureClassContainer, IGeoDataset, IGeometricNetwork, IGeometricNetworkConnectivity, IGeometricNetworkConnectivity2, IGeometricNetworkErrorDetection, IGeometricNetworkReconcileProperties, IGraph, IMetadata, IMetadataEdit, INativeTypeInfo, ISchemaLock, com.esri.arcgis.interop.RemoteObjRef, ISupportErrorInfo, Serializable

public class GeometricNetwork
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IDataset, IDatasetEdit, IGeoDataset, INativeTypeInfo, ISchemaLock, IFeatureClassContainer, IGeometricNetwork, IGeometricNetworkErrorDetection, IGeometricNetworkConnectivity2, IGeometricNetworkReconcileProperties, IMetadata, IMetadataEdit, ISupportErrorInfo

ESRI Geometric Network object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
GeometricNetwork(Object obj)
          Construct a GeometricNetwork using a reference to such an object returned from ArcGIS Engine or Server.
 
Method Summary
 void add(IFeature newFeature)
          Adds the preexisting Feature to the graph.
 void addFeatureClass(IFeatureClass featureClass, String enabledFieldName, int role, String ancillaryRoleFieldName)
          Add the FeatureClass to this graph.
 void addJunctionWithSubsumption(ISimpleJunctionFeature junction, int junctionEID, ISimpleJunctionFeature subsumedJunction)
          Add a new junction feature to the network by replacing existing junction.
 void addRule(IConnectivityRule rule)
          Adds the constraint to the set of connectivity rules.
 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.
 void changeSchemaLock(int schemaLock)
          Changes a schema lock.
 void checkAndRepairConnectivity(boolean checkOnly, String logFilePath, ISet[] errorSelectionSets, boolean[] hasInternalInconsistencies, IRepairConnectivityProgress repairConnectivityProgress)
          Checks and optionally repairs connectivity.
 IDataset copy(String copyName, IWorkspace copyWorkspace)
          Copies this dataset to a new dataset with the specified name.
 void createErrorTable(String name, ITable[] errorTable)
          Creates a non-versioned table that can be used to persist error information.
 ISimpleJunctionFeature createOrphanFeature(IPoint location, int[] orphanEID)
          Create an orphan JunctionFeature.
 ISet createSelectionSetFromErrorTable()
          Returns a set of selection sets of the features in the geometric network Error Table.
 void delete()
          Deletes this dataset.
 void deleteNetworkElements(ISet selectionSets)
          Deletes the network elements associated with the specified network features.
 void deleteRule(IConnectivityRule rule)
          Removes the rule from the set of rules.
 void deleteSet(ISet featuresToDelete)
          Removes the set of Feature from the graph.
 void detectNetworkErrors(int errorType, IEnvelope areaOfInterest, ISet selectionSets, ISet[] problemSelectionSets)
          The features in the geometric network with connectivity problems.
 boolean equals(Object o)
          Compare this object with another
 IFeatureClass esri_getClass(int classIndex)
          The FeatureClass associated with the specified index value.
 void establishFlowDirection()
          Establish the flow direction in the LogicalNetwork.
 String getBrowseName()
          The browse name of the dataset.
 String getCategory()
          The category of the dataset.
 IFeatureClass getClassByID(int iD)
          The FeatureClass with the specified ID.
 IFeatureClass getClassByName(String name)
          The FeatureClass with the specified name.
 int getClassCount()
          The number of FeatureClasses in this container.
 IEnumFeatureClass getClasses()
          An enumerator over the FeatureClasses.
 IEnumFeatureClass getClassesByNetworkAncillaryRole(int role)
          The FeatureClasses with the specified ancillary role.
 IEnumFeatureClass getClassesByType(int type)
          The FeatureClasses containing Features of the specified type.
 void getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
          The list of current locks.
 IDisplayFeedback getDisplayFeedback(IFeature feature, ISet features, IPoint point)
          The DisplayFeedback.
 int getEdgeElement(IPoint location)
          The EdgeElement EID at the specified location.
 ITable getErrorTable()
          The error table currently associated with the geometric network.
 IEnvelope getExtent()
          The extent of the GeoDataset.
 IFeatureDataset getFeatureDataset()
          The FeatureDataset associated with the graph.
 IName getFullName()
          The associated name object.
 IGeometry getGeometryForEdgeEID(int edgeEID)
          The geometry of the EdgeElement.
 IGeometry getGeometryForJunctionEID(int junctionEID)
          The geometry that corresponds to the JunctionElement (a point).
 IInvalidArea getInvalidArea()
          The area to be drawn.
 int getJunctionElement(IPoint location)
          The JunctionElement EID at the specified location.
 IPropertySet getMetadata()
          The PropertySet containing metadata.
 String getName()
          The name of the Dataset.
 INativeType getNativeType()
          The native type.
 INetwork getNetwork()
          The associated logical network.
 INetworkFeature getNetworkFeature(INetElementDescription networkElement)
          The NetworkFeature that corresponds to the NetworkElement.
 int getNetworkType()
          The type of associated logical network.
 IFeatureClass getOrphanJunctionFeatureClass()
          The FeatureClass containing the OrphanJunctionFeatures.
 IPropertySet getPropertySet()
          The set of properties for the dataset.
 IEnumRule getRules()
          All the connectivity rules associated with the network.
 IEnumRule getRulesByClassAndSubtype(int classID, int subtypeCode)
          The connectivity rules associated with the class and subtype.
 ISpatialReference getSpatialReference()
          The spatial reference of the GeoDataset.
 IEnumDataset getSubsets()
          Datasets contained within this dataset.
 int getType()
          The type of the Dataset.
 IWorkspace getWorkspace()
          The workspace containing this dataset.
 int hashCode()
          the hashcode for this object
 void init(IFeatureDataset dataset, int graphID, String graphName, boolean buildNormalizedTables, boolean createGraph)
          Initializes the graph.
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 boolean isBeingEdited()
          True if the dataset is being edited.
 boolean isCanEditMetadata()
          Indicates if metadata can be edited.
 boolean isReduceNetworkConflicts()
          Indicates if the reconcile plan for the network reduces network conflicts.
 boolean isValidFlowDirection()
          Indicates whether the current flow directions are valid.
 boolean isVertexBasedStretching()
          The stretching model to nearest vertex (true) or junction (false) based stretching.
 IEnumFeature merge(IEnumFeature mergingFeatures)
          Merges the Features together, returning the newly created Feature.
 void rebuildConnectivity(IEnvelope incrementalRebuildArea)
          Incrementally rebuilds connectivity for features within and intersecting the specified envelope.
 void rebuildConnectivity2(IEnvelope incrementalRebuildArea)
          Incrementally rebuilds connectivity for features within and intersecting the specified envelope.
 void rename(String name)
          Renames this Dataset.
 IEnumFeature searchForNetworkFeature(IPoint location, int type)
          The NetworkFeatures found at the point.
 void setBrowseName(String name)
          The browse name of the dataset.
 void setErrorTable(ITable errorTable)
          The error table currently associated with the geometric network.
 void setInvalidAreaByRef(IInvalidArea invalidArea)
          The area to be drawn.
 void setMetadata(IPropertySet ppPropertySet)
          The PropertySet containing metadata.
 void setReduceNetworkConflicts(boolean reduceNetworkConflicts)
          Indicates if the reconcile plan for the network reduces network conflicts.
 void setVertexBasedStretching(boolean vertexBased)
          The stretching model to nearest vertex (true) or junction (false) based stretching.
 void spliceSimpleJunction(ISimpleJunctionFeature junction, int junctionEID, IGeometry geometry, boolean forceConnectivity)
          Create network connectivity between the simple junction and any intersecting network feature.
 ISet split(IEdgeFeature splittingEdge, IGeometry point)
          Split the feature.
 void synchronize(int action, int interval)
          Updates metadata with the current properties; may create metadata if it doesn't already exist.
 void transformSet(ISet features, int type, IAffineTransformation2D tranformation)
          Repositions all specified NetworkFeatures and any topologically connected NetworkFeatures.
 
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

GeometricNetwork

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

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

Throws:
IOException - if there are interop problems GeometricNetwork theGeometricNetwork = (GeometricNetwork) obj;
Method Detail

equals

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

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

getName

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFullName

public IName getFullName()
                  throws IOException,
                         AutomationException
The associated name object.

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getBrowseName

public String getBrowseName()
                     throws IOException,
                            AutomationException
The browse name of the dataset.

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setBrowseName

public void setBrowseName(String name)
                   throws IOException,
                          AutomationException
The browse name of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getType

public int getType()
            throws IOException,
                   AutomationException
The type of the Dataset.

Remarks

The Type property returns the an esriDatasetType value indicating the dataset type, such as esriDTTable or esriDTFeatureClass.

Example:


// 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());

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getCategory

public String getCategory()
                   throws IOException,
                          AutomationException
The category of the dataset.

Remarks

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

The description returned from IDataset::Category may change between releases of ArcGIS. 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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSubsets

public IEnumDataset getSubsets()
                        throws IOException,
                               AutomationException
Datasets contained within this dataset.

Description

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getWorkspace

public IWorkspace getWorkspace()
                        throws IOException,
                               AutomationException
The workspace containing this dataset.

Description

The Workspace property returns the containing workspace for this dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getPropertySet

public IPropertySet getPropertySet()
                            throws IOException,
                                   AutomationException
The set of properties for the dataset.

Description

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

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.

Remarks

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

canCopy

public boolean canCopy()
                throws IOException,
                       AutomationException
True if this dataset can be copied.

Remarks

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

The CanCopy method is supported by:

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

copy

public IDataset copy(String copyName,
                     IWorkspace copyWorkspace)
              throws IOException,
                     AutomationException
Copies this dataset to a new dataset with the specified name.

Remarks

IDataset::Copy should only be used with datasets from file-based data sources, such as shapefiles and coverages.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

canDelete

public boolean canDelete()
                  throws IOException,
                         AutomationException
True if this dataset can be deleted.

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

delete

public void delete()
            throws IOException,
                   AutomationException
Deletes this dataset.

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

canRename

public boolean canRename()
                  throws IOException,
                         AutomationException
True if this dataset can be renamed.

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

rename

public void rename(String name)
            throws IOException,
                   AutomationException
Renames this Dataset.

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isBeingEdited

public boolean isBeingEdited()
                      throws IOException,
                             AutomationException
True if the dataset is being edited.

Remarks

An edit session is begun on a Workspace using IWorkspaceEdit::StartEditing method. 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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSpatialReference

public ISpatialReference getSpatialReference()
                                      throws IOException,
                                             AutomationException
The spatial reference of the GeoDataset.

Remarks

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSpatialReference in interface IGeoDataset
Returns:
A reference to a com.esri.arcgis.geometry.ISpatialReference
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 GeoDataset.

Remarks

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.

The red box represents the IGeoDataset extent

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.

The red box represents the IGeoDataset extent after some of the features have been deleted

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.

The red box represents the IGeoDataset extent after it has been updated

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getExtent in interface IGeoDataset
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.

getNativeType

public INativeType getNativeType()
                          throws IOException,
                                 AutomationException
The native type.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

changeSchemaLock

public void changeSchemaLock(int schemaLock)
                      throws IOException,
                             AutomationException
Changes a schema lock.

Remarks

There are two kinds of schema locks: shared and exclusive. Shared schema locks are applied automatically by the geodatabase when accessing a dataset and are removed when all references to the dataset are removed. For this reason, it's not necessary to explicitly apply or remove shared schema locks. There is no limit to the number of shared schema locks a dataset or object can have at any given time.
In contrast to shared schema locks, exclusive schema locks are controlled by the developer or ArcGIS application, such as ArcMap or ArcCatalog. An exclusive lock is used to lock a geodatabase dataset or object from use by others to make the necessary changes to it. An exclusive lock is promoted from a shared lock and demoted back to a shared lock when no longer needed. The presence of additional shared schema locks on a dataset or object prevents an exclusive schema lock from being applied and precludes the ability to make changes to the underlying dataset and its schema while it is in use. Only one exclusive schema lock is allowed per dataset. As opposed to shared schema locks, exclusive schema locks are not applied or removed automatically; it is the responsibility of the developer to apply or remove exclusive schema locks.
Limit the scope of exclusive schema locks to the operation that requires the lock. Gather the necessary information to perform the action, obtain the exclusive lock, make the change, and release the lock. Some examples of operations for which an exclusive schema lock should be obtained include:
  • Modifications to attribute domains, such as adding or removing values from a coded value domain or changing the range for range domains
  • Adding or deleting a field from a feature class or object class
  • Associating a class extension with a feature class
  • Creating a topology, geometric network, network dataset, terrain, schematic dataset, representation, or cadastral fabric on a set of feature classes
  • Any use of the IClassSchemaEdit interface
  • Putting a feature class into and taking it out of load-only mode with the IFeatureClassLoad.LoadOnlyMode method
  • Managing (creating, deleting, or modifying) spatial and attribute indexes
Once the action requiring an exclusive schema lock is complete, the exclusive schema lock must be demoted to a shared lock. This includes when errors are raised during the schema modification, for example, consider the case where a field is being deleted from a feature class. To delete the field, an exclusive schema lock is obtained. However, on the call to DeleteField, an error is thrown; that is, the field being deleted is a required field, such as the ObjectID field. In the handling of the error, the exclusive schema lock must be demoted to a shared lock before proceeding.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
changeSchemaLock in interface ISchemaLock
Parameters:
schemaLock - A com.esri.arcgis.geodatabase.esriSchemaLock constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCurrentSchemaLocks

public void getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
                           throws IOException,
                                  AutomationException
The list of current locks.

Remarks

The ISchemaLockInfo interface is used in concert with ISchemaLock to provide information about a schema lock, for example, whether it is shared or exclusive and for ArcSDE geodatabases, the name of the user who has the lock. Note that there will always be at least one schema lock on the dataset. Also note that by checking the schema locks on a dataset a shared schema lock is applied to the data.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCurrentSchemaLocks in interface ISchemaLock
Parameters:
schemaLockInfo - A reference to a com.esri.arcgis.geodatabase.IEnumSchemaLockInfo (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

esri_getClass

public IFeatureClass esri_getClass(int classIndex)
                            throws IOException,
                                   AutomationException
The FeatureClass associated with the specified index value.

Product Availability

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

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

getClassByID

public IFeatureClass getClassByID(int iD)
                           throws IOException,
                                  AutomationException
The FeatureClass with the specified ID.

Product Availability

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

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

getClassByName

public IFeatureClass getClassByName(String name)
                             throws IOException,
                                    AutomationException
The FeatureClass with the specified name.

Product Availability

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

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

getClassCount

public int getClassCount()
                  throws IOException,
                         AutomationException
The number of FeatureClasses in this container.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getClasses

public IEnumFeatureClass getClasses()
                             throws IOException,
                                    AutomationException
An enumerator over the FeatureClasses.

Remarks

There is no guarentee on the order that the feature classes will be returned.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getClassesByNetworkAncillaryRole

public IEnumFeatureClass getClassesByNetworkAncillaryRole(int role)
                                                   throws IOException,
                                                          AutomationException
The FeatureClasses with the specified ancillary role.

Product Availability

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

Specified by:
getClassesByNetworkAncillaryRole in interface IGeometricNetwork
Parameters:
role - A com.esri.arcgis.geodatabase.esriNetworkClassAncillaryRole constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumFeatureClass
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

establishFlowDirection

public void establishFlowDirection()
                            throws IOException,
                                   AutomationException
Establish the flow direction in the LogicalNetwork.

Remarks

EstablishFlowDirection should be called after each edit operation which affects the network's current flow direction. Please note that EstablishFlowDirection should also be called following a reconcile but prior to a post process.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
establishFlowDirection in interface IGeometricNetwork
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IWorkspaceEdit, ISpatialCacheManager, IWorkspaceEditEvents, com.esri.arcgis.editor.Editor, IFeatureClass.createFeature()

isValidFlowDirection

public boolean isValidFlowDirection()
                             throws IOException,
                                    AutomationException
Indicates whether the current flow directions are valid.

Remarks

ValidFlowDirection specifies whether the geometric network's flow direction has been defined. Use EstablishFlowDirection on this same interface to set the flow direction.

In this release, ValidFlowDirection is not implemented -- for now, this property always returns False.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getClassesByType

public IEnumFeatureClass getClassesByType(int type)
                                   throws IOException,
                                          AutomationException
The FeatureClasses containing Features of the specified type.

Product Availability

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

Specified by:
getClassesByType in interface IGeometricNetwork
Parameters:
type - A com.esri.arcgis.geodatabase.esriFeatureType constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumFeatureClass
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createOrphanFeature

public ISimpleJunctionFeature createOrphanFeature(IPoint location,
                                                  int[] orphanEID)
                                           throws IOException,
                                                  AutomationException
Create an orphan JunctionFeature.

Remarks

The CreateOrphanFeature method creates an orphan junction at the location corresponding to the supplied point. Connectivity is not established by CreateOrphanFeature, the Connect method must be called explicitly after the feature is created.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
createOrphanFeature in interface IGeometricNetwork
Parameters:
location - A reference to a com.esri.arcgis.geometry.IPoint (in)
orphanEID - The orphanEID (out: use single element array)
Returns:
A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IWorkspaceEdit, ISpatialCacheManager, IWorkspaceEditEvents, com.esri.arcgis.editor.Editor, IFeatureClass.createFeature()

getEdgeElement

public int getEdgeElement(IPoint location)
                   throws IOException,
                          AutomationException
The EdgeElement EID at the specified location.

Product Availability

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

Specified by:
getEdgeElement in interface IGeometricNetwork
Parameters:
location - 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.

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 IGeometricNetwork
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.

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 IGeometricNetwork
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.

getJunctionElement

public int getJunctionElement(IPoint location)
                       throws IOException,
                              AutomationException
The JunctionElement EID at the specified location.

Product Availability

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

Specified by:
getJunctionElement in interface IGeometricNetwork
Parameters:
location - 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.

getNetwork

public INetwork getNetwork()
                    throws IOException,
                           AutomationException
The associated logical network.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getNetworkType

public int getNetworkType()
                   throws IOException,
                          AutomationException
The type of associated logical network.

Remarks

See esriNetworkType Constants for information on the types of networks.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getOrphanJunctionFeatureClass

public IFeatureClass getOrphanJunctionFeatureClass()
                                            throws IOException,
                                                   AutomationException
The FeatureClass containing the OrphanJunctionFeatures.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

addRule

public void addRule(IConnectivityRule rule)
             throws IOException,
                    AutomationException
Adds the constraint to the set of connectivity rules.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

deleteRule

public void deleteRule(IConnectivityRule rule)
                throws IOException,
                       AutomationException
Removes the rule from the set of rules.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getRules

public IEnumRule getRules()
                   throws IOException,
                          AutomationException
All the connectivity rules associated with the network.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getRules in interface IGeometricNetwork
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.

getRulesByClassAndSubtype

public IEnumRule getRulesByClassAndSubtype(int classID,
                                           int subtypeCode)
                                    throws IOException,
                                           AutomationException
The connectivity rules associated with the class and subtype.

Product Availability

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

Specified by:
getRulesByClassAndSubtype in interface IGeometricNetwork
Parameters:
classID - The classID (in)
subtypeCode - The subtypeCode (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.

searchForNetworkFeature

public IEnumFeature searchForNetworkFeature(IPoint location,
                                            int type)
                                     throws IOException,
                                            AutomationException
The NetworkFeatures found at the point.

Remarks

The SearchForNetworkFeature method returns an enumerator of the specified type of network feature located at the supplied point. If more than one feature is coincident with the point, then all are returned. The returned features may span different classes; the only restriction is that all features must be of the same feature type. There is no guarantee as to the order of the returned features.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
searchForNetworkFeature in interface IGeometricNetwork
Parameters:
location - A reference to a com.esri.arcgis.geometry.IPoint (in)
type - A com.esri.arcgis.geodatabase.esriFeatureType constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumFeature
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getGeometryForEdgeEID

public IGeometry getGeometryForEdgeEID(int edgeEID)
                                throws IOException,
                                       AutomationException
The geometry of the EdgeElement.

Product Availability

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

Specified by:
getGeometryForEdgeEID in interface IGeometricNetwork
Parameters:
edgeEID - The edgeEID (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.

getGeometryForJunctionEID

public IGeometry getGeometryForJunctionEID(int junctionEID)
                                    throws IOException,
                                           AutomationException
The geometry that corresponds to the JunctionElement (a point).

Product Availability

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

Specified by:
getGeometryForJunctionEID in interface IGeometricNetwork
Parameters:
junctionEID - The junctionEID (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.

getNetworkFeature

public INetworkFeature getNetworkFeature(INetElementDescription networkElement)
                                  throws IOException,
                                         AutomationException
The NetworkFeature that corresponds to the NetworkElement.

Product Availability

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

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

spliceSimpleJunction

public void spliceSimpleJunction(ISimpleJunctionFeature junction,
                                 int junctionEID,
                                 IGeometry geometry,
                                 boolean forceConnectivity)
                          throws IOException,
                                 AutomationException
Create network connectivity between the simple junction and any intersecting network feature. For internal use only.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
spliceSimpleJunction in interface IGeometricNetwork
Parameters:
junction - A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)
junctionEID - The junctionEID (in)
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
forceConnectivity - The forceConnectivity (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addJunctionWithSubsumption

public void addJunctionWithSubsumption(ISimpleJunctionFeature junction,
                                       int junctionEID,
                                       ISimpleJunctionFeature subsumedJunction)
                                throws IOException,
                                       AutomationException
Add a new junction feature to the network by replacing existing junction.

Description

The pJunction argument represents the junction which will subsume or replace the existing junction. The JunctionEID represents the Element ID of the junction feature specified in the first argument and can be obtained from SimpleJunctionFeature::EID property. The third argument, pSusbsumedJunction represents the junction being subsumed.

AddJunctionWithSubsumption will enforce network connectivity between the newly created feature and any network features which are geometrically coincident.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addJunctionWithSubsumption in interface IGeometricNetwork
Parameters:
junction - A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)
junctionEID - The junctionEID (in)
subsumedJunction - A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IWorkspaceEdit, ISpatialCacheManager, IWorkspaceEditEvents, com.esri.arcgis.editor.Editor, IFeatureClass.createFeature()

add

public void add(IFeature newFeature)
         throws IOException,
                AutomationException
Adds the preexisting Feature to the graph.

Remarks

The IGraph:Add method is meant for internal use only.

There is no need to call INetworkFeature::CreateNetworkElements or INetworkFeature::Connect as these are handled internally by IFeature::Store

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
add in interface IGraph
Parameters:
newFeature - 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.

addFeatureClass

public void addFeatureClass(IFeatureClass featureClass,
                            String enabledFieldName,
                            int role,
                            String ancillaryRoleFieldName)
                     throws IOException,
                            AutomationException
Add the FeatureClass to this graph.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
addFeatureClass in interface IGraph
Parameters:
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
enabledFieldName - The enabledFieldName (in)
role - A com.esri.arcgis.geodatabase.esriNetworkClassAncillaryRole constant (in)
ancillaryRoleFieldName - The ancillaryRoleFieldName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteSet

public void deleteSet(ISet featuresToDelete)
               throws IOException,
                      AutomationException
Removes the set of Feature from the graph.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteSet in interface IGraph
Parameters:
featuresToDelete - 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.
See Also:
IWorkspaceEdit, ISpatialCacheManager, IWorkspaceEditEvents, com.esri.arcgis.editor.Editor, IFeatureClass.createFeature()

getFeatureDataset

public IFeatureDataset getFeatureDataset()
                                  throws IOException,
                                         AutomationException
The FeatureDataset associated with the graph.

Remarks

Returns a reference to the feature dataset in which the graph exists.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getDisplayFeedback

public IDisplayFeedback getDisplayFeedback(IFeature feature,
                                           ISet features,
                                           IPoint point)
                                    throws IOException,
                                           AutomationException
The DisplayFeedback.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getDisplayFeedback in interface IGraph
Parameters:
feature - A reference to a com.esri.arcgis.geodatabase.IFeature (in)
features - A reference to a com.esri.arcgis.system.ISet (in)
point - 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.

init

public void init(IFeatureDataset dataset,
                 int graphID,
                 String graphName,
                 boolean buildNormalizedTables,
                 boolean createGraph)
          throws IOException,
                 AutomationException
Initializes the graph.

Remarks

The IGraph::Init method is called internally during the process of creating a Geometric Network and should be called independently.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
init in interface IGraph
Parameters:
dataset - A reference to a com.esri.arcgis.geodatabase.IFeatureDataset (in)
graphID - The graphID (in)
graphName - The graphName (in)
buildNormalizedTables - The buildNormalizedTables (in)
createGraph - The createGraph (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

merge

public IEnumFeature merge(IEnumFeature mergingFeatures)
                   throws IOException,
                          AutomationException
Merges the Features together, returning the newly created Feature.

Remarks

The Merge method is not currently implemented.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
merge in interface IGraph
Parameters:
mergingFeatures - A reference to a com.esri.arcgis.geodatabase.IEnumFeature (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumFeature
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

split

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
split in interface IGraph
Parameters:
splittingEdge - A reference to a com.esri.arcgis.geodatabase.IEdgeFeature (in)
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.
See Also:
IGeometricNetworkName, IWorkspaceEdit, IGraph, ISpatialCacheManager, IGraph.transformSet(com.esri.arcgis.system.ISet, int, com.esri.arcgis.geometry.IAffineTransformation2D), IGeometricNetwork.addJunctionWithSubsumption(com.esri.arcgis.geodatabase.ISimpleJunctionFeature, int, com.esri.arcgis.geodatabase.ISimpleJunctionFeature), IWorkspaceEditEvents, IGraph.split(com.esri.arcgis.geodatabase.IEdgeFeature, com.esri.arcgis.geometry.IGeometry), IGeometricNetwork, com.esri.arcgis.editor.Editor, IFeatureClass.createFeature()

transformSet

public void transformSet(ISet features,
                         int type,
                         IAffineTransformation2D tranformation)
                  throws IOException,
                         AutomationException
Repositions all specified NetworkFeatures and any topologically connected NetworkFeatures.

Remarks

TransformSet will maintain connectivity between network features, there is no need to call Connect or RebuildConnectivity after TransformSet to establish connectivity. The type of stretching that is employed during TransformSet can be changed using the VertexBasedStretching property.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
transformSet in interface IGraph
Parameters:
features - A reference to a com.esri.arcgis.system.ISet (in)
type - A com.esri.arcgis.geodatabase.esriTransformType constant (in)
tranformation - A reference to a com.esri.arcgis.geometry.IAffineTransformation2D (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IWorkspaceEdit, ISpatialCacheManager, IWorkspaceEditEvents, com.esri.arcgis.editor.Editor, IFeatureClass.createFeature()

isVertexBasedStretching

public boolean isVertexBasedStretching()
                                throws IOException,
                                       AutomationException
The stretching model to nearest vertex (true) or junction (false) based stretching.

Description

VertexBasedStretching controls the stretching model for the specified graph: vertex (true) or junction (false) based stretching. Vertex based stretching modifies features to the nearest vertex(es), while junction based stretching will proportionally modify the feature to the nearest junction(s).

The VertexBasedStretching property should be used to set or get the stretching model when edits are being made to the workspace using the IWorkspaceEdit interface. During an edit session in the Editor, VertexBasedStretching can be used to get the stretching model but cannot be used to set the stretching model. In this case IEditProperties::StretchGeometry overwrites VertexBasedStretching and should be used to set the desired stretching model.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isVertexBasedStretching in interface IGraph
Returns:
The vertexBased
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
INetworkUpdate, IForwardStar, IGraph, INetworkClass.getNetworkAncillaryRole(), INetworkWorkspace, INetworkClass.getGeometricNetwork(), INetworkClass.getFieldToWeightMapping(int), IUtilityNetwork, INetwork

setVertexBasedStretching

public void setVertexBasedStretching(boolean vertexBased)
                              throws IOException,
                                     AutomationException
The stretching model to nearest vertex (true) or junction (false) based stretching.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setVertexBasedStretching in interface IGraph
Parameters:
vertexBased - The vertexBased (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
INetworkUpdate, IWorkspaceEdit, IForwardStar, ISpatialCacheManager, IGraph, INetworkClass.getNetworkAncillaryRole(), INetworkWorkspace, IWorkspaceEditEvents, INetworkClass.getGeometricNetwork(), com.esri.arcgis.editor.Editor, INetworkClass.getFieldToWeightMapping(int), IFeatureClass.createFeature(), IUtilityNetwork, INetwork

getErrorTable

public ITable getErrorTable()
                     throws IOException,
                            AutomationException
The error table currently associated with the geometric network. This property will return nothing unless it has been set within the running application.

Description

The ErrorTable property provides the ability to either return the error table if it exists or associate an error table with the geometric network, after it has been created with the IGeometricNetworkErrorDetection::CreateErrorTable method. Once the error table is created, it can be associated with, or retrieved from, a geometric network. However, this association will not be persisted—the association is only for the lifetime of the geometric network component instance. The user is responsible for managing this error table.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getErrorTable in interface IGeometricNetworkErrorDetection
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.

setErrorTable

public void setErrorTable(ITable errorTable)
                   throws IOException,
                          AutomationException
The error table currently associated with the geometric network. This property will return nothing unless it has been set within the running application.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

createSelectionSetFromErrorTable

public ISet createSelectionSetFromErrorTable()
                                      throws IOException,
                                             AutomationException
Returns a set of selection sets of the features in the geometric network Error Table.

Description

A set of selection sets may be created from all the entries found in the error table that are currently associated with a geometric network via the CreateSelectionSetFromErrorTable method. This is a mechanism that can be used to create instances of the network features that are listed in the error table.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
createSelectionSetFromErrorTable in interface IGeometricNetworkErrorDetection
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.

createErrorTable

public void createErrorTable(String name,
                             ITable[] errorTable)
                      throws IOException,
                             AutomationException
Creates a non-versioned table that can be used to persist error information.

Description

The CreateErrorTable method is used to create a table that can be used to persist information related to inconsistent network features (using a fixed table schema) with the specified name. Such network error information can only be persisted by the geometric network in a table with this schema. This table is user managed and should remain unversioned.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
createErrorTable in interface IGeometricNetworkErrorDetection
Parameters:
name - The name (in)
errorTable - A reference to a com.esri.arcgis.geodatabase.ITable (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

detectNetworkErrors

public void detectNetworkErrors(int errorType,
                                IEnvelope areaOfInterest,
                                ISet selectionSets,
                                ISet[] problemSelectionSets)
                         throws IOException,
                                AutomationException
The features in the geometric network with connectivity problems.

Description

The DetectNetworkErrors method is used to detect the different possible types of network connectivity and geometry problems. While the DetectNetworkErrors method will discover network features with inconsistent connectivity, it does not perform an exhaustive verification. The IGeometricNetworkConnectivity2::CheckandRepairConnectivity method performs a more exhaustive check for network inconsistencies.

The DetectNetworkErrors method takes a number of arguements, the first being the type of network error to detect. This arguement corresponds with a value from the esriNetworkErrorType enumeration. Use esriNETConnectivity to verify network connectivity and esriNETGeometry to verify network feature geometry.

The second argument is an IEnvelope object defining the area of interest, any feature within or intersecting the envelope will be verified. The third arguement is a selection set of features. If Nothing is supplied for an area of interest, the features in the selection set will be verified. Finally, any features identified as invalid will be returned in a selection set.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
detectNetworkErrors in interface IGeometricNetworkErrorDetection
Parameters:
errorType - A com.esri.arcgis.geodatabase.esriNetworkErrorType constant (in)
areaOfInterest - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
selectionSets - A reference to a com.esri.arcgis.system.ISet (in)
problemSelectionSets - A reference to a com.esri.arcgis.system.ISet (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteNetworkElements

public void deleteNetworkElements(ISet selectionSets)
                           throws IOException,
                                  AutomationException
Deletes the network elements associated with the specified network features.

Description

The DeleteNetworkElements method takes an ISet of ISelectionSets. All of the network features contained in the various selection sets will have their network elements deleted from the logical network. The primary reason why one would want to do this is to correct the geometry of an edge feature that was loaded with invalid polyline geometry. This method should be called on valid network features.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deleteNetworkElements in interface IGeometricNetworkErrorDetection
Parameters:
selectionSets - 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.

checkAndRepairConnectivity

public void checkAndRepairConnectivity(boolean checkOnly,
                                       String logFilePath,
                                       ISet[] errorSelectionSets,
                                       boolean[] hasInternalInconsistencies,
                                       IRepairConnectivityProgress repairConnectivityProgress)
                                throws IOException,
                                       AutomationException
Checks and optionally repairs connectivity.

Description

The CheckandRepairConnectivity method will check for and optionally repair an assortment of connectivity errors within a geometric network. In contrast to RebuildConnectivity2, CheckandRepairConnectivity will only repair those features who have been identified as having inconsistent connectivity.

For a geometric network in a Personal or File Geodatabase, CheckandRepairConnectivity will work against the entire geometric network. For geometric networks in an ArcSDE Geodatabase, CheckandRepairConnectivity will work against the geometric network connectivity within the version currently being edited. Types of network inconsistencies that CheckandRepairConnectivity will discover and repair include:

- network features missing element IDs
- network features with more than 1 element ID
- an element ID that references a deleted feature
- inconsistent connectivity

CheckandRepairConnectivity takes five mandatory arguments. The first, checkOnly is a boolean that specifies whether errors will be repaired or not. A value of False designates that errors are corrected. If True is specified CheckandRepairConnectivity will run in Check Only mode in which errors will be discovered but not repaired.

The second argument dictates whether CheckandRepairConnectivity will produce a log file listing the feature class and Object ID of all the network errors that were discovered and repaired. For a geometric network called, 'MyNetwork' and a supplied path of 'D:\Temp\Logifles\' the logfilePath arguement would appear as; "D:\Temp\Logifles\MyNetwork.txt". To run CheckandRepairConnectivity with no log file, specify an empty string for the logfilePath argument.

The third argument is a Set object that contains references to repaired features. errorSelectionSets can be used to determine if any features were found to have inconsistencies and repaired. The set object will contain a reference to each feature class which contains repaired features.

The fourth argument is a boolean which returns the state of the logical network. If the logical network contains internal inconsistencies, that is, inconsistencies which do not reference existing features within the geometric network, hasInternalInconsistencies will return True, otherwise, it will return False.

The fifth argumnt is an IRepairConnectivityProgress object that is used to retrieve any warnings generated by CheckandRepairConnectivity. During the process of repairing network connectivity, CheckandRepairConnectivity may perform actions that discover network features that require further review. If any warnings are encountered during repair of the network, they can be accessed using IRepairConnectivityProgress::Warnings. The type of warning, feature class and Object ID of the feature is included. Types of warnings include:

- creation of new orphan junctions
- invalid geometries
- coincident junctions
- coincident vertices

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
checkAndRepairConnectivity in interface IGeometricNetworkConnectivity2
Parameters:
checkOnly - The checkOnly (in)
logFilePath - The logFilePath (in)
errorSelectionSets - A reference to a com.esri.arcgis.system.ISet (out: use single element array)
hasInternalInconsistencies - The hasInternalInconsistencies (out: use single element array)
repairConnectivityProgress - A reference to a com.esri.arcgis.geodatabase.IRepairConnectivityProgress (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rebuildConnectivity2

public void rebuildConnectivity2(IEnvelope incrementalRebuildArea)
                          throws IOException,
                                 AutomationException
Incrementally rebuilds connectivity for features within and intersecting the specified envelope. Version 2.

Description

If network connectivity errors are found within the geometric network, they can generally be corrected through the use of the RebuildConnectivity2 method. This method takes an envelope which should contain the network features for which connectivity will be rebuilt. The RebuildConnectivity2 method does not check for invalid connectivity, it will remove and then rebuild the connectivity of any feature contained within or intersecting the specified envelope.

RebuildConnectivity2 should only be used to rebuild the connectivity of features whose invalid geometry has been repaired or to rebuild inconsistent connectivity on features. RebuildConnectivity2 is not as computationally expensive as IGeometricNetworkConnectivity::RebuildConnectivity and as such, can be used on a larger number of network features. However, the size of the envelope supplied to RebuildConnectivity2 should still be taken into consideration. It is generally faster to call RebuildConnectivity2 on small individual areas rather than one large area that encompasses the smaller areas.

RebuildConnectivity should not be used to establish connectivity between network features. To establish connectivity, use INetworkFeature::Connect.

Remarks

If RebuildConnectivity2 encounters an edge feature that is missing a junction on an endpoint, it will insert a new orphan junction at the endpoint of the edge feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
rebuildConnectivity2 in interface IGeometricNetworkConnectivity2
Parameters:
incrementalRebuildArea - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IGeometricNetworkConnectivity.rebuildConnectivity(com.esri.arcgis.geometry.IEnvelope), IGeometricNetworkConnectivity2.rebuildConnectivity2(com.esri.arcgis.geometry.IEnvelope)

rebuildConnectivity

public void rebuildConnectivity(IEnvelope incrementalRebuildArea)
                         throws IOException,
                                AutomationException
Incrementally rebuilds connectivity for features within and intersecting the specified envelope.

Description

If network connectivity errors are found within the geometric network, they can generally be corrected through the use of the RebuildConnectivity method. This method takes an envelope which should contain the network features for which connectivity should be rebuilt. The RebuildConnectivity method does not check for invalid connectivity, it will remove and then rebuild the connectivity of any feature contained within or intersecting the specified envelope. It is a computationally expensive operation and can take a significant amount of time to complete if executed against a large number of network features. The envelope should also be as small as possible, it is faster to call RebuildConnectivity on two small areas rather than one large area that encompasses both smaller areas. RebuildConnectivity should not be used to establish connectivity between valid network features. To establish connectivity, use INetworkFeature::Connect .

There are instances when RebuildConnectivity will not be able to rebuid the connectivity for network features. For this reason, IGeometricNetworkConnectivity::RebuildConnectivity2 should be used in place of RepairConnectivity .

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isReduceNetworkConflicts

public boolean isReduceNetworkConflicts()
                                 throws IOException,
                                        AutomationException
Indicates if the reconcile plan for the network reduces network conflicts.

Remarks

ReduceNetworkConflicts will return a boolean value indicating the reconcile strategy applied to the geometric network. The default value is false, indicating that the standard reconcile strategy will be applied. An exclusive schema lock must be obtained before changing the ReduceNetworkConflicts property. See the ISchemaLock interface for information on listing existing schema locks and obtaining an exclusive schema lock.

This property is set at the geometric network level, which means that all clients will reconcile using the same strategy.

Product Availability

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

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

setReduceNetworkConflicts

public void setReduceNetworkConflicts(boolean reduceNetworkConflicts)
                               throws IOException,
                                      AutomationException
Indicates if the reconcile plan for the network reduces network conflicts.

Product Availability

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

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

getMetadata

public IPropertySet getMetadata()
                         throws IOException,
                                AutomationException
The PropertySet containing metadata.

Remarks

The variable to hold the data must be of IPropertySet data type.

The metadata property is frequently used to save, or update, changes to metadata documents that have taken place through methods available on the IPropertySet, IXmlPropertySet, and/or IXmlPropertySet2 interfaces.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setMetadata

public void setMetadata(IPropertySet ppPropertySet)
                 throws IOException,
                        AutomationException
The PropertySet containing metadata.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

synchronize

public void synchronize(int action,
                        int interval)
                 throws IOException,
                        AutomationException
Updates metadata with the current properties; may create metadata if it doesn't already exist.

Description

The Synchronize method is used to extract metadata properties from an object and write those properties to the metadata .xml. Depending on the value of the esriMetaSyncAction, the Synchronize method may generate a new set of metadata if it doesn't already exist.

Remarks

The following actions will result in synchronization given each of the listed conditions:

Action Metadata status Esri/Sync element Interval parameter
esriMSAAccessed Doesn't matter Must not be FALSE Must be less than actual interval
esriMSAAlways Doesn't matter Doesn't matter Doesn't matter
esriMSACreated Must not exist Must not be FALSE Must be less than actual interval
esriMSANotCreated Must exist Must not be FALSE Must be less than actual interval
esriMSAOverwrite Doesn't matter Doesn't matter Doesn't matter

The difference between esriMSAAlways and esriMSAOverwrite lies in which elements are synchronized. esriMSAAlways will honor the removal or value change of an element's Sync attribute (to disable synchronization), whereas using esriMSAOverwrite is equivalent to setting the IXmlPropertySet2.OverwriteSyncAttribute to true for the metadata's property set, meaning that even elements without a Sync attribute of TRUE will be synchronized.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
synchronize in interface IMetadata
Parameters:
action - A com.esri.arcgis.geodatabase.esriMetadataSyncAction constant (in)
interval - The interval (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCanEditMetadata

public boolean isCanEditMetadata()
                          throws IOException,
                                 AutomationException
Indicates if metadata can be edited.

Remarks

This property is available to those objects that support metadata.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isCanEditMetadata in interface IMetadataEdit
Returns:
The pCanEdit
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.