Casting and runtime type checking (using instanceof)


This document was published with and applies to ArcGIS 9.3.1.
A 10 version also exists. A 9.3 version also exists.

In this topic


About casting a run time type checking (using instanceof)

ArcObjects follow an interface based programming style. Many methods use interface types as parameters and have interfaces as return values. When the return value of a method is an interface type, the method returns an object implementing that interface. When a method takes an interface type as a parameter, it can take any object implementing that interface. This style of programming has the advantage that the same method can work with many different underlying objects that implement the required interface. Thus, client code is implementation agnostic.
 
In the Java programming language, the casting and coercing operation is used to convert between types and the instanceof operator is used to check for type information at run time. From ArcGIS 9.2 onwards, Java products provide a greater support for Java style casting and instanceof operations when compared to prior releases.
 
The usage of these operations in the context of ArcObjects Java programming is explained as follows:

Old casting method

The following are the types of casts you can use with the ArcGIS Java application programming interface (API):
 
You may want to know which of the specific concrete class types were returned by the IFeature.getShape() method for which the instanceof operator can be used. These concepts are best described by code examples that compare the two styles (old and new) of casting and performing run time checks while programming ArcObjects Java.
 
See the following code example of the old style of casting:
 

[Java]
IFeature feature = featureClass.getFeature(i);
//Assume that the underlying feature was a Point or a Polygon.
IGeometry geom = feature.getShape();
try
{
    Point p = new Point(geom);
    // One reason for the following method's failure would be if geom is
    // not a Point.
    p.setX(value);
}

catch (Exception e)
{
    try
    {
        // p.setX(value) failed because geom is not of type Point.
        // Try Polygon.
        Polygon poly = new Polygon(geom);
        poly.getArea(); // Successful, if the geom is a Polygon.
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}
The old style of casting and run time checks using the single valued constructors of IxxxProxy() type classes is still supported for backward compatibility.

New casting method and run time checks

In the new style of casting, a full-fledged Point object is precast and returned as the result of the feature.getShape(). ESRI's interoperability bridge—which facilitates communication between the native ArcObjects runtime and the Java runtime environment—contains the logic for performing this precasting operation on the return value to hand back a concrete object that implements the returned interface, in addition to other relevant interfaces on that object (IPoint, IZAware, and so on) on a Point object.
 
See the following code example of the new style of casting:
 

[Java]
IFeature feature = featureClass.getFeature(i);
//Assume that the underlying feature was a Point or a Polygon.
IGeometry geom = feature.getShape();
if (geom instanceof Polygon)
    Polygon polygon = (Polygon)geom;
else if (geom instanceof Point)
    Point point = (Point)geom;

Working with workspaces

The concept of a workspace is central to any application that works with geographic data. The ArcGIS Java API provides support for working with approximately 16 different types of workspaces (ShapefileWorkspace, RasterWorkspace, and so on).
 
The workspace implementation in native ArcObjects follows the abstract factory pattern. The result is that a user opening a workspace through a workspace factory gets an interface (IWorkspace) on that underlying workspace that was created.
 
In prior releases, what followed was a proxy style cast to an interface on the Workspace class or the creation of the Workspace class by passing a reference to the IWorkspace interface, then casting to the required interface (for example, IDataset).

The Workspace class exposes a collection of generic interfaces and operations that are supported by all the typed workspace implementations. At the ArcGIS Java 9.2 release, the return value of each method used to open a workspace—IWorkspaceFactory.open(), IWorkspaceFactory.openFromFile(), or IWorkspaceFactory2.openFromString()—will be wrapped in an instance of the Workspace class so that switching between interfaces on the Workspace class (IWorkspace, IDataset, and so on) can be performed using Java's language support for casting.
 
See the following code example of usage patterns that can be used:
 

[Java]
ShapefileWorkspaceFactory shpWksFactory = new ShapefileWorkspaceFactory();
// Usage 1:
IFeatureWorkspace ws = (IFeatureWorkspace)shpWksFactory.openFromFile(
    "\path\to\workspace", 0);
// Usage 2:
Workspace ws = shpWksFactory.openFromFile("\path\to\workspace", 0);
IFeatureWorkspace fws = (IFeatureWorkspace)ws;
// Usage 3:
IWorkspace ws = shpWksFactory.openFromFile("\path\to\workspace", 0);
IFeatureWorkspace fws = (IFeatureWorkspace)ws;
 

[Java]
RasterWorkspaceFactory rstrWksFactory = new RasterWorkspaceFactory();
Workspace ws = rstrWksFactory.open("\path\to\workspace", 0);
// IRasterWorkspace is not implemented by the Workspace class.
IRasterWorkspace rasterWs = new IRasterWorkspaceProxy(ws);

ArcObjects that do not support casting or instanceof operator

In the ArcGIS Java API, the return values of certain methods cannot be cast to a particular category of types. The following are the types and classes that belong to this category: FeatureClass, FeatureCursor, FeatureDataset, RelQueryTable, Table, and so on.
At 9.3, you can easily identify which classes and interfaces support casting. An ArcObjects class supports casting if it's single argument constructor is deprecated. An ArcObjects interface supports casting if it's corresponding proxy is deprecated. Such proxies are intentionally not listed in the ArcObjects javadoc to prevent distracting developers.
 
If you find that an interface's proxy or a class' single argument constructor is deprecated, you can infer that it supports Java style casting. If not deprecated, you must use the old-style casting methodology described earlier in this document.
 
Such classes are designed to be abstract classes or concept types of classes in the ArcObjects object model specification. A FeatureClass, for example, can be thought of as a concept that models a finite set of spatial features. Internal to ArcObjects, there can be several different implementations of the notion of a feature class. Hence FeatureClass does not directly map to one particular underlying implementation of a feature class (as opposed to a Point class in the Java API that parallels a Point class in native ArcObjects).
 
The purpose of exposing the FeatureClass (and other classes in this category) in the Java API is to provide the user with the knowledge of a set of generic interfaces that every concrete implementation of such an abstract class would minimally support.
 
See the following code example:

[Java]
IWorkspaceFactory wf = new ShapefileWorkspaceFactory();
IFeatureWorkspace fw = new IFeatureWorkspaceProxy(wf.openFromFile(
    "\path\to\data", 0))

// This will not work and throws a java.lang.ClassCastException.
FeatureClass fc = (FeatureClass)fw.openFeatureClass("featureclass name");

// This is the correct way.
IFeatureClass fc = fw.openFeatureClass("featureclass name");
FeatureClass featureClass = new FeatureClass(fc);

// Or,

// This is the correct way using the old proxy style of casting. 
IFeatureClass fc = fw.openFeatureClass("featureclass name");
IGeoDataset gds = new IGeoDatasetProxy(fc);
The preceding code example shows that return values of methods—for example, fw.openFeatureClass()—will not be precast into any of the following candidate classes: FeatureClass, NAClass, RasterCatalog, RelQueryTable, RouteEventSource, or XYEventSource—that implement the returned interface because the internal ArcObjects classes implementing these abstract classes are private and not exposed through the API.
 
In this case, use the old proxy style casting to switch between interfaces that you expect on a candidate class (for example, from IFeatureClass to IGeoDataset) or create a new full-fledged instance of such a class using its single argument constructor (featureClass = new FeatureClass(fc)), then work with the interfaces on them as demonstrated in the code example.
 
The following code example summarizes the concepts discussed in this topic. The example opens a ShapefileWorkspace and retrieves a feature from a feature class:
 

[Java]
ShapefileWorkspaceFactory shpWksFactory = new ShapefileWorkspaceFactory();
IFeatureWorkspace fws = (IFeatureWorkspace)shpWksFactory.openFromFile(
    "\path\to\workspace", 0);
// This prints true.
System.out.println((fws instanceof Workspace));
IFeatureClass featureClass = fws.openFeatureClass("feature class");
// Old style casting needed here.
ITable table = new ITableProxy(featureClass);
int numRows = table.rowCount(null);
// This method returns a concrete object that models the underlying 
// geometry and feature (Point or Polygon).
IGeometry geom = featureClass.getFeature(i);
if (geom instanceof Point)
    doSomethingWithPoint();
else if (geom Instanceof Polygon)
    doSomethingWithPolygon();

List of ArcObject classes

Following is a list of the classes that do not support casting or the instanceof operator.
 

[HTML]
com.esri.arcgis.analyst3d.Hit3D
com.esri.arcgis.analyst3d.Hit3DSet

com.esri.arcgis.arcweb.ArcWebAddressFinderInfo
com.esri.arcgis.arcweb.ArcWebConnectDialog
com.esri.arcgis.arcweb.ArcWebConnection
com.esri.arcgis.arcweb.ArcWebConnectionNeededDialog
com.esri.arcgis.arcweb.ArcWebCountryCodeHelper
com.esri.arcgis.arcweb.ArcWebCustomVariableInfo
com.esri.arcgis.arcweb.ArcWebDirections
com.esri.arcgis.arcweb.ArcWebField
com.esri.arcgis.arcweb.ArcWebFields
com.esri.arcgis.arcweb.ArcWebLocation
com.esri.arcgis.arcweb.ArcWebLocationInfo
com.esri.arcgis.arcweb.ArcWebPlaceFinder
com.esri.arcgis.arcweb.ArcWebPlaceFinderInfo
com.esri.arcgis.arcweb.ArcWebPlaceFinderOptions
com.esri.arcgis.arcweb.ArcWebRouteFinder
com.esri.arcgis.arcweb.ArcWebRouteInfo
com.esri.arcgis.arcweb.ArcWebRow
com.esri.arcgis.arcweb.ArcWebSpatialQueryInfo
com.esri.arcgis.arcweb.ArcWebTable
com.esri.arcgis.arcweb.ArcWebThematicVariableInfo
com.esri.arcgis.arcweb.EnumArcWebAddressFinderInfo
com.esri.arcgis.arcweb.EnumArcWebCountry
com.esri.arcgis.arcweb.EnumArcWebCustomVariableInfo
com.esri.arcgis.arcweb.EnumArcWebDirections
com.esri.arcgis.arcweb.EnumArcWebLocationInfo
com.esri.arcgis.arcweb.EnumArcWebLocations
com.esri.arcgis.arcweb.EnumArcWebPlaceFinderInfo
com.esri.arcgis.arcweb.EnumArcWebReportInfo
com.esri.arcgis.arcweb.EnumArcWebRouteStops
com.esri.arcgis.arcweb.EnumArcWebSpatialQueryInfo
com.esri.arcgis.arcweb.EnumArcWebThematicVariableInfo
com.esri.arcgis.arcweb.EnumArcWebTurnByTurnMaps

com.esri.arcgis.carto.AnnotationElement
com.esri.arcgis.carto.AnnotationExpressionParser
com.esri.arcgis.carto.BasicPlacedObject
com.esri.arcgis.carto.DynamicDisplay
com.esri.arcgis.carto.DynamicGlyph
com.esri.arcgis.carto.FDOGraphicsSublayer
com.esri.arcgis.carto.GeoReferenceEvents
com.esri.arcgis.carto.GraphicsSubLayer
com.esri.arcgis.carto.IMSSubFeatureLayer
com.esri.arcgis.carto.IMSSubLayer
com.esri.arcgis.carto.MapSelection
com.esri.arcgis.carto.MapServerBasicSublayer
com.esri.arcgis.carto.MapServerFindSublayer
com.esri.arcgis.carto.MapServerIdentifySublayer
com.esri.arcgis.carto.MapServerQuerySublayer
com.esri.arcgis.carto.RasterFormatInfo
com.esri.arcgis.carto.RasterIdentifyObj
com.esri.arcgis.carto.RasterRGBSymbol
com.esri.arcgis.carto.RepresentationLegendClass
com.esri.arcgis.carto.SimpleRasterIdentifyObj
com.esri.arcgis.carto.WMSGroupLayer
com.esri.arcgis.carto.WMSLayer

com.esri.arcgis.controls.ARCommandInfo
com.esri.arcgis.controls.ARFeature
com.esri.arcgis.controls.ARFeatureCursor
com.esri.arcgis.controls.ARFeatureSet
com.esri.arcgis.controls.ARLayer
com.esri.arcgis.controls.ARMap
com.esri.arcgis.controls.ARPageLayout
com.esri.arcgis.controls.ARUnitConverter
com.esri.arcgis.controls.ArcReaderConfiguration
com.esri.arcgis.controls.ArcReaderControl
com.esri.arcgis.controls.ArcReaderSearchDef
com.esri.arcgis.controls.EngineFeatureInspector
com.esri.arcgis.controls.GlobeControl
com.esri.arcgis.controls.LicenseControl
com.esri.arcgis.controls.MapControl
com.esri.arcgis.controls.PageLayoutControl
com.esri.arcgis.controls.SceneControl
com.esri.arcgis.controls.SymbologyControl
com.esri.arcgis.controls.SymbologyStyleClass
com.esri.arcgis.controls.TOCControl
com.esri.arcgis.controls.ToolbarControl
com.esri.arcgis.controls.ToolbarItem

com.esri.arcgis.datainterop.FMECursorHelper
com.esri.arcgis.datainterop.FMEDataset
com.esri.arcgis.datainterop.FMEDatasetHelper
com.esri.arcgis.datainterop.FMEDatasetTypeFactory
com.esri.arcgis.datainterop.FMEDestDatasetType
com.esri.arcgis.datainterop.FMEExportFunction
com.esri.arcgis.datainterop.FMEExtensionHelper
com.esri.arcgis.datainterop.FMEFunctionFactory
com.esri.arcgis.datainterop.FMEImportFunction
com.esri.arcgis.datainterop.FMENativeType
com.esri.arcgis.datainterop.FMESourceDatasetType
com.esri.arcgis.datainterop.FMETool
com.esri.arcgis.datainterop.FMEToolFactory
com.esri.arcgis.datainterop.FMEToolShutdownCallback
com.esri.arcgis.datainterop.FMEWorkspaceHelper

com.esri.arcgis.datasourcesGDB.Sde3Workspace
com.esri.arcgis.datasourcesGDB.Sde4Workspace

com.esri.arcgis.datasourcesfile.SMDirItem
com.esri.arcgis.datasourcesfile.SMDirections
com.esri.arcgis.datasourcesfile.SMFlag
com.esri.arcgis.datasourcesfile.SMFlagCreator
com.esri.arcgis.datasourcesfile.SMNetAttribute
com.esri.arcgis.datasourcesfile.SMNetAttributesAccess
com.esri.arcgis.datasourcesfile.SMNetAttributesCollection
com.esri.arcgis.datasourcesfile.SMNetBarriersCollection
com.esri.arcgis.datasourcesfile.SMPointsCollection
com.esri.arcgis.datasourcesfile.SMRoadPreferences
com.esri.arcgis.datasourcesfile.SMRouter
com.esri.arcgis.datasourcesfile.SMRouterEnvelope
com.esri.arcgis.datasourcesfile.SMSpeedGroup
com.esri.arcgis.datasourcesfile.SMSpeedGroups
com.esri.arcgis.datasourcesfile.SMTripPlanSettings
com.esri.arcgis.datasourcesfile.SdcExporter

com.esri.arcgis.datasourcesnetCDF.NetCDFWorkspace

com.esri.arcgis.datasourcesraster.PixelBlock
com.esri.arcgis.datasourcesraster.RasterBand
com.esri.arcgis.datasourcesraster.RasterBands
com.esri.arcgis.datasourcesraster.RasterCursor
com.esri.arcgis.datasourcesraster.RasterDataManagementEventsHelper
com.esri.arcgis.datasourcesraster.RasterNativeType
com.esri.arcgis.datasourcesraster.RasterStatusEvent2Helper
com.esri.arcgis.datasourcesraster.RasterStatusEventHelper
com.esri.arcgis.datasourcesraster.RasterWorkspace

com.esri.arcgis.geodatabase.AttributedRelationshipClass
com.esri.arcgis.geodatabase.ConfigurationKeyword
com.esri.arcgis.geodatabase.ConfigurationParameter
com.esri.arcgis.geodatabase.Cursor
com.esri.arcgis.geodatabase.DddServerEnvironment
com.esri.arcgis.geodatabase.DifferenceCursor
com.esri.arcgis.geodatabase.EnumConflictClass
com.esri.arcgis.geodatabase.EnumDatasetType
com.esri.arcgis.geodatabase.EnumFieldError
com.esri.arcgis.geodatabase.EnumHistoricalMarker
com.esri.arcgis.geodatabase.EnumIDs
com.esri.arcgis.geodatabase.EnumInvalidObject
com.esri.arcgis.geodatabase.EnumNetWeightAssociation
com.esri.arcgis.geodatabase.EnumNetworkElement
com.esri.arcgis.geodatabase.EnumVersionInfo
com.esri.arcgis.geodatabase.EnumXMLIndexTemplate
com.esri.arcgis.geodatabase.FeatureClass
com.esri.arcgis.geodatabase.FeatureCursor
com.esri.arcgis.geodatabase.FeatureDataset
com.esri.arcgis.geodatabase.FieldError
com.esri.arcgis.geodatabase.ForwardStar
com.esri.arcgis.geodatabase.GeometricNetwork
com.esri.arcgis.geodatabase.HistoricalVersionMarker
com.esri.arcgis.geodatabase.InvalidObjectInfo
com.esri.arcgis.geodatabase.MemoryRelationshipClass
com.esri.arcgis.geodatabase.NetElementClass
com.esri.arcgis.geodatabase.NetworkAttribute
com.esri.arcgis.geodatabase.NetworkDataset
com.esri.arcgis.geodatabase.NetworkDatasetFDExtension
com.esri.arcgis.geodatabase.NetworkDatasetWorkspaceExtension
com.esri.arcgis.geodatabase.NetworkEdge
com.esri.arcgis.geodatabase.NetworkForwardStar
com.esri.arcgis.geodatabase.NetworkForwardStarAdjacencies
com.esri.arcgis.geodatabase.NetworkJunction
com.esri.arcgis.geodatabase.NetworkScriptEvaluatorFunctions
com.esri.arcgis.geodatabase.NetworkSource
com.esri.arcgis.geodatabase.NetworkTurn
com.esri.arcgis.geodatabase.NetworkWorkspace
com.esri.arcgis.geodatabase.ObjectClass
com.esri.arcgis.geodatabase.ObjectClassName
com.esri.arcgis.geodatabase.QueryDef
com.esri.arcgis.geodatabase.RasterCatalog
com.esri.arcgis.geodatabase.RelQueryCursor
com.esri.arcgis.geodatabase.RelQueryRow
com.esri.arcgis.geodatabase.RelQueryTable
com.esri.arcgis.geodatabase.RelQueryTableSelectionSet
com.esri.arcgis.geodatabase.Relationship
com.esri.arcgis.geodatabase.RelationshipClass
com.esri.arcgis.geodatabase.ReplicaDescriptionExtension
com.esri.arcgis.geodatabase.Representation
com.esri.arcgis.geodatabase.RepresentationClass
com.esri.arcgis.geodatabase.RowBuffer
com.esri.arcgis.geodatabase.SelectionSet
com.esri.arcgis.geodatabase.StreetNetwork
com.esri.arcgis.geodatabase.SystemJunctionSource
com.esri.arcgis.geodatabase.Table
com.esri.arcgis.geodatabase.TableName
com.esri.arcgis.geodatabase.TinEdgeArray
com.esri.arcgis.geodatabase.TinEdgeEnumerator
com.esri.arcgis.geodatabase.TinNodeArray
com.esri.arcgis.geodatabase.TinNodeEnumerator
com.esri.arcgis.geodatabase.TinPolygon
com.esri.arcgis.geodatabase.TinPolyline
com.esri.arcgis.geodatabase.TinSurfaceElement
com.esri.arcgis.geodatabase.TinTriangleArray
com.esri.arcgis.geodatabase.TinTriangleEnumerator
com.esri.arcgis.geodatabase.Topology
com.esri.arcgis.geodatabase.TopologyEdge
com.esri.arcgis.geodatabase.TopologyErrorFeature
com.esri.arcgis.geodatabase.TopologyGraph
com.esri.arcgis.geodatabase.TopologyNode
com.esri.arcgis.geodatabase.UtilityNetwork
com.esri.arcgis.geodatabase.VersionInfo
com.esri.arcgis.geodatabase.VersionedWorkspace
com.esri.arcgis.geodatabase.Workspace
com.esri.arcgis.geodatabase.WorkspaceExtension
com.esri.arcgis.geodatabase.WorkspaceFactory
com.esri.arcgis.geodatabase.XYEventSource

com.esri.arcgis.geodatabasedistributed.DataChanges
com.esri.arcgis.geodatabasedistributed.OperationProgress
com.esri.arcgis.geodatabasedistributed.ReplicaProgress

com.esri.arcgis.geodatabaseextensions.CadastralFabric
com.esri.arcgis.geodatabaseextensions.CadastralFabricFDExtension
com.esri.arcgis.geodatabaseextensions.DynamicSurface
com.esri.arcgis.geodatabaseextensions.Terrain
com.esri.arcgis.geodatabaseextensions.TerrainFeatureDatasetExtension

com.esri.arcgis.geometry.GeometryArray
com.esri.arcgis.geometry.PointArray
com.esri.arcgis.geometry.PolygonArray
com.esri.arcgis.geometry.PolylineArray
com.esri.arcgis.geometry.RelationResultArray

com.esri.arcgis.globecore.GlobeTileGenerator

com.esri.arcgis.location.AGSAddressLocator
com.esri.arcgis.location.AGSLocatorWorkspace
com.esri.arcgis.location.AttachedLocator
com.esri.arcgis.location.DatabaseLocatorWorkspace
com.esri.arcgis.location.ESRIFDOAddressLocator
com.esri.arcgis.location.ESRIFDOAddressLocatorStyle
com.esri.arcgis.location.LocalLocatorWorkspace
com.esri.arcgis.location.LocatorEnumerator
com.esri.arcgis.location.LocatorNameEnumerator
com.esri.arcgis.location.ReferenceDataField
com.esri.arcgis.location.ReferenceDataFieldsEnumerator
com.esri.arcgis.location.ReferenceDataIndex
com.esri.arcgis.location.ReferenceDataIndexEnumerator
com.esri.arcgis.location.ReferenceDataTable
com.esri.arcgis.location.ReferenceDataTableEnumerator
com.esri.arcgis.location.RouteEventSource
com.esri.arcgis.location.RouteMeasureLocator
com.esri.arcgis.location.StreetMapAddressLocator
com.esri.arcgis.location.StreetMapAddressLocatorStyle

com.esri.arcgis.maplex.EnumMaplexPlacedLabel
com.esri.arcgis.maplex.MaplexPlacedLabel

com.esri.arcgis.networkanalysis.EIDInfo
com.esri.arcgis.networkanalysis.EnumEIDInfo
com.esri.arcgis.networkanalyst.NAClass

com.esri.arcgis.schematic.NgADODataSource
com.esri.arcgis.schematic.NgADOExtendedDataSource
com.esri.arcgis.schematic.NgADORecordset
com.esri.arcgis.schematic.NgAttribute
com.esri.arcgis.schematic.NgAttributeConstant
com.esri.arcgis.schematic.NgAttributeField
com.esri.arcgis.schematic.NgAttributeFormatted
com.esri.arcgis.schematic.NgAttributeFunction
com.esri.arcgis.schematic.NgAttributeGeometry
com.esri.arcgis.schematic.NgAttributePropertySet
com.esri.arcgis.schematic.NgAttributeQuery
com.esri.arcgis.schematic.NgAttributeScript
com.esri.arcgis.schematic.NgAttributes
com.esri.arcgis.schematic.NgBehavior
com.esri.arcgis.schematic.NgBehaviors
com.esri.arcgis.schematic.NgBoundedFilter
com.esri.arcgis.schematic.NgBoundedFilters
com.esri.arcgis.schematic.NgBoundedProperty
com.esri.arcgis.schematic.NgCommand
com.esri.arcgis.schematic.NgDAOJetEngineDataSource
com.esri.arcgis.schematic.NgDAOOdbcDirectDataSource
com.esri.arcgis.schematic.NgDAORecordset
com.esri.arcgis.schematic.NgDataSources
com.esri.arcgis.schematic.NgDiagram
com.esri.arcgis.schematic.NgDiagramType
com.esri.arcgis.schematic.NgDiagramTypes
com.esri.arcgis.schematic.NgDiagrams
com.esri.arcgis.schematic.NgDirectProperty
com.esri.arcgis.schematic.NgDiscreteFilter
com.esri.arcgis.schematic.NgDiscreteFilters
com.esri.arcgis.schematic.NgDiscreteProperty
com.esri.arcgis.schematic.NgDrawing
com.esri.arcgis.schematic.NgDrawings
com.esri.arcgis.schematic.NgElement
com.esri.arcgis.schematic.NgElementType
com.esri.arcgis.schematic.NgElementTypeEffect
com.esri.arcgis.schematic.NgElementTypeEffects
com.esri.arcgis.schematic.NgElementTypes
com.esri.arcgis.schematic.NgElements
com.esri.arcgis.schematic.NgFilterEffect
com.esri.arcgis.schematic.NgFilterEffects
com.esri.arcgis.schematic.NgFlag
com.esri.arcgis.schematic.NgFlagModel
com.esri.arcgis.schematic.NgFlagModels
com.esri.arcgis.schematic.NgFlags
com.esri.arcgis.schematic.NgInformation
com.esri.arcgis.schematic.NgLegend
com.esri.arcgis.schematic.NgLegendDescription
com.esri.arcgis.schematic.NgLink
com.esri.arcgis.schematic.NgLinks
com.esri.arcgis.schematic.NgName
com.esri.arcgis.schematic.NgNames
com.esri.arcgis.schematic.NgNode
com.esri.arcgis.schematic.NgNodeOnLink
com.esri.arcgis.schematic.NgNodes
com.esri.arcgis.schematic.NgObjectType
com.esri.arcgis.schematic.NgObjectTypes
com.esri.arcgis.schematic.NgParameter
com.esri.arcgis.schematic.NgParameters
com.esri.arcgis.schematic.NgPatternModel
com.esri.arcgis.schematic.NgPatternModels
com.esri.arcgis.schematic.NgPoint
com.esri.arcgis.schematic.NgPoints
com.esri.arcgis.schematic.NgPole
com.esri.arcgis.schematic.NgProject
com.esri.arcgis.schematic.NgProperties
com.esri.arcgis.schematic.NgProperty
com.esri.arcgis.schematic.NgPropertyFilter
com.esri.arcgis.schematic.NgRasterImage
com.esri.arcgis.schematic.NgRasterImages
com.esri.arcgis.schematic.NgSubLink
com.esri.arcgis.schematic.NgSymbol
com.esri.arcgis.schematic.NgSymbols
com.esri.arcgis.schematic.NgTextualProperty
com.esri.arcgis.schematic.NgUserAttributeSet
com.esri.arcgis.schematic.NgUserAttributeSets
com.esri.arcgis.schematic.NgUserData
com.esri.arcgis.schematic.NgUserDatas
com.esri.arcgis.schematic.NgUserProcedureSet
com.esri.arcgis.schematic.NgUserProcedureSets
com.esri.arcgis.schematic.NgValues
com.esri.arcgis.schematic.NgVectorImage
com.esri.arcgis.schematic.NgVectorImages
com.esri.arcgis.schematic.NgView
com.esri.arcgis.schematic.NgViews
com.esri.arcgis.schematic.SchematicAlgoAngleDirected
com.esri.arcgis.schematic.SchematicAlgoCompactTree
com.esri.arcgis.schematic.SchematicAlgoComposite
com.esri.arcgis.schematic.SchematicAlgoForceDirected
com.esri.arcgis.schematic.SchematicAlgoGrid
com.esri.arcgis.schematic.SchematicAlgoHierarchical
com.esri.arcgis.schematic.SchematicAlgoInitialPositions
com.esri.arcgis.schematic.SchematicAlgoLabelPlacementOptimizer
com.esri.arcgis.schematic.SchematicAlgoLinearDispatch
com.esri.arcgis.schematic.SchematicAlgoMainLineTree
com.esri.arcgis.schematic.SchematicAlgoMainRing
com.esri.arcgis.schematic.SchematicAlgoMarkCrossings
com.esri.arcgis.schematic.SchematicAlgoOrthogonal
com.esri.arcgis.schematic.SchematicAlgoPartialOverlappingLinks
com.esri.arcgis.schematic.SchematicAlgoRadialTree
com.esri.arcgis.schematic.SchematicAlgoReduceVertices
com.esri.arcgis.schematic.SchematicAlgoRestoreSavedPositions
com.esri.arcgis.schematic.SchematicAlgoRotateNodesAlongLinks
com.esri.arcgis.schematic.SchematicAlgoRotateTree
com.esri.arcgis.schematic.SchematicAlgoSeparateOverlappingLinks
com.esri.arcgis.schematic.SchematicAlgoSmartTree
com.esri.arcgis.schematic.SchematicAlgoSpatialDispatch
com.esri.arcgis.schematic.SchematicAlgoSquareLinks
com.esri.arcgis.schematic.SchematicAlgorithmSheet
com.esri.arcgis.schematic.SchematicAlgorithms
com.esri.arcgis.schematic.SchematicAnalystFindConnected
com.esri.arcgis.schematic.SchematicAnalystFindLoops
com.esri.arcgis.schematic.SchematicAnalystFindOverlappingLinks
com.esri.arcgis.schematic.SchematicAnalystFindPath
com.esri.arcgis.schematic.SchematicAnalystSheet
com.esri.arcgis.schematic.SchematicBuilderRule
com.esri.arcgis.schematic.SchematicDataSource
com.esri.arcgis.schematic.SchematicDataset
com.esri.arcgis.schematic.SchematicDiagram
com.esri.arcgis.schematic.SchematicDiagramClass
com.esri.arcgis.schematic.SchematicDrawing
com.esri.arcgis.schematic.SchematicElementAssociation
com.esri.arcgis.schematic.SchematicElementClass
com.esri.arcgis.schematic.SchematicFolder
com.esri.arcgis.schematic.SchematicLink
com.esri.arcgis.schematic.SchematicNode
com.esri.arcgis.schematic.SchematicNodeOnLink
com.esri.arcgis.schematic.SchematicSubLink
com.esri.arcgis.schematic.SchematicWorkspace

com.esri.arcgis.server.GISServerConnection
com.esri.arcgis.server.ServerConnection
com.esri.arcgis.server.ServerContext
com.esri.arcgis.server.ServerDirectory
com.esri.arcgis.server.ServerDirectoryInfo
com.esri.arcgis.server.ServerLogImpl
com.esri.arcgis.server.ServerMachine
com.esri.arcgis.server.ServerMachineStatus
com.esri.arcgis.server.ServerObject
com.esri.arcgis.server.ServerObjectAdmin
com.esri.arcgis.server.ServerObjectConfiguration
com.esri.arcgis.server.ServerObjectConfigurationInfo
com.esri.arcgis.server.ServerObjectConfigurationStatus
com.esri.arcgis.server.ServerObjectExtensionType
com.esri.arcgis.server.ServerObjectExtensionTypeInfo
com.esri.arcgis.server.ServerObjectManager
com.esri.arcgis.server.ServerObjectType
com.esri.arcgis.server.ServerObjectTypeInfo
com.esri.arcgis.server.ServerStatisticsArray
com.esri.arcgis.server.ServerStatisticsResults

com.esri.arcgis.support.ms.stdole.StdFont
com.esri.arcgis.support.ms.stdole.StdPicture

com.esri.arcgis.system.ServerInitializer
com.esri.arcgis.systemUI.ComPropertySheetEventsProxyHelper

com.esri.arcgis.trackinganalyst.AMSWorkspace
com.esri.arcgis.trackinganalyst.ATLWizardHelper
com.esri.arcgis.trackinganalyst.ConditionalActionConfigure
com.esri.arcgis.trackinganalyst.Datasets
com.esri.arcgis.trackinganalyst.Listener
com.esri.arcgis.trackinganalyst.TADynamicDisplayRefreshController
com.esri.arcgis.trackinganalyst.TMSEnumIDs
com.esri.arcgis.trackinganalyst.TMSSelectSet
com.esri.arcgis.trackinganalyst.TemporalCursor
com.esri.arcgis.trackinganalyst.TemporalFeature
com.esri.arcgis.trackinganalyst.TemporalFeatureClass
com.esri.arcgis.trackinganalyst.TxEnumObjects