com.esri.arcgis.display
Class MultiLayerFillSymbol

java.lang.Object
  extended by com.esri.arcgis.display.MultiLayerFillSymbol
All Implemented Interfaces:
IFillSymbol, ILayerColorLock, ILayerTags, ILayerVisible, IMapLevel, IMultiLayerFillSymbol, ISymbol, com.esri.arcgis.interop.RemoteObjRef, IClone, IPersist, IPersistStream, IPropertySupport, java.io.Externalizable, java.io.Serializable

public class MultiLayerFillSymbol
extends java.lang.Object
implements com.esri.arcgis.interop.RemoteObjRef, IMultiLayerFillSymbol, IMapLevel, ISymbol, ILayerVisible, ILayerColorLock, IPropertySupport, IPersistStream, IPersist, IClone, ILayerTags, java.io.Externalizable

COM Class 'MultiLayerFillSymbol'. Generated 3/19/2015 1:20:43 PM from 'C:\ArcGIS\COM\esriDisplay.olb'

Description 'A fill symbol that contains one or more layers.' Generator Options: PromptForTypeLibraries = False ClashPrefix = esri_ LowerCaseMemberNames = True IDispatchOnly = False RetryOnReject = False AwtForOcxs = True ArraysAsObjects = False DontRenameSameMethods = False ImplementConflictingInterfaces = True ReuseMethods = True RenameConflictingInterfaceMethods = True GenBeanInfo = True GenerateJavadoc =

See Also:
Serialized Form

Field Summary
static long serialVersionUID
           
 
Fields inherited from interface com.esri.arcgis.display.IMultiLayerFillSymbol
IID, IID7914e5ec_c892_11d0_8bb6_080009ee4e41, xxDummy
 
Fields inherited from interface com.esri.arcgis.display.IFillSymbol
IIDe6bdaa7e_4d35_11d0_98be_00805f7ced21
 
Fields inherited from interface com.esri.arcgis.display.IMapLevel
IID, IIDcef72580_c1d9_11d2_9888_0080c7e04196, xxDummy
 
Fields inherited from interface com.esri.arcgis.display.ISymbol
IID, IIDf3435802_5779_11d0_98bf_00805f7ced21, xxDummy
 
Fields inherited from interface com.esri.arcgis.display.ILayerVisible
IID, IIDd7301b50_e92e_11d2_98ce_0080c7e04196, xxDummy
 
Fields inherited from interface com.esri.arcgis.display.ILayerColorLock
IID, IIDd7301b51_e92e_11d2_98ce_0080c7e04196, xxDummy
 
Fields inherited from interface com.esri.arcgis.system.IPropertySupport
IID, IID8a11ad55_2f4f_11d3_9fa0_00c04f6bc6a5, xxDummy
 
Fields inherited from interface com.esri.arcgis.system.IPersistStream
IID, IID00000109_0000_0000_c000_000000000046, xxDummy
 
Fields inherited from interface com.esri.arcgis.system.IPersist
IID0000010c_0000_0000_c000_000000000046
 
Fields inherited from interface com.esri.arcgis.system.IClone
IID, IID9bff8aeb_e415_11d0_943c_080009eebecb, xxDummy
 
Fields inherited from interface com.esri.arcgis.display.ILayerTags
IID, IID6322d37e_6b0e_4838_a146_ee463024976e, xxDummy
 
Constructor Summary
MultiLayerFillSymbol()
          Constructs a MultiLayerFillSymbol using ArcGIS Engine.
MultiLayerFillSymbol(java.lang.Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
MultiLayerFillSymbol theMultiLayerFillSymbol = (MultiLayerFillSymbol) obj;
 
Method Summary
 void addLayer(IFillSymbol fillLayer)
          Add fill symbol layer.
 boolean applies(java.lang.Object pUnk)
          Indicates if the receiver can apply the given object at any given time.
 java.lang.Object apply(java.lang.Object newObject)
          Applies the given property to the receiver and returns the old object.
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 boolean canApply(java.lang.Object pUnk)
          Indicates if the receiver can apply the given object at that particular moment.
 void clearLayers()
          Remove all symbol layers.
 void deleteLayer(IFillSymbol fillLayer)
          Delete fill symbol layer.
 void draw(IGeometry geometry)
          Draws the specified shape.
 void drawLayer(int index, IGeometry geometry)
          Draw a symbol layer.
 boolean equals(java.lang.Object o)
          Compare this object with another
 IClone esri_clone()
          Clones the receiver and assigns the result to *clone.
 void getClassID(GUID[] pClassID)
          getClassID
static java.lang.String getClsid()
          getClsid.
 IColor getColor()
          Fill color.
 java.lang.Object getCurrent(java.lang.Object pUnk)
          The object currently being used.
 com.esri.arcgis.interop.Dispatch getJintegraDispatch()
          Deprecated. Internal use only.
 IFillSymbol getLayer(int index)
          Fill symbol per layer position.
 int getLayerCount()
          Symbol layer count.
 java.lang.String getLayerTags(int layerIndex)
          Tags for the layer at the specified index.
 int getMapLevel()
          Current map level for drawing multi-level symbols.
 ILineSymbol getOutline()
          Line symbol of fill outline.
 int getROP2()
          Raster operation code for pixel drawing.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 int hashCode()
          the hashcode for this object
 void isDirty()
          isDirty
 boolean isEqual(IClone other)
          Indicates if the receiver and other have the same properties.
 boolean isIdentical(IClone other)
          Indicates if the receiver and other are the same object.
 boolean isLayerColorLock(int layerIndex)
          Indicates if a color lock is present for the layer at the specified index.
 boolean isLayerVisible(int layerIndex)
          Indicates if the layer at the specified index is visible.
 void load(IStream pstm)
          load
 void moveLayer(IFillSymbol fillLayer, int toIndex)
          Change symbol layer position index.
 void queryBoundary(int hDC, ITransformation displayTransform, IGeometry geometry, IPolygon boundary)
          Fills an existing polygon with the boundary of the specified symbol.
 void readExternal(java.io.ObjectInput in)
           
 void release()
          Release a MultiLayerFillSymbol.
 void resetDC()
          Restores DC to original state.
 void save(IStream pstm, int fClearDirty)
          save
 void setAllColorLocked(boolean allLocked)
          Indicates if the color is locked for all layers.
 void setAllVisible(boolean allVisible)
          Indicates if all the layers are visible or invisible.
 void setColor(IColor color)
          Fill color.
 void setLayerColorLock(int layerIndex, boolean colorLock)
          Indicates if a color lock is present for the layer at the specified index.
 void setLayerTags(int layerIndex, java.lang.String tags)
          Tags for the layer at the specified index.
 void setLayerVisible(int layerIndex, boolean visible)
          Indicates if the layer at the specified index is visible.
 void setMapLevel(int mapLevel)
          Current map level for drawing multi-level symbols.
 void setOutline(ILineSymbol outlineSym)
          Line symbol of fill outline.
 void setROP2(int drawMode)
          Raster operation code for pixel drawing.
 void setupDC(int hDC, ITransformation transformation)
          Prepares the DC for drawing the symbol.
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values
Constructor Detail

MultiLayerFillSymbol

public MultiLayerFillSymbol()
                     throws java.io.IOException,
                            java.net.UnknownHostException
Constructs a MultiLayerFillSymbol using ArcGIS Engine.

Throws:
java.io.IOException - if there are interop problems
java.net.UnknownHostException - if there are interop problems

MultiLayerFillSymbol

public MultiLayerFillSymbol(java.lang.Object obj)
                     throws java.io.IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
MultiLayerFillSymbol theMultiLayerFillSymbol = (MultiLayerFillSymbol) obj;

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

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

getClsid

public static java.lang.String getClsid()
getClsid.


equals

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

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class java.lang.Object

getJintegraDispatch

public com.esri.arcgis.interop.Dispatch getJintegraDispatch()
Deprecated. Internal use only.

Specified by:
getJintegraDispatch in interface com.esri.arcgis.interop.RemoteObjRef

release

public void release()
Release a MultiLayerFillSymbol.

Specified by:
release in interface com.esri.arcgis.interop.RemoteObjRef

getLayerCount

public int getLayerCount()
                  throws java.io.IOException,
                         AutomationException
Symbol layer count.

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

getLayer

public IFillSymbol getLayer(int index)
                     throws java.io.IOException,
                            AutomationException
Fill symbol per layer position.

Specified by:
getLayer in interface IMultiLayerFillSymbol
Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.display.IFillSymbol
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addLayer

public void addLayer(IFillSymbol fillLayer)
              throws java.io.IOException,
                     AutomationException
Add fill symbol layer.

Specified by:
addLayer in interface IMultiLayerFillSymbol
Parameters:
fillLayer - A reference to a com.esri.arcgis.display.IFillSymbol (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteLayer

public void deleteLayer(IFillSymbol fillLayer)
                 throws java.io.IOException,
                        AutomationException
Delete fill symbol layer.

Specified by:
deleteLayer in interface IMultiLayerFillSymbol
Parameters:
fillLayer - A reference to a com.esri.arcgis.display.IFillSymbol (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

moveLayer

public void moveLayer(IFillSymbol fillLayer,
                      int toIndex)
               throws java.io.IOException,
                      AutomationException
Change symbol layer position index.

Specified by:
moveLayer in interface IMultiLayerFillSymbol
Parameters:
fillLayer - A reference to a com.esri.arcgis.display.IFillSymbol (in)
toIndex - The toIndex (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

clearLayers

public void clearLayers()
                 throws java.io.IOException,
                        AutomationException
Remove all symbol layers.

Specified by:
clearLayers in interface IMultiLayerFillSymbol
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

drawLayer

public void drawLayer(int index,
                      IGeometry geometry)
               throws java.io.IOException,
                      AutomationException
Draw a symbol layer.

Specified by:
drawLayer in interface IMultiLayerFillSymbol
Parameters:
index - The index (in)
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getColor

public IColor getColor()
                throws java.io.IOException,
                       AutomationException
Fill color.

Specified by:
getColor in interface IFillSymbol
Returns:
A reference to a com.esri.arcgis.display.IColor
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setColor

public void setColor(IColor color)
              throws java.io.IOException,
                     AutomationException
Fill color.

Specified by:
setColor in interface IFillSymbol
Parameters:
color - A reference to a com.esri.arcgis.display.IColor (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOutline

public ILineSymbol getOutline()
                       throws java.io.IOException,
                              AutomationException
Line symbol of fill outline.

Specified by:
getOutline in interface IFillSymbol
Returns:
A reference to a com.esri.arcgis.display.ILineSymbol
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setOutline

public void setOutline(ILineSymbol outlineSym)
                throws java.io.IOException,
                       AutomationException
Line symbol of fill outline.

Specified by:
setOutline in interface IFillSymbol
Parameters:
outlineSym - A reference to a com.esri.arcgis.display.ILineSymbol (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMapLevel

public int getMapLevel()
                throws java.io.IOException,
                       AutomationException
Current map level for drawing multi-level symbols.

Specified by:
getMapLevel in interface IMapLevel
Returns:
The mapLevel
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMapLevel

public void setMapLevel(int mapLevel)
                 throws java.io.IOException,
                        AutomationException
Current map level for drawing multi-level symbols.

Specified by:
setMapLevel in interface IMapLevel
Parameters:
mapLevel - The mapLevel (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setupDC

public void setupDC(int hDC,
                    ITransformation transformation)
             throws java.io.IOException,
                    AutomationException
Prepares the DC for drawing the symbol.

Specified by:
setupDC in interface ISymbol
Parameters:
hDC - The hDC (A COM typedef) (in)
transformation - A reference to a com.esri.arcgis.geometry.ITransformation (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

resetDC

public void resetDC()
             throws java.io.IOException,
                    AutomationException
Restores DC to original state.

Specified by:
resetDC in interface ISymbol
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

draw

public void draw(IGeometry geometry)
          throws java.io.IOException,
                 AutomationException
Draws the specified shape.

Specified by:
draw in interface ISymbol
Parameters:
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryBoundary

public void queryBoundary(int hDC,
                          ITransformation displayTransform,
                          IGeometry geometry,
                          IPolygon boundary)
                   throws java.io.IOException,
                          AutomationException
Fills an existing polygon with the boundary of the specified symbol.

Specified by:
queryBoundary in interface ISymbol
Parameters:
hDC - The hDC (A COM typedef) (in)
displayTransform - A reference to a com.esri.arcgis.geometry.ITransformation (in)
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
boundary - A reference to a com.esri.arcgis.geometry.IPolygon (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getROP2

public int getROP2()
            throws java.io.IOException,
                   AutomationException
Raster operation code for pixel drawing.

Specified by:
getROP2 in interface ISymbol
Returns:
A com.esri.arcgis.display.esriRasterOpCode constant
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setROP2

public void setROP2(int drawMode)
             throws java.io.IOException,
                    AutomationException
Raster operation code for pixel drawing.

Specified by:
setROP2 in interface ISymbol
Parameters:
drawMode - A com.esri.arcgis.display.esriRasterOpCode constant (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isLayerVisible

public boolean isLayerVisible(int layerIndex)
                       throws java.io.IOException,
                              AutomationException
Indicates if the layer at the specified index is visible.

Specified by:
isLayerVisible in interface ILayerVisible
Parameters:
layerIndex - The layerIndex (in)
Returns:
The visible
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setLayerVisible

public void setLayerVisible(int layerIndex,
                            boolean visible)
                     throws java.io.IOException,
                            AutomationException
Indicates if the layer at the specified index is visible.

Specified by:
setLayerVisible in interface ILayerVisible
Parameters:
layerIndex - The layerIndex (in)
visible - The visible (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAllVisible

public void setAllVisible(boolean allVisible)
                   throws java.io.IOException,
                          AutomationException
Indicates if all the layers are visible or invisible.

Specified by:
setAllVisible in interface ILayerVisible
Parameters:
allVisible - The allVisible (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isLayerColorLock

public boolean isLayerColorLock(int layerIndex)
                         throws java.io.IOException,
                                AutomationException
Indicates if a color lock is present for the layer at the specified index.

Specified by:
isLayerColorLock in interface ILayerColorLock
Parameters:
layerIndex - The layerIndex (in)
Returns:
The colorLock
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setLayerColorLock

public void setLayerColorLock(int layerIndex,
                              boolean colorLock)
                       throws java.io.IOException,
                              AutomationException
Indicates if a color lock is present for the layer at the specified index.

Specified by:
setLayerColorLock in interface ILayerColorLock
Parameters:
layerIndex - The layerIndex (in)
colorLock - The colorLock (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAllColorLocked

public void setAllColorLocked(boolean allLocked)
                       throws java.io.IOException,
                              AutomationException
Indicates if the color is locked for all layers.

Specified by:
setAllColorLocked in interface ILayerColorLock
Parameters:
allLocked - The allLocked (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

applies

public boolean applies(java.lang.Object pUnk)
                throws java.io.IOException,
                       AutomationException
Indicates if the receiver can apply the given object at any given time.

Specified by:
applies in interface IPropertySupport
Parameters:
pUnk - A reference to another Object (IUnknown) (in)
Returns:
The applies
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canApply

public boolean canApply(java.lang.Object pUnk)
                 throws java.io.IOException,
                        AutomationException
Indicates if the receiver can apply the given object at that particular moment.

Specified by:
canApply in interface IPropertySupport
Parameters:
pUnk - A reference to another Object (IUnknown) (in)
Returns:
The canApply
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCurrent

public java.lang.Object getCurrent(java.lang.Object pUnk)
                            throws java.io.IOException,
                                   AutomationException
The object currently being used.

Specified by:
getCurrent in interface IPropertySupport
Parameters:
pUnk - A reference to another Object (IUnknown) (in)
Returns:
A reference to another Object (IUnknown)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

apply

public java.lang.Object apply(java.lang.Object newObject)
                       throws java.io.IOException,
                              AutomationException
Applies the given property to the receiver and returns the old object.

Specified by:
apply in interface IPropertySupport
Parameters:
newObject - A reference to another Object (IUnknown) (in)
Returns:
A reference to another Object (IUnknown)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public void isDirty()
             throws java.io.IOException,
                    AutomationException
isDirty

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

load

public void load(IStream pstm)
          throws java.io.IOException,
                 AutomationException
load

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

save

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

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

getSizeMax

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

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

getClassID

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

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

esri_clone

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

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

assign

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

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

isEqual

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

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

isIdentical

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

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

getLayerTags

public java.lang.String getLayerTags(int layerIndex)
                              throws java.io.IOException,
                                     AutomationException
Tags for the layer at the specified index.

Specified by:
getLayerTags in interface ILayerTags
Parameters:
layerIndex - The layerIndex (in)
Returns:
The tags
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setLayerTags

public void setLayerTags(int layerIndex,
                         java.lang.String tags)
                  throws java.io.IOException,
                         AutomationException
Tags for the layer at the specified index.

Specified by:
setLayerTags in interface ILayerTags
Parameters:
layerIndex - The layerIndex (in)
tags - The tags (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

writeExternal

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

readExternal

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