|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.analyst3d.AnimationTrack
public class AnimationTrack
The Animation Track coclass.
Animation tracks are conceptually containers of animation keyframes. A scene object may have zero, one, or more animation tracks. Each animation track is associated with one certain animation type.
Constructor Summary | |
---|---|
AnimationTrack()
Constructs a AnimationTrack using ArcGIS Engine. |
|
AnimationTrack(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. AnimationTrack theAnimationTrack = (AnimationTrack) obj; |
Method Summary | |
---|---|
void |
attachObject(Object pObject)
Attach object to the track. |
IAGKeyframe |
createKeyframe(int index)
Creates a new keyframe of the appropriate type and inserts it. |
void |
detachAllObjects()
Detach all objects from the track. |
void |
detachObject(Object pObject)
Detach object from the track. |
boolean |
equals(Object o)
Compare this object with another |
void |
findKeyframe(String name,
IAGKeyframe[] ppKeyframe)
Finds a keyframe by name. |
void |
findKeyframe(String name,
IKeyframe[] ppKeyframe)
Finds a keyframe by name. |
ILongArray |
getActiveProperties()
The combination of active properties for the track. |
IAGAnimationContainer |
getAnimationObjectContainer()
The container of the animation objects attached to the tracks. |
IAnimationType |
getAnimationType()
The animation type. |
IArray |
getAttachedObjects()
The objects to which the track is attached, or null. |
int |
getAttachedObjectsCount()
The number of objects to which the track is attached. |
double |
getBeginTime()
The initial time of the track. |
void |
getClassID(GUID[] pClassID)
getClassID |
static String |
getClsid()
getClsid. |
double |
getEndTime()
The final time of the track. |
IKeyframe |
getKeyframe(int index)
The keyframe with the given index in the track. |
int |
getKeyframeCount()
The number of keyframes defined in the track. |
IAGKeyframe |
getLastInterpolatedKeyframe()
The last keyframe that was interpolated in the track. |
String |
getName()
The name of the track. |
void |
getSizeMax(_ULARGE_INTEGER[] pcbSize)
getSizeMax |
int |
hashCode()
the hashcode for this object |
IAGAnimationType |
IAGAnimationTrack_getAnimationType()
The animation type. |
IAGKeyframe |
IAGAnimationTrackKeyframes_getKeyframe(int index)
The keyframe with the given index in the track. |
void |
insertKeyframe(IAGKeyframe pKeyframe,
int index)
Inserts a new keyframe. |
void |
insertKeyframe(IKeyframe pKeyframe,
int index)
Inserts a new keyframe. |
void |
interpolateObjectProperties(IAGAnimationContainer pContainer,
double time)
Interpolates the state of the attached object for a time between BeginTime and Endtime. |
void |
interpolateObjectProperties(IScene pScene,
double time)
Interpolates the state of the attached object for a time between BeginTime and Endtime. |
boolean |
isActiveProperty(int propIndex)
Indicates if an animation property is active. |
boolean |
isApplyToAllViewers()
Indicates whether to apply a camera track to all scene viewers. |
boolean |
isAttached(Object pObject)
Indicates if the given objects is attached to the track. |
boolean |
isCycle()
Indicates if the track is repeated periodically. |
void |
isDirty()
isDirty |
boolean |
isEnabled()
Indicates if the track is enabled. |
boolean |
isEvenTimeStamps()
Indicates whether to distribute time stamps evenly in the interval 0-1. |
void |
load(IStream pstm)
load |
void |
moveKeyframe(int originIndex,
int destinationIndex)
Moves the keyframe with the given index, inserting it with a different index. |
void |
readExternal(ObjectInput in)
|
void |
removeAllKeyframes()
Removes all the keyframes. |
void |
removeKeyframe(int index)
Removes the keyframe with the given index. |
void |
resetAttachedObjects(IAGAnimationContainer pContainer)
Reset the state of the attached objects to be ready for animation. |
void |
resetAttachedObjects(IScene pScene)
Reset the state of the attached objects to be ready for animation. |
void |
resetTimeStamps()
Redistributes the time stamps in the interval [0,1]. |
void |
restoreObjectProperties(IAGAnimationContainer pContainer,
int index)
Restores the saved properties of the attached object specified. |
void |
restoreObjectProperties(IScene pScene,
int index)
Restores the saved properties of the attached object specified. |
void |
save(IStream pstm,
int fClearDirty)
save |
void |
saveObjectProperties(IAGAnimationContainer pContainer,
int index)
Internally saves the properties of the attached object specified. |
void |
saveObjectProperties(IScene pScene,
int index)
Internally saves the properties of the attached object specified. |
void |
setActiveProperties(ILongArray ppActiveProps)
The combination of active properties for the track. |
void |
setAnimationObjectContainerByRef(IAGAnimationContainer ppContainer)
The container of the animation objects attached to the tracks. |
void |
setAnimationTypeByRef(IAGAnimationType ppAnimationType)
The animation type. |
void |
setAnimationTypeByRef(IAnimationType ppAnimationType)
The animation type. |
void |
setApplyToAllViewers(boolean pbApplyToAllViewers)
Indicates whether to apply a camera track to all scene viewers. |
void |
setAttachedObjects(IArray ppObjectArray)
The objects to which the track is attached, or null. |
void |
setBeginTime(double pBeginTime)
The initial time of the track. |
void |
setEndTime(double pEndTime)
The final time of the track. |
void |
setEvenTimeStamps(boolean pbEvenTimeStamps)
Indicates whether to distribute time stamps evenly in the interval 0-1. |
void |
setIsActiveProperty(int propIndex,
boolean pbIsActiveProp)
Indicates if an animation property is active. |
void |
setIsCycle(boolean pbIsCycle)
Indicates if the track is repeated periodically. |
void |
setIsEnabled(boolean pbIsEnabled)
Indicates if the track is enabled. |
void |
setName(String name)
The name of the track. |
void |
sortKeyframes()
Sorts the keyframes in ascending time order. |
void |
writeExternal(ObjectOutput out)
|
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef |
---|
getJintegraDispatch, release |
Constructor Detail |
---|
public AnimationTrack() throws IOException, UnknownHostException
IOException
- if there are interop problems
UnknownHostException
- if there are interop problemspublic AnimationTrack(Object obj) throws IOException
AnimationTrack theAnimationTrack = (AnimationTrack) obj;
obj
to AnimationTrack
.
obj
- an object returned from ArcGIS Engine or Server
IOException
- if there are interop problemsMethod Detail |
---|
public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public ILongArray getActiveProperties() throws IOException, AutomationException
getActiveProperties
in interface IAnimationTrack
getActiveProperties
in interface IAGAnimationTrackKeyframes
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setActiveProperties(ILongArray ppActiveProps) throws IOException, AutomationException
setActiveProperties
in interface IAnimationTrack
setActiveProperties
in interface IAGAnimationTrackKeyframes
ppActiveProps
- A reference to a com.esri.arcgis.system.ILongArray (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isActiveProperty(int propIndex) throws IOException, AutomationException
isActiveProperty
in interface IAnimationTrack
isActiveProperty
in interface IAGAnimationTrackKeyframes
propIndex
- The propIndex (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsActiveProperty(int propIndex, boolean pbIsActiveProp) throws IOException, AutomationException
setIsActiveProperty
in interface IAnimationTrack
setIsActiveProperty
in interface IAGAnimationTrackKeyframes
propIndex
- The propIndex (in)pbIsActiveProp
- The pbIsActiveProp (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getName() throws IOException, AutomationException
getName
in interface IAnimationTrack
getName
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setName(String name) throws IOException, AutomationException
setName
in interface IAnimationTrack
setName
in interface IAGAnimationTrack
name
- The name (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IAnimationType getAnimationType() throws IOException, AutomationException
getAnimationType
in interface IAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAnimationTypeByRef(IAnimationType ppAnimationType) throws IOException, AutomationException
setAnimationTypeByRef
in interface IAnimationTrack
ppAnimationType
- A reference to a com.esri.arcgis.analyst3d.IAnimationType (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getKeyframeCount() throws IOException, AutomationException
getKeyframeCount
in interface IAnimationTrack
getKeyframeCount
in interface IAGAnimationTrackKeyframes
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IKeyframe getKeyframe(int index) throws IOException, AutomationException
getKeyframe
in interface IAnimationTrack
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isCycle() throws IOException, AutomationException
isCycle
in interface IAnimationTrack
isCycle
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsCycle(boolean pbIsCycle) throws IOException, AutomationException
setIsCycle
in interface IAnimationTrack
setIsCycle
in interface IAGAnimationTrack
pbIsCycle
- The pbIsCycle (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getBeginTime() throws IOException, AutomationException
getBeginTime
in interface IAnimationTrack
getBeginTime
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setBeginTime(double pBeginTime) throws IOException, AutomationException
setBeginTime
in interface IAnimationTrack
setBeginTime
in interface IAGAnimationTrack
pBeginTime
- The pBeginTime (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getEndTime() throws IOException, AutomationException
getEndTime
in interface IAnimationTrack
getEndTime
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setEndTime(double pEndTime) throws IOException, AutomationException
setEndTime
in interface IAnimationTrack
setEndTime
in interface IAGAnimationTrack
pEndTime
- The pEndTime (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isEnabled() throws IOException, AutomationException
isEnabled
in interface IAnimationTrack
isEnabled
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setIsEnabled(boolean pbIsEnabled) throws IOException, AutomationException
setIsEnabled
in interface IAnimationTrack
setIsEnabled
in interface IAGAnimationTrack
pbIsEnabled
- The pbIsEnabled (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setEvenTimeStamps(boolean pbEvenTimeStamps) throws IOException, AutomationException
setEvenTimeStamps
in interface IAnimationTrack
setEvenTimeStamps
in interface IAGAnimationTrackKeyframes
pbEvenTimeStamps
- The pbEvenTimeStamps (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isEvenTimeStamps() throws IOException, AutomationException
isEvenTimeStamps
in interface IAnimationTrack
isEvenTimeStamps
in interface IAGAnimationTrackKeyframes
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setApplyToAllViewers(boolean pbApplyToAllViewers) throws IOException, AutomationException
setApplyToAllViewers
in interface IAnimationTrack
setApplyToAllViewers
in interface IAGAnimationTrack
pbApplyToAllViewers
- The pbApplyToAllViewers (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isApplyToAllViewers() throws IOException, AutomationException
isApplyToAllViewers
in interface IAnimationTrack
isApplyToAllViewers
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getAttachedObjectsCount() throws IOException, AutomationException
getAttachedObjectsCount
in interface IAnimationTrack
getAttachedObjectsCount
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IArray getAttachedObjects() throws IOException, AutomationException
getAttachedObjects
in interface IAnimationTrack
getAttachedObjects
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isAttached(Object pObject) throws IOException, AutomationException
isAttached
in interface IAnimationTrack
isAttached
in interface IAGAnimationTrack
pObject
- A reference to another Object (IUnknown) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAttachedObjects(IArray ppObjectArray) throws IOException, AutomationException
setAttachedObjects
in interface IAnimationTrack
setAttachedObjects
in interface IAGAnimationTrack
ppObjectArray
- A reference to a com.esri.arcgis.system.IArray (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void attachObject(Object pObject) throws IOException, AutomationException
attachObject
in interface IAnimationTrack
attachObject
in interface IAGAnimationTrack
pObject
- A reference to another Object (IUnknown) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void detachObject(Object pObject) throws IOException, AutomationException
detachObject
in interface IAnimationTrack
detachObject
in interface IAGAnimationTrack
pObject
- A reference to another Object (IUnknown) (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void detachAllObjects() throws IOException, AutomationException
detachAllObjects
in interface IAnimationTrack
detachAllObjects
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void resetAttachedObjects(IScene pScene) throws IOException, AutomationException
resetAttachedObjects
in interface IAnimationTrack
pScene
- A reference to a com.esri.arcgis.analyst3d.IScene (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertKeyframe(IKeyframe pKeyframe, int index) throws IOException, AutomationException
insertKeyframe
in interface IAnimationTrack
pKeyframe
- A reference to a com.esri.arcgis.analyst3d.IKeyframe (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removeKeyframe(int index) throws IOException, AutomationException
removeKeyframe
in interface IAnimationTrack
removeKeyframe
in interface IAGAnimationTrackKeyframes
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removeAllKeyframes() throws IOException, AutomationException
removeAllKeyframes
in interface IAnimationTrack
removeAllKeyframes
in interface IAGAnimationTrackKeyframes
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void findKeyframe(String name, IKeyframe[] ppKeyframe) throws IOException, AutomationException
findKeyframe
in interface IAnimationTrack
name
- The name (in)ppKeyframe
- A reference to a com.esri.arcgis.analyst3d.IKeyframe (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void moveKeyframe(int originIndex, int destinationIndex) throws IOException, AutomationException
moveKeyframe
in interface IAnimationTrack
moveKeyframe
in interface IAGAnimationTrackKeyframes
originIndex
- The originIndex (in)destinationIndex
- The destinationIndex (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void sortKeyframes() throws IOException, AutomationException
sortKeyframes
in interface IAnimationTrack
sortKeyframes
in interface IAGAnimationTrackKeyframes
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void resetTimeStamps() throws IOException, AutomationException
resetTimeStamps
in interface IAnimationTrack
resetTimeStamps
in interface IAGAnimationTrackKeyframes
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void saveObjectProperties(IScene pScene, int index) throws IOException, AutomationException
saveObjectProperties
in interface IAnimationTrack
pScene
- A reference to a com.esri.arcgis.analyst3d.IScene (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void restoreObjectProperties(IScene pScene, int index) throws IOException, AutomationException
restoreObjectProperties
in interface IAnimationTrack
pScene
- A reference to a com.esri.arcgis.analyst3d.IScene (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interpolateObjectProperties(IScene pScene, double time) throws IOException, AutomationException
interpolateObjectProperties
in interface IAnimationTrack
pScene
- A reference to a com.esri.arcgis.analyst3d.IScene (in)time
- The time (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IAGAnimationType IAGAnimationTrack_getAnimationType() throws IOException, AutomationException
IAGAnimationTrack_getAnimationType
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAnimationTypeByRef(IAGAnimationType ppAnimationType) throws IOException, AutomationException
setAnimationTypeByRef
in interface IAGAnimationTrack
ppAnimationType
- A reference to a com.esri.arcgis.animation.IAGAnimationType (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void resetAttachedObjects(IAGAnimationContainer pContainer) throws IOException, AutomationException
resetAttachedObjects
in interface IAGAnimationTrack
pContainer
- A reference to a com.esri.arcgis.animation.IAGAnimationContainer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interpolateObjectProperties(IAGAnimationContainer pContainer, double time) throws IOException, AutomationException
interpolateObjectProperties
in interface IAGAnimationTrack
pContainer
- A reference to a com.esri.arcgis.animation.IAGAnimationContainer (in)time
- The time (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IAGAnimationContainer getAnimationObjectContainer() throws IOException, AutomationException
getAnimationObjectContainer
in interface IAGAnimationTrack
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAnimationObjectContainerByRef(IAGAnimationContainer ppContainer) throws IOException, AutomationException
setAnimationObjectContainerByRef
in interface IAGAnimationTrack
ppContainer
- A reference to a com.esri.arcgis.animation.IAGAnimationContainer (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IAGKeyframe IAGAnimationTrackKeyframes_getKeyframe(int index) throws IOException, AutomationException
IAGAnimationTrackKeyframes_getKeyframe
in interface IAGAnimationTrackKeyframes
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IAGKeyframe createKeyframe(int index) throws IOException, AutomationException
createKeyframe
in interface IAGAnimationTrackKeyframes
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void insertKeyframe(IAGKeyframe pKeyframe, int index) throws IOException, AutomationException
insertKeyframe
in interface IAGAnimationTrackKeyframes
pKeyframe
- A reference to a com.esri.arcgis.animation.IAGKeyframe (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void findKeyframe(String name, IAGKeyframe[] ppKeyframe) throws IOException, AutomationException
findKeyframe
in interface IAGAnimationTrackKeyframes
name
- The name (in)ppKeyframe
- A reference to a com.esri.arcgis.animation.IAGKeyframe (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void saveObjectProperties(IAGAnimationContainer pContainer, int index) throws IOException, AutomationException
saveObjectProperties
in interface IAGAnimationTrackKeyframes
pContainer
- A reference to a com.esri.arcgis.animation.IAGAnimationContainer (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void restoreObjectProperties(IAGAnimationContainer pContainer, int index) throws IOException, AutomationException
restoreObjectProperties
in interface IAGAnimationTrackKeyframes
pContainer
- A reference to a com.esri.arcgis.animation.IAGAnimationContainer (in)index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IAGKeyframe getLastInterpolatedKeyframe() throws IOException, AutomationException
getLastInterpolatedKeyframe
in interface IAGAnimationTrackKeyframes
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void isDirty() throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
isDirty
in interface IPersistStream
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void load(IStream pstm) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
load
in interface IPersistStream
pstm
- A reference to a com.esri.arcgis.system.IStream (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void save(IStream pstm, int fClearDirty) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
save
in interface IPersistStream
pstm
- A reference to a com.esri.arcgis.system.IStream (in)fClearDirty
- The fClearDirty (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getSizeMax(_ULARGE_INTEGER[] pcbSize) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
getSizeMax
in interface IPersistStream
pcbSize
- A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getClassID(GUID[] pClassID) throws IOException, AutomationException
IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.
getClassID
in interface IPersist
pClassID
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void writeExternal(ObjectOutput out) throws IOException
writeExternal
in interface Externalizable
IOException
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal
in interface Externalizable
IOException
ClassNotFoundException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |