com.esri.arcgis.geodatabase
Class NetworkForwardStar

java.lang.Object
  extended by com.esri.arcgis.geodatabase.NetworkForwardStar
All Implemented Interfaces:
INetworkForwardStar, INetworkForwardStarEx, INetworkForwardStarSetup, com.esri.arcgis.interop.RemoteObjRef, ISupportErrorInfo, Serializable

public class NetworkForwardStar
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, INetworkForwardStar, INetworkForwardStarSetup, INetworkForwardStarEx, ISupportErrorInfo

A container for querying information about adjacent elements in the network dataset.

Description

For a given network junction element and, optionally, incoming edge elements in a network dataset, the NetworkForwardStar object efficiently queries adjacent network elements and their attribute values. This query can be performed repeatedly using the NetworkForwardStar on the adjacent elements returned by previous queries, allowing one to traverse throughout the network to perform a network analysis.

The NetworkForwardStar is not merely the object through which to retrieve adjacency information from the elements of a network dataset. While this is indeed part of its intended usage, the network dataset itself already provides a raw, unfiltered view of all of the data stored within the dataset (including all elements' raw attribute and adjacency information). Therefore, clients of the network dataset can retrieve adjacency information and attribute data directly from the elements themselves, without the need for any intermediate objects. The true purpose of the NetworkForwardStar component is to provide an automatically-filtered, problem-specific view of this raw information to be used by client algorithms of the network dataset (e.g., which restrictions, U-turn policies, attribute adjustments, etc. to honor during network adjacency traversal).

Remarks

The NetworkForwardStar object is created by calling the INetworkQuery::CreateForwardStar method on the network dataset. This method can only be called when a Network license is checked out.

Product Availability

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

See Also:
Serialized Form

Constructor Summary
NetworkForwardStar(Object obj)
          Construct a NetworkForwardStar using a reference to such an object returned from ArcGIS Engine or Server.
 
Method Summary
 void addCachedAttribute(INetworkAttribute attribute)
          AddCachedAttribute has been deprecated and should not be called.
 void addEdgeRestriction(INetworkEdge edge, double fromPosition, double toPosition)
          Restricts the traversability of a range on an edge element in the adjacency queries.
 void addJunctionRestriction(INetworkJunction junction)
          Restricts a junction element from being returned in the adjacency queries.
 void addRestriction(INetworkAttribute attribute)
          Adds a restriction network attribute to the NetworkForwardStar object to filter elements returned.
 void addRestrictionAttribute(INetworkAttribute attribute)
          Adds a restriction network attribute to the NetworkForwardStar object to filter elements from adjacency queries.
 void addTurnRestriction(INetworkTurn turn)
          Restricts a turn in the adjacency queries.
 void adjustEdgeAttributeValue(INetworkEdge edge, double fromPosition, double toPosition, INetworkAttribute attribute, int adjustmentType, Object value)
          Adjusts the value of a network attribute for a range on an edge element.
 void adjustJunctionAttributeValue(INetworkJunction junction, INetworkAttribute attribute, int adjustmentType, Object value)
          Adjusts the value of a network attribute for a junction element.
 void adjustTurnAttributeValue(INetworkTurn turn, INetworkAttribute attribute, int adjustmentType, Object value)
          Adjusts the value of a network attribute for a turn element.
 boolean equals(Object o)
          Compare this object with another
 int getBacktrack()
          Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object.
 int getBacktrackPolicy()
          Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object.
 INetworkAttribute getHierarchyAttribute()
          Network attribute containing the hierarchy values for each network element.
 int getMaxHierarchyValue()
          Maximum hierarchy attribute value permitted to be returned in the NetworkForwardStarAdjacencies object.
 int getMaxTraversableHierarchyValue()
          Maximum hierarchy attribute value for elements permitted to be returned in the adjacency queries.
 INetworkDataset getNetworkDataset()
          Network dataset on which the NetworkForwardStar object is querying.
 IEnumNetworkElement getNonTraversableElements(int elementType, int direction)
          The collection of network elements of the given type that are set to not traversable.
 INetworkAttribute getRestriction(int index)
          Restriction network attribute by index applied to the NetworkForwardStar object.
 INetworkAttribute getRestrictionAttribute(int index)
          Restriction network attribute by index in the NetworkForwardStar object.
 int getRestrictionAttributeCount()
          Number of restriction network attributes currently applied to the NetworkForwardStar object.
 int getRestrictionCount()
          Number of restriction network attributes applied to the NetworkForwardStar object.
 int hashCode()
          the hashcode for this object
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 boolean isFiltered(INetworkElement element)
          Indicates if the given network element is filtered out from the adjacencies object.
 boolean isForwardTraversal()
          Indicates if the NetworkForwardStar object is used to model forward traversal through the network dataset.
 boolean isRestricted(INetworkElement element)
          Indicates if the given network element is restricted from traversal in the NetworkForwardStar object.
 boolean isTraversable(INetworkElement element)
          Indicates if the given network element is travserable by the NetworkForwardStar object.
 void queryAdjacencies(INetworkJunction atJunction, INetworkEdge fromEdge, INetworkEdge lastExteriorEdge, INetworkForwardStarAdjacencies adjacencies)
          Finds all network elements that are adjacent to the given sequence of network elements.
 void queryAttributeCutoffRange(INetworkEdge edge, INetworkAttribute attribute, double queryPosition, Object cutoffValue, double[] fromPosition, double[] toPosition)
          Returns the range of accessible positions within a specified attribute cutoff from a query position along an edge element, respective to any existing attribute adjustments along the edge.
 void queryEdge(int eID, int direction, INetworkEdge edge)
          Performs a network edge element query by element ID and edge direction and populates the given edge element object.
 void queryJunction(int eID, INetworkJunction junction)
          Performs a network junction element query by element ID and populates the given junction element object.
 void queryTraversableRange(INetworkEdge edge, double queryPosition, double[] fromPosition, double[] toPosition, boolean[] isFromPositionAccessible, boolean[] isToPositionAccessible)
          Returns the range of accessible positions from a query position along an edge element, respective to any existing restrictions along the edge.
 void queryTurn(int eID, INetworkTurn turn)
          Performs a network turn element query by element ID and populates the given turn element object.
 void removeAllCachedAttributes()
          RemoveAllCachedAttributes has been deprecated and should not be called.
 void removeAttributeValueAdjustments()
          Removes all element-specific attribute value adjustments currently applied to the NetworkForwardStar object.
 void removeElementRestrictions()
          Removes all element-specific restrictions currently applied to the NetworkForwardStar object.
 void removeRestriction(int index)
          Removes the given restriction network attribute by index from the NetworkForwardStar object.
 void removeRestrictionAttributes()
          Removes all restriction network attributes currently applied to the NetworkForwardStar object.
 void setAllTraversable(int elementType, boolean traversable)
          Sets all network elements of the given element type to be traversable or non-traversable.
 void setBacktrack(int backtrack)
          Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object.
 void setBacktrackPolicy(int backtrack)
          Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object.
 void setHierarchyAttributeByRef(INetworkAttribute attribute)
          Network attribute containing the hierarchy values for each network element.
 void setIsForwardTraversal(boolean isForwardTraversal)
          Indicates if the NetworkForwardStar object is used to model forward traversal through the network dataset.
 void setMaxHierarchyValue(int maxValue)
          Maximum hierarchy attribute value permitted to be returned in the NetworkForwardStarAdjacencies object.
 void setMaxTraversableHierarchyValue(int maxValue)
          Maximum hierarchy attribute value for elements permitted to be returned in the adjacency queries.
 void setTraversable(INetworkElement element, boolean traversable)
          Indicates if the given network element is travserable by the NetworkForwardStar object.
 void setTraversable2(IEnumNetworkElement elements, boolean traversable)
          Sets the given network elements to be traversable or non-traversable.
 
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

NetworkForwardStar

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

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

Throws:
IOException - if there are interop problems NetworkForwardStar theNetworkForwardStar = (NetworkForwardStar) 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

queryAdjacencies

public void queryAdjacencies(INetworkJunction atJunction,
                             INetworkEdge fromEdge,
                             INetworkEdge lastExteriorEdge,
                             INetworkForwardStarAdjacencies adjacencies)
                      throws IOException,
                             AutomationException
Finds all network elements that are adjacent to the given sequence of network elements.

Remarks

This method has been superceded by the QueryAdjacencies method on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

Specified by:
queryAdjacencies in interface INetworkForwardStar
Specified by:
queryAdjacencies in interface INetworkForwardStarEx
Parameters:
atJunction - A reference to a com.esri.arcgis.geodatabase.INetworkJunction (in)
fromEdge - A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)
lastExteriorEdge - A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)
adjacencies - A reference to a com.esri.arcgis.geodatabase.INetworkForwardStarAdjacencies (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isFiltered

public boolean isFiltered(INetworkElement element)
                   throws IOException,
                          AutomationException
Indicates if the given network element is filtered out from the adjacencies object.

Product Availability

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

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

getBacktrack

public int getBacktrack()
                 throws IOException,
                        AutomationException
Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object.

Remarks

This property has been superceded by the BacktrackPolicy property on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

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

setBacktrack

public void setBacktrack(int backtrack)
                  throws IOException,
                         AutomationException
Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object.

Product Availability

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

Specified by:
setBacktrack in interface INetworkForwardStarSetup
Parameters:
backtrack - A com.esri.arcgis.geodatabase.esriNetworkForwardStarBacktrack constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isForwardTraversal

public boolean isForwardTraversal()
                           throws IOException,
                                  AutomationException
Indicates if the NetworkForwardStar object is used to model forward traversal through the network dataset.

Remarks

This property has been superceded by the IsForwardTraversal property on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

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

setIsForwardTraversal

public void setIsForwardTraversal(boolean isForwardTraversal)
                           throws IOException,
                                  AutomationException
Indicates if the NetworkForwardStar object is used to model forward traversal through the network dataset.

Product Availability

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

Specified by:
setIsForwardTraversal in interface INetworkForwardStarEx
Specified by:
setIsForwardTraversal in interface INetworkForwardStarSetup
Parameters:
isForwardTraversal - The isForwardTraversal (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNetworkDataset

public INetworkDataset getNetworkDataset()
                                  throws IOException,
                                         AutomationException
Network dataset on which the NetworkForwardStar object is querying.

Remarks

This property has been superceded by the NetworkDataset property on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

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

addCachedAttribute

public void addCachedAttribute(INetworkAttribute attribute)
                        throws IOException,
                               AutomationException
AddCachedAttribute has been deprecated and should not be called.

Remarks

This method has been deprecated.

Product Availability

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

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

removeAllCachedAttributes

public void removeAllCachedAttributes()
                               throws IOException,
                                      AutomationException
RemoveAllCachedAttributes has been deprecated and should not be called.

Remarks

This method has been deprecated.

Product Availability

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

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

addRestriction

public void addRestriction(INetworkAttribute attribute)
                    throws IOException,
                           AutomationException
Adds a restriction network attribute to the NetworkForwardStar object to filter elements returned.

Remarks

This method has been superceded by the AddRestrictionAttribute method on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

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

getRestriction

public INetworkAttribute getRestriction(int index)
                                 throws IOException,
                                        AutomationException
Restriction network attribute by index applied to the NetworkForwardStar object.

Product Availability

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

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

getRestrictionCount

public int getRestrictionCount()
                        throws IOException,
                               AutomationException
Number of restriction network attributes applied to the NetworkForwardStar object.

Remarks

This property has been superceded by the RestrictionAttributeCount property on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

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

removeRestriction

public void removeRestriction(int index)
                       throws IOException,
                              AutomationException
Removes the given restriction network attribute by index from the NetworkForwardStar object.

Remarks

This property has been superceded by the RemoveRestrictionAttributes method on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

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

setHierarchyAttributeByRef

public void setHierarchyAttributeByRef(INetworkAttribute attribute)
                                throws IOException,
                                       AutomationException
Network attribute containing the hierarchy values for each network element.

Product Availability

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

Specified by:
setHierarchyAttributeByRef in interface INetworkForwardStarEx
Specified by:
setHierarchyAttributeByRef in interface INetworkForwardStarSetup
Parameters:
attribute - A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getHierarchyAttribute

public INetworkAttribute getHierarchyAttribute()
                                        throws IOException,
                                               AutomationException
Network attribute containing the hierarchy values for each network element.

Remarks

This property has been superceded by the HierarchyAttribute property on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

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

setMaxHierarchyValue

public void setMaxHierarchyValue(int maxValue)
                          throws IOException,
                                 AutomationException
Maximum hierarchy attribute value permitted to be returned in the NetworkForwardStarAdjacencies object.

Product Availability

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

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

getMaxHierarchyValue

public int getMaxHierarchyValue()
                         throws IOException,
                                AutomationException
Maximum hierarchy attribute value permitted to be returned in the NetworkForwardStarAdjacencies object.

Remarks

This property has been superceded by the MaxTraversableHierarchyValue property on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

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

isTraversable

public boolean isTraversable(INetworkElement element)
                      throws IOException,
                             AutomationException
Indicates if the given network element is travserable by the NetworkForwardStar object.

Product Availability

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

Specified by:
isTraversable in interface INetworkForwardStarSetup
Parameters:
element - A reference to a com.esri.arcgis.geodatabase.INetworkElement (in)
Returns:
The traversable
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTraversable

public void setTraversable(INetworkElement element,
                           boolean traversable)
                    throws IOException,
                           AutomationException
Indicates if the given network element is travserable by the NetworkForwardStar object.

Remarks

The SetTraversable method with a Traversable parameter value of True sets all network elements in the given enumeration as Traversable.

The SetTraversable method with a Traversable parameter value of False sets all network elements in the given enumeration as not Traversable.

Product Availability

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

Specified by:
setTraversable in interface INetworkForwardStarSetup
Parameters:
element - A reference to a com.esri.arcgis.geodatabase.INetworkElement (in)
traversable - The traversable (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTraversable2

public void setTraversable2(IEnumNetworkElement elements,
                            boolean traversable)
                     throws IOException,
                            AutomationException
Sets the given network elements to be traversable or non-traversable.

Product Availability

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

Specified by:
setTraversable2 in interface INetworkForwardStarSetup
Parameters:
elements - A reference to a com.esri.arcgis.geodatabase.IEnumNetworkElement (in)
traversable - The traversable (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAllTraversable

public void setAllTraversable(int elementType,
                              boolean traversable)
                       throws IOException,
                              AutomationException
Sets all network elements of the given element type to be traversable or non-traversable.

Remarks

This property has been superceded by the RemoveElementRestrictions property on the INetworkForwardStarEx interface. Please refer to that interface for usage instructions.

Product Availability

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

Specified by:
setAllTraversable in interface INetworkForwardStarSetup
Parameters:
elementType - A com.esri.arcgis.geodatabase.esriNetworkElementType constant (in)
traversable - The traversable (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNonTraversableElements

public IEnumNetworkElement getNonTraversableElements(int elementType,
                                                     int direction)
                                              throws IOException,
                                                     AutomationException
The collection of network elements of the given type that are set to not traversable.

Product Availability

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

Specified by:
getNonTraversableElements in interface INetworkForwardStarSetup
Parameters:
elementType - A com.esri.arcgis.geodatabase.esriNetworkElementType constant (in)
direction - A com.esri.arcgis.geodatabase.esriNetworkEdgeDirection constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumNetworkElement
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryJunction

public void queryJunction(int eID,
                          INetworkJunction junction)
                   throws IOException,
                          AutomationException
Performs a network junction element query by element ID and populates the given junction element object.

Remarks

QueryJunction takes an element ID for a junction and populates the passed-in NetworkJunction object.

This method is analogous to the existing INetworkQuery::QueryJunction method, except that the NetworkForwardStar will initialize the queried element with any potential attribute adjustment information.

Any queried junction should be either initialized directly from the QueryJunction method, the INetworkForwardStarAdjacencies::QueryAtJunction, or the INetworkForwardStarAdjacencies::QueryToJunction method in order to ensure proper element awareness of attribute adjustments.

Product Availability

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

Specified by:
queryJunction in interface INetworkForwardStarEx
Parameters:
eID - The eID (in)
junction - A reference to a com.esri.arcgis.geodatabase.INetworkJunction (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryEdge

public void queryEdge(int eID,
                      int direction,
                      INetworkEdge edge)
               throws IOException,
                      AutomationException
Performs a network edge element query by element ID and edge direction and populates the given edge element object.

Remarks

QueryEdge takes an element ID for an edge, as well as the direction being traveled along that edge, and populates the passed-in NetworkEdge object.

This method is analogous to the existing INetworkQuery::QueryEdge method, except that the NetworkForwardStar will initialize the queried element with any potential attribute adjustment information.

Any queried edge should be either initialized directly from the QueryEdge method or the INetworkForwardStarAdjacencies::QueryEdge method in order to ensure proper element awareness of attribute adjustments.

Product Availability

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

Specified by:
queryEdge in interface INetworkForwardStarEx
Parameters:
eID - The eID (in)
direction - A com.esri.arcgis.geodatabase.esriNetworkEdgeDirection constant (in)
edge - A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTurn

public void queryTurn(int eID,
                      INetworkTurn turn)
               throws IOException,
                      AutomationException
Performs a network turn element query by element ID and populates the given turn element object.

Remarks

QueryTurn takes an element ID for a turn and populates the passed-in NetworkTurn object.

This method is analogous to the existing INetworkQuery::QueryTurn method, except that the NetworkForwardStar will initialize the queried element with any potential attribute adjustment information.

Any queried edge should be either initialized directly from the QueryTurn method or the INetworkForwardStarAdjacencies::QueryTurn method in order to ensure proper element awareness of attribute adjustments.

Product Availability

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

Specified by:
queryTurn in interface INetworkForwardStarEx
Parameters:
eID - The eID (in)
turn - A reference to a com.esri.arcgis.geodatabase.INetworkTurn (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTraversableRange

public void queryTraversableRange(INetworkEdge edge,
                                  double queryPosition,
                                  double[] fromPosition,
                                  double[] toPosition,
                                  boolean[] isFromPositionAccessible,
                                  boolean[] isToPositionAccessible)
                           throws IOException,
                                  AutomationException
Returns the range of accessible positions from a query position along an edge element, respective to any existing restrictions along the edge.

Remarks

If a queried edge element is not completely restricted (as indicated by the INetworkForwardStarEx::get_IsRestricted method), then it may still have partial edge restrictions associated with it. The QueryTraversableRange method may be used to determine the appropriate range of accessibility along that edge from a given query position.

The isFromJunctionAccessible and isToJunctionAccessible return values indicate whether or not the fromPosition and toPosition of the traversable range are also accessible from the current position, respectively. For example, in the graphic above, the isFromPositionAccessible return value will be True and the isToPositionAccessible return value will be False.

Product Availability

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

Specified by:
queryTraversableRange in interface INetworkForwardStarEx
Parameters:
edge - A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)
queryPosition - The queryPosition (in)
fromPosition - The fromPosition (out: use single element array)
toPosition - The toPosition (out: use single element array)
isFromPositionAccessible - The isFromPositionAccessible (out: use single element array)
isToPositionAccessible - The isToPositionAccessible (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryAttributeCutoffRange

public void queryAttributeCutoffRange(INetworkEdge edge,
                                      INetworkAttribute attribute,
                                      double queryPosition,
                                      Object cutoffValue,
                                      double[] fromPosition,
                                      double[] toPosition)
                               throws IOException,
                                      AutomationException
Returns the range of accessible positions within a specified attribute cutoff from a query position along an edge element, respective to any existing attribute adjustments along the edge.

Product Availability

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

Specified by:
queryAttributeCutoffRange in interface INetworkForwardStarEx
Parameters:
edge - A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)
attribute - A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)
queryPosition - The queryPosition (in)
cutoffValue - A Variant (in)
fromPosition - The fromPosition (out: use single element array)
toPosition - The toPosition (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getBacktrackPolicy

public int getBacktrackPolicy()
                       throws IOException,
                              AutomationException
Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object.

Remarks

BacktrackPolicy is also known as the U-Turn Policy. The NetworkForwardStar filters/excludes an element from being returned by QueryAdjacencies if that element violates the current u-turn/backtrack policy. For example, if the incoming edge is provided in the call to query adjacency information from the NetworkForwardStar and the current backtrack policy is "no backtrack allowed", then the NetworkForwardStar will exclude this incoming edge from being returned in the adjacency query.

Please see esriNetworkForwardStarBacktrack for information about specific enumerations.

Product Availability

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

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

setBacktrackPolicy

public void setBacktrackPolicy(int backtrack)
                        throws IOException,
                               AutomationException
Policy on when to return the from-edge in the NetworkForwardStarAdjacencies object.

Product Availability

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

Specified by:
setBacktrackPolicy in interface INetworkForwardStarEx
Parameters:
backtrack - A com.esri.arcgis.geodatabase.esriNetworkForwardStarBacktrack constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addRestrictionAttribute

public void addRestrictionAttribute(INetworkAttribute attribute)
                             throws IOException,
                                    AutomationException
Adds a restriction network attribute to the NetworkForwardStar object to filter elements from adjacency queries.

Remarks

The AddRestrictionAttribute method adds a NetworkAttribute to the NetworkForwardStar object. This prevents network elements that have a value of True for this attribute from being returned by the forward star in QueryAdjacencies. This is useful when performing a network analysis only on those network elements that permit travel.

Only a NetworkAttribute with a UsageType of esriNAUTRestriction can be added to the NetworkForwardStar as a restriction.

Product Availability

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

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

getRestrictionAttribute

public INetworkAttribute getRestrictionAttribute(int index)
                                          throws IOException,
                                                 AutomationException
Restriction network attribute by index in the NetworkForwardStar object.

Product Availability

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

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

getRestrictionAttributeCount

public int getRestrictionAttributeCount()
                                 throws IOException,
                                        AutomationException
Number of restriction network attributes currently applied to the NetworkForwardStar object.

Remarks

RestrictionAttributeCount retrieves the number of restriction attributes that have been applied to the NetworkForwardStar object. This count can be used to set up an iteration of the applied restriction attributes.

Product Availability

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

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

removeRestrictionAttributes

public void removeRestrictionAttributes()
                                 throws IOException,
                                        AutomationException
Removes all restriction network attributes currently applied to the NetworkForwardStar object.

Remarks

The RemoveRestrictionAttributes method removes the NetworkAttributes of usage type restriction from being applied as a restriction in the NetworkForwardStar object. The network attributes were added to the NetworkForwardStar using the AddRestrictionAttribute method.

RemoveRestrictionAttributes is analogous to INetworkForwardStarSetup::RemoveRestriction method. However, RemoveRestriction could be used to remove an individual attribute.

Product Availability

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

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

getMaxTraversableHierarchyValue

public int getMaxTraversableHierarchyValue()
                                    throws IOException,
                                           AutomationException
Maximum hierarchy attribute value for elements permitted to be returned in the adjacency queries.

Remarks

If a HierarchyAttribute is specified, then, in calls to QueryAdjacencies, the NetworkForwardStar object will only return network edge elements whose HierarchyAttribute value is less than or equal to the MaxTraversableHierarchyValue value.

Product Availability

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

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

setMaxTraversableHierarchyValue

public void setMaxTraversableHierarchyValue(int maxValue)
                                     throws IOException,
                                            AutomationException
Maximum hierarchy attribute value for elements permitted to be returned in the adjacency queries.

Product Availability

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

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

addJunctionRestriction

public void addJunctionRestriction(INetworkJunction junction)
                            throws IOException,
                                   AutomationException
Restricts a junction element from being returned in the adjacency queries.

Remarks

AddJunctionRestriction restricts the input junction from being used in calls to QueryAdjacencies. The RemoveElementRestrictions method can be used for removing all element-specific restrictions.

AddJunctionRestriction, AddEdgeRestriction, and AddTurnRestriction are intended as a replacement to INetworkForwardStarSetup::Traversable, as well as the related INetworkForwardStar::SetAllTraversable, INetworkForwardStarSetup::SetTraversable, and INetworkForwardStarSetup::NonTraversableElements.

Product Availability

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

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

addEdgeRestriction

public void addEdgeRestriction(INetworkEdge edge,
                               double fromPosition,
                               double toPosition)
                        throws IOException,
                               AutomationException
Restricts the traversability of a range on an edge element in the adjacency queries.

Remarks

AddEdgeRestriction restricts a given range for the input edge. Multiple, disjoint partial-edge restrictions may be applied to the same edge. The RemoveElementRestrictions method can be used for removing all element-specific restrictions.

If the traversal cannot enter the edge from the atJunction of a QueryAdjacencies call due to partial (or whole) edge restrictions, then the edge will not be included in the NetworkForwardStarAdjacencies object.

AddJunctionRestriction, AddEdgeRestriction, and AddTurnRestriction are intended as a replacement to INetworkForwardStarSetup::Traversable, as well as the related INetworkForwardStar::SetAllTraversable, INetworkForwardStarSetup::SetTraversable, and INetworkForwardStarSetup::NonTraversableElements.

Product Availability

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

Specified by:
addEdgeRestriction in interface INetworkForwardStarEx
Parameters:
edge - A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)
fromPosition - The fromPosition (in)
toPosition - The toPosition (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addTurnRestriction

public void addTurnRestriction(INetworkTurn turn)
                        throws IOException,
                               AutomationException
Restricts a turn in the adjacency queries.

Remarks

AddTurnRestriction restricts the input turn's associated traversal maneuver in the NetworkForwardStar. The RemoveElementRestrictions method can be used for removing all element-specific restrictions.

AddJunctionRestriction, AddEdgeRestriction, and AddTurnRestriction are intended as a replacement to INetworkForwardStarSetup::Traversable, as well as the related INetworkForwardStar::SetAllTraversable, INetworkForwardStarSetup::SetTraversable, and INetworkForwardStarSetup::NonTraversableElements.

Product Availability

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

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

removeElementRestrictions

public void removeElementRestrictions()
                               throws IOException,
                                      AutomationException
Removes all element-specific restrictions currently applied to the NetworkForwardStar object.

Remarks

RemoveElementRestrictions removes all element-specific restrictions that have been added to the NetworkForwardStar via the AddEdgeRestriction, AddJunctionRestriction, or AddTurnRestriction methods.

Removing element-specific restrictions with this method does not affect filtering of elements in the NetworkForwardStar based on restriction attributes (i.e., elements may still be restricted by their restriction attribute values).

Product Availability

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

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

adjustJunctionAttributeValue

public void adjustJunctionAttributeValue(INetworkJunction junction,
                                         INetworkAttribute attribute,
                                         int adjustmentType,
                                         Object value)
                                  throws IOException,
                                         AutomationException
Adjusts the value of a network attribute for a junction element.

Remarks

AdjustJunctionAttributeValue applies attribute adjustments to the input junction.

Attribute adjustments at the NetworkForwardStar level allow dynamically adjusting network attribute values at runtime. For example, it is possible to add a constant value to a cost attribute or scale a cost attribute by a constant factor, as well as dynamically replacing attribute values.

Please see the help for esriNetworkAttributeAdjustmentType for attribute adjustment usage protocols.

Product Availability

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

Specified by:
adjustJunctionAttributeValue in interface INetworkForwardStarEx
Parameters:
junction - A reference to a com.esri.arcgis.geodatabase.INetworkJunction (in)
attribute - A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)
adjustmentType - A com.esri.arcgis.geodatabase.esriNetworkAttributeAdjustmentType constant (in)
value - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

adjustEdgeAttributeValue

public void adjustEdgeAttributeValue(INetworkEdge edge,
                                     double fromPosition,
                                     double toPosition,
                                     INetworkAttribute attribute,
                                     int adjustmentType,
                                     Object value)
                              throws IOException,
                                     AutomationException
Adjusts the value of a network attribute for a range on an edge element.

Remarks

AdjustEdgeAttributeValue applies attribute adjustments along a given range for the input edge. Multiple, disjoint partial-edge attribute adjustments may be applied to the same edge. The RemoveAttributeAdjustments method can be used for removing all element-specific attribute adjustments.

Attribute adjustments at the NetworkForwardStar level allow dynamically adjusting network attribute values at runtime. For example, it is possible to add a constant value to a cost attribute or scale a cost attribute by a constant factor, as well as dynamically replacing attribute values.

Please see the help for esriNetworkAttributeAdjustmentType for attribute adjustment usage protocols, including rules for overlapping attribute adjustments along an edge.

Product Availability

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

Specified by:
adjustEdgeAttributeValue in interface INetworkForwardStarEx
Parameters:
edge - A reference to a com.esri.arcgis.geodatabase.INetworkEdge (in)
fromPosition - The fromPosition (in)
toPosition - The toPosition (in)
attribute - A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)
adjustmentType - A com.esri.arcgis.geodatabase.esriNetworkAttributeAdjustmentType constant (in)
value - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

adjustTurnAttributeValue

public void adjustTurnAttributeValue(INetworkTurn turn,
                                     INetworkAttribute attribute,
                                     int adjustmentType,
                                     Object value)
                              throws IOException,
                                     AutomationException
Adjusts the value of a network attribute for a turn element.

Remarks

AdjustTurnAttributeValue applies attribute adjustments to the input turn.

Attribute adjustments at the NetworkForwardStar level allow dynamically adjusting network attribute values at runtime. For example, it is possible to add a constant value to a cost attribute or scale a cost attribute by a constant factor, as well as dynamically replacing attribute values.

Please see the help for esriNetworkAttributeAdjustmentType for attribute adjustment usage protocols.

Product Availability

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

Specified by:
adjustTurnAttributeValue in interface INetworkForwardStarEx
Parameters:
turn - A reference to a com.esri.arcgis.geodatabase.INetworkTurn (in)
attribute - A reference to a com.esri.arcgis.geodatabase.INetworkAttribute (in)
adjustmentType - A com.esri.arcgis.geodatabase.esriNetworkAttributeAdjustmentType constant (in)
value - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeAttributeValueAdjustments

public void removeAttributeValueAdjustments()
                                     throws IOException,
                                            AutomationException
Removes all element-specific attribute value adjustments currently applied to the NetworkForwardStar object.

Remarks

Removes all element-specific attribute value adjustments currently applied to the NetworkForwardStar object.

Product Availability

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

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

isRestricted

public boolean isRestricted(INetworkElement element)
                     throws IOException,
                            AutomationException
Indicates if the given network element is restricted from traversal in the NetworkForwardStar object.

Product Availability

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

Specified by:
isRestricted in interface INetworkForwardStarEx
Parameters:
element - A reference to a com.esri.arcgis.geodatabase.INetworkElement (in)
Returns:
The isRestricted
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.