com.esri.arcgis.schematic
Class SchematicDataset

java.lang.Object
  extended by com.esri.arcgis.schematic.SchematicDataset
All Implemented Interfaces:
IDataset, IGeoDataset, IGeoDatasetSchemaEdit, IMetadata, IMetadataEdit, ISchemaLock, com.esri.arcgis.interop.RemoteObjRef, ISchematicDataset, ISchematicDataSourceContainer, ISchematicDiagramClassContainer, ISchematicDiagramContainer, ISchematicElementClassContainer, ISchematicFolderContainer, Serializable

public class SchematicDataset
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IDataset, IGeoDataset, IGeoDatasetSchemaEdit, IMetadata, IMetadataEdit, ISchemaLock, ISchematicDataset, ISchematicFolderContainer, ISchematicDataSourceContainer, ISchematicDiagramContainer, ISchematicDiagramClassContainer, ISchematicElementClassContainer

Schematic Dataset Object.

Product Availability

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

See Also:
Serialized Form

Constructor Summary
SchematicDataset(Object obj)
          Construct a SchematicDataset using a reference to such an object returned from ArcGIS Engine or Server.
 
Method Summary
 void alterSpatialReference(ISpatialReference spatialReference)
          Alters the spatial reference of the dataset to match the coordinate system of the input spatial reference, does not reproject the data.
 boolean canCopy()
          True if this dataset can be copied.
 boolean canDelete()
          True if this dataset can be deleted.
 boolean canRename()
          True if this dataset can be renamed.
 void changeSchemaLock(int schemaLock)
          Changes a schema lock.
 IDataset copy(String copyName, IWorkspace copyWorkspace)
          Copies this dataset to a new dataset with the specified name.
 ISchematicDataSource createSchematicDataSource(String name, IUID cLSID, IMemoryBlobStream connectionBlob)
          Creates a new schematic data source in the schematic dataset.
 ISchematicDiagram createSchematicDiagram(String name, ISchematicDiagramClass schematicDiagramClass)
          Creates a new schematic diagram in the schematic dataset.
 ISchematicDiagramClass createSchematicDiagramClass(String name, IFields fields, IUID cLSID, IUID eXTCLSID, String configKeyword)
          Creates a new schematic diagram class (related to a diagram type) in the schematic dataset.
 ISchematicElementClass createSchematicElementClass(String name, int type, IFields fields, IUID cLSID, IUID eXTCLSID, String configKeyword)
          Creates a new schematic element class in the schematic dataset.
 ISchematicFolder createSchematicFolder(String name)
          Creates a new schematic folder in the schematic dataset.
 void delete()
          Deletes this dataset.
 boolean equals(Object o)
          Compare this object with another
 String getBrowseName()
          The browse name of the dataset.
 String getCategory()
          The category of the dataset.
 void getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
          The list of current locks.
 IEnvelope getExtent()
          The extent of the GeoDataset.
 IName getFullName()
          The associated name object.
 int getID()
          Schematic dataset ID.
 IPropertySet getMetadata()
          The PropertySet containing metadata.
 String getName()
          The name of the Dataset.
 IPropertySet getPropertySet()
          The set of properties for the dataset.
 ISchematicDataSource getSchematicDataSourceByID(int iD)
          Schematic datasource referenced by the specified ID.
 ISchematicDataSource getSchematicDataSourceByName(String name)
          Schematic datasource referenced by the specified Name.
 IEnumSchematicDataSource getSchematicDataSources()
          Schematic datasources enumeration within the schematic dataset container.
 ISchematicDiagram getSchematicDiagramByID(ISchematicDiagramClass diagramClass, int iD)
          Schematic diagram referenced by the specified ID.
 ISchematicDiagram getSchematicDiagramByName(ISchematicDiagramClass diagramClass, String name)
          Schematic diagram referenced by the specified Name.
 ISchematicDiagramClass getSchematicDiagramClassByID(int iD)
          Schematic diagram class referenced by the specified ID.
 ISchematicDiagramClass getSchematicDiagramClassByName(String name)
          Schematic diagram class referenced by the specified Name.
 IEnumSchematicDiagramClass getSchematicDiagramClasses()
          Schematic diagram classes enumeration within the schematic dataset container.
 IEnumSchematicDiagram getSchematicDiagrams()
          Schematic diagrams enumeration within the schematic dataset or schematic folder container.
 ISchematicElementClass getSchematicElementClassByID(int iD)
          Schematic element class referenced by the specified ID.
 ISchematicElementClass getSchematicElementClassByName(String name)
          Schematic element class referenced by the specified Name.
 IEnumSchematicElementClass getSchematicElementClasses()
          Schematic element classes enumeration within the schematic dataset container.
 ISchematicFolder getSchematicFolderByID(int iD)
          Schematic folder referenced by the specified ID.
 ISchematicFolder getSchematicFolderByName(String name)
          Schematic folder referenced by the specified Name.
 IEnumSchematicFolder getSchematicFolders()
          Schematic folders enumeration within the schematic dataset or the schematic folder container.
 ISchematicWorkspace getSchematicWorkspace()
          Schematic workspace related to the schematic dataset.
 ISpatialReference getSpatialReference()
          The spatial reference of the GeoDataset.
 IEnumDataset getSubsets()
          Datasets contained within this dataset.
 int getType()
          The type of the Dataset.
 IWorkspace getWorkspace()
          The workspace containing this dataset.
 int hashCode()
          the hashcode for this object
 boolean isCanAlterSpatialReference()
          Indicates if the spatial reference of the dataset can be altered.
 boolean isCanEditMetadata()
          Indicates if metadata can be edited.
 void rename(String name)
          Renames this Dataset.
 void setBrowseName(String name)
          The browse name of the dataset.
 void setMetadata(IPropertySet ppPropertySet)
          The PropertySet containing metadata.
 void synchronize(int action, int interval)
          Updates metadata with the current properties; may create metadata if it doesn't already exist.
 
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

SchematicDataset

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

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

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

equals

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

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

getName

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getFullName

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getBrowseName

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setBrowseName

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getType

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

Remarks

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

Example:


// Assume we have a reference to an IfeatureClass (pFeatureClass) IDataset pDataset = null;
pDataset = new IDatasetProxy(pFeatureClass);
System.out.println(pDataset.getName() + " " + pDataset.getType());
if(pFeatureClass != null){
pDataset = pFeatureClass.getFeatureDataset();
System.out.println(pDataset.getName() + " " + pDataset.getType());
}
pDataset = new IDatasetProxy(pDataset.getWorkspace());
System.out.println(pDataset.getName() + " " +
pDataset.getType());

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getCategory

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

Remarks

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

The description returned from IDataset::Category may change between releases of ArcGIS. In addition to this, returned strings are localized, meaning that code relying on a specific string being provided may fail when deployed with a different version of ArcGIS than it was developed with, or when deployed to a client using a different language than it was developed with.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSubsets

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

Description

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getWorkspace

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

Description

The Workspace property returns the containing workspace for this dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getPropertySet

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

Description

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

Most datasets do not implement this property and will either raise an error or return a null value if it's called. There are a handful of exceptions that will return property sets; these include the datasets from file geodatabases (as mentioned above) and coverages.

Remarks

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

canCopy

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

Remarks

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

The CanCopy method is supported by:

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

copy

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

canDelete

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

delete

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

canRename

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

rename

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSpatialReference

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

Remarks

This property is read only. For layers, when the first layer is added to ArcMap, its spatial reference is read by this property, and the map is set to this spatial reference.

Instances of the esriCarto.GroupLayer class will return null for this property, as a group layer can contain multiple datasets with different spatial references.

Modifications to a spatial reference returned by this property will not be persisted. To modify the spatial reference of a dataset, the IGeoDatasetSchemaEdit and IGeoDatasetSchemaEdit2 interfaces should be used.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getExtent

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

Remarks

The IGeoDataset::Extent property returns an envelope representing the maximum extent of data which has been stored in the dataset.

Consider the following scenario. A new feature class has features added to it. The IGeoDataset::Extent is then requested and an envelope is returned. The extents of the envelope returned are represented by the red box in the image below.

The red box represents the IGeoDataset extent

If a portion of the features were then deleted and the extent is again requested an envelope with the exact same extents as during the first request would be returned (see image below). This is because the deletion of features does not shrink the extent. However all additions of features outside the red box would increase the envelope returned to encompass the newly added features.

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

If you would like to update the IGeoDataset::Extent property to reflect the current features in your dataset please see IFeatureClassManage::UpdateExtent (also see IFeatureClassLoad). In the image below the extent has been updated and a new envelope is being returned.

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

ESRI's GroupLayer implements this property differently from most other layer coclasses. When you instantiate a new GroupLayer, this property will return a valid envelope with zero height and width. With most other newly instantiated layers (for example FeatureLayer, RasterLayer, TinLayer), this property initally returns Nothing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isCanAlterSpatialReference

public boolean isCanAlterSpatialReference()
                                   throws IOException,
                                          AutomationException
Indicates if the spatial reference of the dataset can be altered.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

alterSpatialReference

public void alterSpatialReference(ISpatialReference spatialReference)
                           throws IOException,
                                  AutomationException
Alters the spatial reference of the dataset to match the coordinate system of the input spatial reference, does not reproject the data.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getMetadata

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

Remarks

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

setMetadata

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

synchronize

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

Description

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

Remarks

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

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

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isCanEditMetadata

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

Remarks

This property is available to those objects that support metadata.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

changeSchemaLock

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getCurrentSchemaLocks

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

Remarks

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getSchematicWorkspace

public ISchematicWorkspace getSchematicWorkspace()
                                          throws IOException,
                                                 AutomationException
Schematic workspace related to the schematic dataset.

Product Availability

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

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

getID

public int getID()
          throws IOException,
                 AutomationException
Schematic dataset ID.

Product Availability

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

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

createSchematicDataSource

public ISchematicDataSource createSchematicDataSource(String name,
                                                      IUID cLSID,
                                                      IMemoryBlobStream connectionBlob)
                                               throws IOException,
                                                      AutomationException
Creates a new schematic data source in the schematic dataset.

Product Availability

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

Specified by:
createSchematicDataSource in interface ISchematicDataset
Parameters:
name - The name (in)
cLSID - A reference to a com.esri.arcgis.system.IUID (in)
connectionBlob - A reference to a com.esri.arcgis.system.IMemoryBlobStream (in)
Returns:
A reference to a com.esri.arcgis.schematic.ISchematicDataSource
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createSchematicFolder

public ISchematicFolder createSchematicFolder(String name)
                                       throws IOException,
                                              AutomationException
Creates a new schematic folder in the schematic dataset.

Product Availability

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

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

createSchematicDiagram

public ISchematicDiagram createSchematicDiagram(String name,
                                                ISchematicDiagramClass schematicDiagramClass)
                                         throws IOException,
                                                AutomationException
Creates a new schematic diagram in the schematic dataset.

Product Availability

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

Specified by:
createSchematicDiagram in interface ISchematicDataset
Parameters:
name - The name (in)
schematicDiagramClass - A reference to a com.esri.arcgis.schematic.ISchematicDiagramClass (in)
Returns:
A reference to a com.esri.arcgis.schematic.ISchematicDiagram
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
ISchematicDataset.createSchematicDiagramClass(String, com.esri.arcgis.geodatabase.IFields, com.esri.arcgis.system.IUID, com.esri.arcgis.system.IUID, String)

createSchematicDiagramClass

public ISchematicDiagramClass createSchematicDiagramClass(String name,
                                                          IFields fields,
                                                          IUID cLSID,
                                                          IUID eXTCLSID,
                                                          String configKeyword)
                                                   throws IOException,
                                                          AutomationException
Creates a new schematic diagram class (related to a diagram type) in the schematic dataset.

Product Availability

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

Specified by:
createSchematicDiagramClass in interface ISchematicDataset
Parameters:
name - The name (in)
fields - A reference to a com.esri.arcgis.geodatabase.IFields (in)
cLSID - A reference to a com.esri.arcgis.system.IUID (in)
eXTCLSID - A reference to a com.esri.arcgis.system.IUID (in)
configKeyword - The configKeyword (in)
Returns:
A reference to a com.esri.arcgis.schematic.ISchematicDiagramClass
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
ISchematicDataset.createSchematicElementClass(String, int, com.esri.arcgis.geodatabase.IFields, com.esri.arcgis.system.IUID, com.esri.arcgis.system.IUID, String), ISchematicDataset.createSchematicDiagram(String, com.esri.arcgis.schematic.ISchematicDiagramClass)

createSchematicElementClass

public ISchematicElementClass createSchematicElementClass(String name,
                                                          int type,
                                                          IFields fields,
                                                          IUID cLSID,
                                                          IUID eXTCLSID,
                                                          String configKeyword)
                                                   throws IOException,
                                                          AutomationException
Creates a new schematic element class in the schematic dataset.

Product Availability

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

Specified by:
createSchematicElementClass in interface ISchematicDataset
Parameters:
name - The name (in)
type - A com.esri.arcgis.schematic.esriSchematicElementType constant (in)
fields - A reference to a com.esri.arcgis.geodatabase.IFields (in)
cLSID - A reference to a com.esri.arcgis.system.IUID (in)
eXTCLSID - A reference to a com.esri.arcgis.system.IUID (in)
configKeyword - The configKeyword (in)
Returns:
A reference to a com.esri.arcgis.schematic.ISchematicElementClass
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
ISchematicDataset.createSchematicDiagramClass(String, com.esri.arcgis.geodatabase.IFields, com.esri.arcgis.system.IUID, com.esri.arcgis.system.IUID, String)

getSchematicFolders

public IEnumSchematicFolder getSchematicFolders()
                                         throws IOException,
                                                AutomationException
Schematic folders enumeration within the schematic dataset or the schematic folder container.

Product Availability

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

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

getSchematicFolderByID

public ISchematicFolder getSchematicFolderByID(int iD)
                                        throws IOException,
                                               AutomationException
Schematic folder referenced by the specified ID.

Product Availability

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

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

getSchematicFolderByName

public ISchematicFolder getSchematicFolderByName(String name)
                                          throws IOException,
                                                 AutomationException
Schematic folder referenced by the specified Name.

Product Availability

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

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

getSchematicDataSources

public IEnumSchematicDataSource getSchematicDataSources()
                                                 throws IOException,
                                                        AutomationException
Schematic datasources enumeration within the schematic dataset container.

Product Availability

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

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

getSchematicDataSourceByID

public ISchematicDataSource getSchematicDataSourceByID(int iD)
                                                throws IOException,
                                                       AutomationException
Schematic datasource referenced by the specified ID.

Product Availability

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

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

getSchematicDataSourceByName

public ISchematicDataSource getSchematicDataSourceByName(String name)
                                                  throws IOException,
                                                         AutomationException
Schematic datasource referenced by the specified Name.

Product Availability

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

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

getSchematicDiagrams

public IEnumSchematicDiagram getSchematicDiagrams()
                                           throws IOException,
                                                  AutomationException
Schematic diagrams enumeration within the schematic dataset or schematic folder container.

Product Availability

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

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

getSchematicDiagramByID

public ISchematicDiagram getSchematicDiagramByID(ISchematicDiagramClass diagramClass,
                                                 int iD)
                                          throws IOException,
                                                 AutomationException
Schematic diagram referenced by the specified ID.

Product Availability

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

Specified by:
getSchematicDiagramByID in interface ISchematicDiagramContainer
Parameters:
diagramClass - A reference to a com.esri.arcgis.schematic.ISchematicDiagramClass (in)
iD - The iD (in)
Returns:
A reference to a com.esri.arcgis.schematic.ISchematicDiagram
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSchematicDiagramByName

public ISchematicDiagram getSchematicDiagramByName(ISchematicDiagramClass diagramClass,
                                                   String name)
                                            throws IOException,
                                                   AutomationException
Schematic diagram referenced by the specified Name.

Product Availability

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

Specified by:
getSchematicDiagramByName in interface ISchematicDiagramContainer
Parameters:
diagramClass - A reference to a com.esri.arcgis.schematic.ISchematicDiagramClass (in)
name - The name (in)
Returns:
A reference to a com.esri.arcgis.schematic.ISchematicDiagram
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSchematicDiagramClasses

public IEnumSchematicDiagramClass getSchematicDiagramClasses()
                                                      throws IOException,
                                                             AutomationException
Schematic diagram classes enumeration within the schematic dataset container.

Product Availability

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

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

getSchematicDiagramClassByID

public ISchematicDiagramClass getSchematicDiagramClassByID(int iD)
                                                    throws IOException,
                                                           AutomationException
Schematic diagram class referenced by the specified ID.

Product Availability

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

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

getSchematicDiagramClassByName

public ISchematicDiagramClass getSchematicDiagramClassByName(String name)
                                                      throws IOException,
                                                             AutomationException
Schematic diagram class referenced by the specified Name.

Product Availability

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

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

getSchematicElementClasses

public IEnumSchematicElementClass getSchematicElementClasses()
                                                      throws IOException,
                                                             AutomationException
Schematic element classes enumeration within the schematic dataset container.

Product Availability

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

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

getSchematicElementClassByID

public ISchematicElementClass getSchematicElementClassByID(int iD)
                                                    throws IOException,
                                                           AutomationException
Schematic element class referenced by the specified ID.

Product Availability

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

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

getSchematicElementClassByName

public ISchematicElementClass getSchematicElementClassByName(String name)
                                                      throws IOException,
                                                             AutomationException
Schematic element class referenced by the specified Name.

Product Availability

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

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