com.esri.arcgis.networkanalyst
Class NAClassDefinition

java.lang.Object
  extended by com.esri.arcgis.networkanalyst.NAClassDefinition
All Implemented Interfaces:
com.esri.arcgis.interop.RemoteObjRef, INAClassDefinition, INAClassDefinition2, INAClassDefinitionEdit, IClone, IPersist, IPersistStream, IXMLSerialize, Externalizable, Serializable

public class NAClassDefinition
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, INAClassDefinition, INAClassDefinition2, INAClassDefinitionEdit, IClone, IPersistStream, IXMLSerialize, Externalizable

Defines how fields should be mapped as inputs and outputs of analysis functions.

Remarks

The NAClassDefinition is created and maintained by the network solver. The NAClassDefinition holds information about how the NAClass fields should be created when the solver creates the NAContext and corresponding NAClass objects. It also holds additional information about the fields of the NAClass that cannot be found on the IField interface. This information is used by the solver and the Network Analyst Tools.

There are three ways to obtain NAClassDefinition objects:

Product Availability

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

See Also:
Serialized Form

Constructor Summary
NAClassDefinition()
          Constructs a NAClassDefinition using ArcGIS Engine.
NAClassDefinition(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
NAClassDefinition theNAClassDefinition = (NAClassDefinition) obj;
 
Method Summary
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 void deserialize(IXMLSerializeData data)
          Deserializes an object from XML.
 boolean equals(Object o)
          Compare this object with another
 IClone esri_clone()
          Clones the receiver and assigns the result to *clone.
 int findLocationRangesField()
          The field index of the Location Ranges BLOB field used to store LocationRanges, or -1 if the referenced NAClass does not support NALocationRanges.
 IStringArray getCandidateFieldNames(String fieldName)
          The field names that will be used by default for the network analyst class.
 IUID getClassCLSID()
          The COM class id for the network analyst class.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 IFields getFields()
          The fields for the network analyst class.
 int getFieldType(String fieldName)
          The field type for a network analyst class field.
 int getLowerBound()
          The minimum number of objects required in the class by the solver to perform analysis.
 String getName()
          The name of the class.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 int getUpperBound()
          The maximum number of objects allowed in the class by the solver to perform analysis.
 int hashCode()
          the hashcode for this object
 void isDirty()
          isDirty
 boolean isEqual(IClone other)
          Indicates if the receiver and other have the same properties.
 boolean isHasLocationFields()
          Indicates if the class has location fields.
 boolean isIdentical(IClone other)
          Indicates if the receiver and other are the same object.
 boolean isInput()
          Indicates if the class is used as an input to analysis.
 boolean isOutput()
          Indicates if the class is used as an output from analysis.
 void load(IStream pstm)
          load
 void readExternal(ObjectInput in)
           
 void save(IStream pstm, int fClearDirty)
          save
 void serialize(IXMLSerializeData data)
          Serializes an object to XML.
 void setCandidateFieldNamesByRef(String fieldName, IStringArray rhs2)
          The field names that will be used by default for the network analyst class.
 void setClassCLSIDByRef(IUID rhs1)
          The COM class id for the network analyst class.
 void setFieldsByRef(IFields rhs1)
          The fields for the network analyst class.
 void setFieldType(String fieldName, int rhs2)
          The field type for a network analyst class field.
 void setIsInput(boolean rhs1)
          Indicates if the class is used as an input to analysis.
 void setIsOutput(boolean rhs1)
          Indicates if the class is used as an output from analysis.
 void setLowerBound(int rhs1)
          The minimum number of objects required in the class by the solver to perform analysis.
 void setName(String rhs1)
          The name of the class.
 void setUpperBound(int rhs1)
          The maximum number of objects allowed in the class by the solver to perform analysis.
 void writeExternal(ObjectOutput out)
           
 
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

NAClassDefinition

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

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

NAClassDefinition

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

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

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

getClsid

public static String getClsid()
getClsid.


equals

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

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

getName

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

Remarks

Name returns the name of the NAClass.

Product Availability

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

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

getClassCLSID

public IUID getClassCLSID()
                   throws IOException,
                          AutomationException
The COM class id for the network analyst class.

Remarks

ClassCLSID returns the CLSID of the row returned from the NAClass. By default this value is "{D4D5923C-EA31-4B8D-9050-6429CF17AB41}" which represents "esriNetworkAnalyst.NALocationFeature.1".

Product Availability

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

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

getFields

public IFields getFields()
                  throws IOException,
                         AutomationException
The fields for the network analyst class.

Remarks

Fields returns the fields on the NAClass.

Product Availability

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

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

getFieldType

public int getFieldType(String fieldName)
                 throws IOException,
                        AutomationException
The field type for a network analyst class field.

Product Availability

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

Specified by:
getFieldType in interface INAClassDefinition
Parameters:
fieldName - The fieldName (in)
Returns:
The naFieldType
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCandidateFieldNames

public IStringArray getCandidateFieldNames(String fieldName)
                                    throws IOException,
                                           AutomationException
The field names that will be used by default for the network analyst class.

Product Availability

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

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

isHasLocationFields

public boolean isHasLocationFields()
                            throws IOException,
                                   AutomationException
Indicates if the class has location fields.

Remarks

HasLocationFields returns true if the NAClass has the 4 fields (SourceID, SourceOID, PosAlong, and SideOfEdge) that are necessary to represent network locations.

Product Availability

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

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

getLowerBound

public int getLowerBound()
                  throws IOException,
                         AutomationException
The minimum number of objects required in the class by the solver to perform analysis.

Remarks

LowerBound specifies the minimum number of NALocationObjects that are required by the solver to perform analysis.

For example, an NARouteSolver requires at least 2 stops. This means that the LowerBound property of the Stop's NAClassDefinition would be 2.

Product Availability

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

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

getUpperBound

public int getUpperBound()
                  throws IOException,
                         AutomationException
The maximum number of objects allowed in the class by the solver to perform analysis.

Remarks

UpperBound specifies the maximum number of NALocationObjects that are allowed by the solver to perform analysis.

Product Availability

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

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

isInput

public boolean isInput()
                throws IOException,
                       AutomationException
Indicates if the class is used as an input to analysis.

Remarks

IsInput specifies if the NAClass is used as input to the solver.

Product Availability

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

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

isOutput

public boolean isOutput()
                 throws IOException,
                        AutomationException
Indicates if the class is used as an output from analysis.

Remarks

IsOutput specifies if the NAClass is used as output by the solver.

Product Availability

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

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

findLocationRangesField

public int findLocationRangesField()
                            throws IOException,
                                   AutomationException
The field index of the Location Ranges BLOB field used to store LocationRanges, or -1 if the referenced NAClass does not support NALocationRanges.

Remarks

Returns the index of the Location Ranges field within the NAClass.

Product Availability

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

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

setName

public void setName(String rhs1)
             throws IOException,
                    AutomationException
The name of the class.

Remarks

This property should only be set by a custom solver during the creation of the NAContext.

Product Availability

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

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

setClassCLSIDByRef

public void setClassCLSIDByRef(IUID rhs1)
                        throws IOException,
                               AutomationException
The COM class id for the network analyst class.

Remarks

This property should only be set by a custom solver during the creation of the NAContext.

Product Availability

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

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

setFieldsByRef

public void setFieldsByRef(IFields rhs1)
                    throws IOException,
                           AutomationException
The fields for the network analyst class.

Remarks

This property should only be set by a custom solver during the creation of the NAContext.

Product Availability

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

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

setFieldType

public void setFieldType(String fieldName,
                         int rhs2)
                  throws IOException,
                         AutomationException
The field type for a network analyst class field.

Product Availability

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

Specified by:
setFieldType in interface INAClassDefinitionEdit
Parameters:
fieldName - The fieldName (in)
rhs2 - The rhs2 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCandidateFieldNamesByRef

public void setCandidateFieldNamesByRef(String fieldName,
                                        IStringArray rhs2)
                                 throws IOException,
                                        AutomationException
The field names that will be used by default for the network analyst class.

Remarks

CandidateFieldNames returns an IStringArray that contains an array of field names that are used to provide hints to the NAClassFieldMap for how to map input fields to fields on the NAClass.

This property is OK to be set at any time.

Product Availability

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

Specified by:
setCandidateFieldNamesByRef in interface INAClassDefinitionEdit
Parameters:
fieldName - The fieldName (in)
rhs2 - A reference to a com.esri.arcgis.system.IStringArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setLowerBound

public void setLowerBound(int rhs1)
                   throws IOException,
                          AutomationException
The minimum number of objects required in the class by the solver to perform analysis.

Remarks

LowerBound specifies the minimum number of network locations required by the solver to perform analysis.

This property should only be set by a custom solver during the creation of the NAContext.

Product Availability

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

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

setUpperBound

public void setUpperBound(int rhs1)
                   throws IOException,
                          AutomationException
The maximum number of objects allowed in the class by the solver to perform analysis.

Remarks

UpperBound specifies the maximum number of network locations required by the solver to perform analysis.

This property should only be set by a custom solver during the creation of the NAContext.

Product Availability

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

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

setIsInput

public void setIsInput(boolean rhs1)
                throws IOException,
                       AutomationException
Indicates if the class is used as an input to analysis.

Remarks

IsInput specifies if the NAClass is used as input for the solve.

An NAClass may be both an input and output class. For example, Stops are used as input to specify the locations visited and used as output to specify how long it took to reach each location visited.

This property should only be set by a custom solver during the creation of the NAContext.

Product Availability

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

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

setIsOutput

public void setIsOutput(boolean rhs1)
                 throws IOException,
                        AutomationException
Indicates if the class is used as an output from analysis.

Remarks

IsOutput specifies if the NAClass is used as output generated during the solve.

An output NAClass generally has features written to it or fields updated on existing features during solve. An NAClass may be both an input and output class. For example, Stops are used as input to specify the locations visited and used as output to specify how long it took to reach each location visited.

This property should only be set by a custom solver during the creation of the NAContext.

Product Availability

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

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

esri_clone

public IClone esri_clone()
                  throws IOException,
                         AutomationException
Clones the receiver and assigns the result to *clone.

Product Availability

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

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

assign

public void assign(IClone src)
            throws IOException,
                   AutomationException
Assigns the properties of src to the receiver.

Description

Use Assign method to assign the properties of source object to receiver object. Both objects need to have the same CLSIDs. Both source and receiver objects need to be instantiated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isEqual

public boolean isEqual(IClone other)
                throws IOException,
                       AutomationException
Indicates if the receiver and other have the same properties.

Description

IsEqual returns True if the receiver and the source have the same properties. Note, this does not imply that the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isIdentical

public boolean isIdentical(IClone other)
                    throws IOException,
                           AutomationException
Indicates if the receiver and other are the same object.

Description

IsIdentical returns true if the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isIdentical in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The identical
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public void isDirty()
             throws IOException,
                    AutomationException
isDirty

Description

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

load

public void load(IStream pstm)
          throws IOException,
                 AutomationException
load

Description

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

save

public void save(IStream pstm,
                 int fClearDirty)
          throws IOException,
                 AutomationException
save

Description

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
save in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
fClearDirty - The fClearDirty (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSizeMax

public void getSizeMax(_ULARGE_INTEGER[] pcbSize)
                throws IOException,
                       AutomationException
getSizeMax

Description

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSizeMax in interface IPersistStream
Parameters:
pcbSize - A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClassID

public void getClassID(GUID[] pClassID)
                throws IOException,
                       AutomationException
getClassID

Description

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getClassID in interface IPersist
Parameters:
pClassID - A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

serialize

public void serialize(IXMLSerializeData data)
               throws IOException,
                      AutomationException
Serializes an object to XML.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

deserialize

public void deserialize(IXMLSerializeData data)
                 throws IOException,
                        AutomationException
Deserializes an object from XML.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException