com.esri.arcgis.datasourcesraster
Class BuildFootprintsParameters

java.lang.Object
  extended by com.esri.arcgis.datasourcesraster.BuildFootprintsParameters
All Implemented Interfaces:
IBuildFootprintsByGeometryParameters, IBuildFootprintsByRadiometryParameters, IBuildFootprintsByShrinkingParameters, IBuildFootprintsParameters, IMosaicDatasetOperationParameters, ISelectionParameters, IThreadedOperationParameters, com.esri.arcgis.interop.RemoteObjRef, Serializable

public class BuildFootprintsParameters
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IMosaicDatasetOperationParameters, IBuildFootprintsParameters, IBuildFootprintsByRadiometryParameters, IBuildFootprintsByGeometryParameters, IBuildFootprintsByShrinkingParameters, ISelectionParameters, IThreadedOperationParameters

An object that controls how footrints of items in a mosaic dataset are computed.

Product Availability

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

See Also:
Serialized Form

Constructor Summary
BuildFootprintsParameters()
          Constructs a BuildFootprintsParameters using ArcGIS Engine.
BuildFootprintsParameters(Object obj)
          Construct a BuildFootprintsParameters using a reference to such an object returned from ArcGIS Engine or Server.
 
Method Summary
 boolean equals(Object o)
          Compare this object with another
static String getClsid()
          getClsid.
 double getMaximumValidDataValue()
          The maximum valid pixel value.
 int getMaximumVertices()
          The maximum number of vertices in the computed footprint geometry.
 int getMethod()
          The method that determines how item footprints are computed.
 int getMinimumRegionSize()
          The minimum number of pixels used for computing valid region.
 double getMinimumValidDataValue()
          The minimum valid pixel value.
 int getNumThreads()
          The number of parallel threads that execute parts of the associated operation.
 IPropertySet getParameters()
          All parameters associated with the mosaic dataset operation.
 IProgressor getProgressor()
          The external progressor object associated with the mosaic dataset operation.
 IQueryFilter getQueryFilter()
          The query filter applied on the selection set to identify the collection of catalog items on which to perform the associated operation.
 void getRecommendedNumThreads(int[] pRecommendedNumThreads)
          The number of parallel threads of execution recommended by the system.
 int getRequestSize()
          The recommended number of pixels (in any one dimension) of the resampled raster requested off the dataset associated with each selected item.
 IPropertySet getResults()
          The properties of the result associated with the mosaic dataset operation.
 ISelectionSet getSelectionSet()
          The selection set that identifies the collection of catalog items on which to perform the associated operation.
 String getServerName()
          The host machine name where parts of the operation are remotely executed.
 double getShrinkDistance()
          The shrink distance in the coordinate system of the geometry column of the mosaic catalog.
 double getSnapEdgesTolerance()
          The minimum distance below which points in the footprint geometry are snapped to the envelope of the raster.
 int getSnapEdgesToleranceInPixels()
          The minimum distance (in resampled pixels) below which points in the footprint geometry are snapped to the envelope of the raster.
 int hashCode()
          the hashcode for this object
 boolean isDatasetReadOnly()
          Indicates whether the mosaic dataset is in read-only mode.
 void setIsDatasetReadOnly(boolean pbIsDatasetReadOnly)
          Indicates whether the mosaic dataset is in read-only mode.
 void setMaximumValidDataValue(double pMaximumDataValue)
          The maximum valid pixel value.
 void setMaximumVertices(int pMaximumVertices)
          The maximum number of vertices in the computed footprint geometry.
 void setMethod(int method)
          The method that determines how item footprints are computed.
 void setMinimumRegionSize(int pMinimumRegionSize)
          The minimum number of pixels used for computing valid region.
 void setMinimumValidDataValue(double pMinimumDataValue)
          The minimum valid pixel value.
 void setNumThreads(int pNumThreads)
          The number of parallel threads that execute parts of the associated operation.
 void setParametersByRef(IPropertySet ppAllParameters)
          All parameters associated with the mosaic dataset operation.
 void setProgressorByRef(IProgressor ppProgressor)
          The external progressor object associated with the mosaic dataset operation.
 void setQueryFilterByRef(IQueryFilter ppQueryFilter)
          The query filter applied on the selection set to identify the collection of catalog items on which to perform the associated operation.
 void setRequestSize(int pRequestSize)
          The recommended number of pixels (in any one dimension) of the resampled raster requested off the dataset associated with each selected item.
 void setResultsByRef(IPropertySet ppOperationResults)
          The properties of the result associated with the mosaic dataset operation.
 void setSelectionSetByRef(ISelectionSet ppSelectionSet)
          The selection set that identifies the collection of catalog items on which to perform the associated operation.
 void setServerName(String pServerName)
          The host machine name where parts of the operation are remotely executed.
 void setShrinkDistance(double pShrinkDistance)
          The shrink distance in the coordinate system of the geometry column of the mosaic catalog.
 void setSnapEdgesTolerance(double pTolerance)
          The minimum distance below which points in the footprint geometry are snapped to the envelope of the raster.
 void setSnapEdgesToleranceInPixels(int pToleranceInPixels)
          The minimum distance (in resampled pixels) below which points in the footprint geometry are snapped to the envelope of the raster.
 
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

BuildFootprintsParameters

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

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

BuildFootprintsParameters

public BuildFootprintsParameters(Object obj)
                          throws IOException
Construct a BuildFootprintsParameters using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to BuildFootprintsParameters.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems BuildFootprintsParameters theBuildFootprintsParameters = (BuildFootprintsParameters) obj;
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

setParametersByRef

public void setParametersByRef(IPropertySet ppAllParameters)
                        throws IOException,
                               AutomationException
All parameters associated with the mosaic dataset operation.

Product Availability

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

Specified by:
setParametersByRef in interface IMosaicDatasetOperationParameters
Parameters:
ppAllParameters - 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.

getParameters

public IPropertySet getParameters()
                           throws IOException,
                                  AutomationException
All parameters associated with the mosaic dataset operation.

Product Availability

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

Specified by:
getParameters in interface IMosaicDatasetOperationParameters
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.

setProgressorByRef

public void setProgressorByRef(IProgressor ppProgressor)
                        throws IOException,
                               AutomationException
The external progressor object associated with the mosaic dataset operation.

Product Availability

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

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

getProgressor

public IProgressor getProgressor()
                          throws IOException,
                                 AutomationException
The external progressor object associated with the mosaic dataset operation.

Product Availability

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

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

setIsDatasetReadOnly

public void setIsDatasetReadOnly(boolean pbIsDatasetReadOnly)
                          throws IOException,
                                 AutomationException
Indicates whether the mosaic dataset is in read-only mode. Mosaic dataset operations do not perform write operations on a read-only mosaic.

Product Availability

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

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

isDatasetReadOnly

public boolean isDatasetReadOnly()
                          throws IOException,
                                 AutomationException
Indicates whether the mosaic dataset is in read-only mode. Mosaic dataset operations do not perform write operations on a read-only mosaic.

Product Availability

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

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

setResultsByRef

public void setResultsByRef(IPropertySet ppOperationResults)
                     throws IOException,
                            AutomationException
The properties of the result associated with the mosaic dataset operation.

Product Availability

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

Specified by:
setResultsByRef in interface IMosaicDatasetOperationParameters
Parameters:
ppOperationResults - 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.

getResults

public IPropertySet getResults()
                        throws IOException,
                               AutomationException
The properties of the result associated with the mosaic dataset operation.

Product Availability

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

Specified by:
getResults in interface IMosaicDatasetOperationParameters
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.

setMethod

public void setMethod(int method)
               throws IOException,
                      AutomationException
The method that determines how item footprints are computed.

Product Availability

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

Specified by:
setMethod in interface IBuildFootprintsParameters
Parameters:
method - A com.esri.arcgis.datasourcesraster.esriBuildFootprintsMethods constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMethod

public int getMethod()
              throws IOException,
                     AutomationException
The method that determines how item footprints are computed.

Product Availability

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

Specified by:
getMethod in interface IBuildFootprintsParameters
Returns:
A com.esri.arcgis.datasourcesraster.esriBuildFootprintsMethods constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMinimumValidDataValue

public void setMinimumValidDataValue(double pMinimumDataValue)
                              throws IOException,
                                     AutomationException
The minimum valid pixel value.

Product Availability

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

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

getMinimumValidDataValue

public double getMinimumValidDataValue()
                                throws IOException,
                                       AutomationException
The minimum valid pixel value.

Product Availability

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

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

setMaximumValidDataValue

public void setMaximumValidDataValue(double pMaximumDataValue)
                              throws IOException,
                                     AutomationException
The maximum valid pixel value.

Product Availability

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

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

getMaximumValidDataValue

public double getMaximumValidDataValue()
                                throws IOException,
                                       AutomationException
The maximum valid pixel value.

Product Availability

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

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

setRequestSize

public void setRequestSize(int pRequestSize)
                    throws IOException,
                           AutomationException
The recommended number of pixels (in any one dimension) of the resampled raster requested off the dataset associated with each selected item. A lower value in this parameter translates to a lower resolution raster and results in a coarser footprint geometry.

Product Availability

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

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

getRequestSize

public int getRequestSize()
                   throws IOException,
                          AutomationException
The recommended number of pixels (in any one dimension) of the resampled raster requested off the dataset associated with each selected item. A lower value in this parameter translates to a lower resolution raster and results in a coarser footprint geometry.

Product Availability

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

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

setMaximumVertices

public void setMaximumVertices(int pMaximumVertices)
                        throws IOException,
                               AutomationException
The maximum number of vertices in the computed footprint geometry.

Product Availability

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

Specified by:
setMaximumVertices in interface IBuildFootprintsByGeometryParameters
Specified by:
setMaximumVertices in interface IBuildFootprintsByRadiometryParameters
Parameters:
pMaximumVertices - The pMaximumVertices (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMaximumVertices

public int getMaximumVertices()
                       throws IOException,
                              AutomationException
The maximum number of vertices in the computed footprint geometry.

Product Availability

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

Specified by:
getMaximumVertices in interface IBuildFootprintsByGeometryParameters
Specified by:
getMaximumVertices in interface IBuildFootprintsByRadiometryParameters
Returns:
The pMaximumVertices
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMinimumRegionSize

public void setMinimumRegionSize(int pMinimumRegionSize)
                          throws IOException,
                                 AutomationException
The minimum number of pixels used for computing valid region.

Product Availability

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

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

getMinimumRegionSize

public int getMinimumRegionSize()
                         throws IOException,
                                AutomationException
The minimum number of pixels used for computing valid region.

Product Availability

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

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

setShrinkDistance

public void setShrinkDistance(double pShrinkDistance)
                       throws IOException,
                              AutomationException
The shrink distance in the coordinate system of the geometry column of the mosaic catalog.

Product Availability

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

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

getShrinkDistance

public double getShrinkDistance()
                         throws IOException,
                                AutomationException
The shrink distance in the coordinate system of the geometry column of the mosaic catalog.

Product Availability

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

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

setSnapEdgesTolerance

public void setSnapEdgesTolerance(double pTolerance)
                           throws IOException,
                                  AutomationException
The minimum distance below which points in the footprint geometry are snapped to the envelope of the raster.

Product Availability

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

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

getSnapEdgesTolerance

public double getSnapEdgesTolerance()
                             throws IOException,
                                    AutomationException
The minimum distance below which points in the footprint geometry are snapped to the envelope of the raster.

Product Availability

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

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

setSnapEdgesToleranceInPixels

public void setSnapEdgesToleranceInPixels(int pToleranceInPixels)
                                   throws IOException,
                                          AutomationException
The minimum distance (in resampled pixels) below which points in the footprint geometry are snapped to the envelope of the raster.

Product Availability

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

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

getSnapEdgesToleranceInPixels

public int getSnapEdgesToleranceInPixels()
                                  throws IOException,
                                         AutomationException
The minimum distance (in resampled pixels) below which points in the footprint geometry are snapped to the envelope of the raster.

Product Availability

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

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

setSelectionSetByRef

public void setSelectionSetByRef(ISelectionSet ppSelectionSet)
                          throws IOException,
                                 AutomationException
The selection set that identifies the collection of catalog items on which to perform the associated operation.

Product Availability

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

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

getSelectionSet

public ISelectionSet getSelectionSet()
                              throws IOException,
                                     AutomationException
The selection set that identifies the collection of catalog items on which to perform the associated operation.

Product Availability

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

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

setQueryFilterByRef

public void setQueryFilterByRef(IQueryFilter ppQueryFilter)
                         throws IOException,
                                AutomationException
The query filter applied on the selection set to identify the collection of catalog items on which to perform the associated operation. If no selection is specified, the query filter is applied on the entire catalog.

Product Availability

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

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

getQueryFilter

public IQueryFilter getQueryFilter()
                            throws IOException,
                                   AutomationException
The query filter applied on the selection set to identify the collection of catalog items on which to perform the associated operation. If no selection is specified, the query filter is applied on the entire catalog.

Product Availability

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

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

setServerName

public void setServerName(String pServerName)
                   throws IOException,
                          AutomationException
The host machine name where parts of the operation are remotely executed.

Product Availability

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

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

getServerName

public String getServerName()
                     throws IOException,
                            AutomationException
The host machine name where parts of the operation are remotely executed.

Product Availability

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

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

setNumThreads

public void setNumThreads(int pNumThreads)
                   throws IOException,
                          AutomationException
The number of parallel threads that execute parts of the associated operation.

Product Availability

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

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

getNumThreads

public int getNumThreads()
                  throws IOException,
                         AutomationException
The number of parallel threads that execute parts of the associated operation.

Product Availability

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

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

getRecommendedNumThreads

public void getRecommendedNumThreads(int[] pRecommendedNumThreads)
                              throws IOException,
                                     AutomationException
The number of parallel threads of execution recommended by the system.

Product Availability

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

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