|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.ibm.ras.RASObject | +--com.ibm.ras.RASMaskChangeGenerator | +--com.ibm.ras.RASLogger | +--com.ibm.ras.RASTraceLogger
RASTraceLogger generates trace data and is one of two
RASLogger
sub-classes provided in this package. The
other is RASMessageLogger
. The purpose of
tracing is to provide sufficient information to a developer or service
team to diagnose a problem remotely (for example, when the application is
in production). Normally an application will run with tracing turned
off. When a problem occurs, it can be turned on to gather the data
needed to understand the problem. (A logger's "on/off" state can be
controlled by setting its isLogging flag. It might also be
controlled through a graphical program, not included in this package.)
RASTraceLogger provides the following set of overloaded methods for writing trace records:
When tracing in non-static methods, use the forms of these methods that take "this" (the object being traced) as the second parameter. This is a convenience to the programmer, as the class name can be derived from any Object. For static methods, an object does not exist. Use the forms which take String className as the second parameter.
The set of types that may be used in these methods
is defined in the RASITraceEvent
class.
These methods do not validate the type assigned to the trace point,
so an error could result in the failure to trace a point.
Note: The entry and exit
methods
always add RASITraceEvent.TYPE_ENTRY_EXIT to whatever type is
selected. It is not necessary to include TYPE_ENTRY_EXIT.
Similarly, the exception methods add
RASITraceEvent.TYPE_ERROR_EXC to the exception trace points.
RASTraceLogger has several optional fields which may be included in the trace event. These fields should not vary among trace events produced by a given RASTraceLogger, so they are not included as parameters in the methods listed above. They can, however, be specified through a RASTraceLogger constructor or by the appropriate "set" and "get" methods of this class. These fields are:
If not specified, each of these fields defaults to an empty string.
Note: Classes which extend RASTraceLogger
should, in their constructors, call addTraceEventClass
to register the RASIEvent
classes which the
logger generates. This will allow a graphical program to query the logger
to determine the supported RAS events. The events, in turn, can be
queried to determine their set of supported event types.
RASITraceLogger
,
RASIHandler
, Serialized FormField Summary | |
---|---|
static java.lang.String |
ENTRY
Text used in the entry methods. |
static java.lang.String |
EXIT
Text used in the exit methods. |
Fields inherited from class com.ibm.ras.RASLogger |
---|
handlerFailures, isLoggableMask, isLogging |
Fields inherited from interface com.ibm.ras.RASITraceEvent |
---|
ALL_TRACE_MASK, DEFAULT_TRACE_MASK, TYPE_API, TYPE_CALLBACK, TYPE_ENTRY_EXIT, TYPE_ERROR_EXC, TYPE_LEVEL1, TYPE_LEVEL2, TYPE_LEVEL3, TYPE_MISC_DATA, TYPE_OBJ_CREATE, TYPE_OBJ_DELETE, TYPE_PERF, TYPE_PRIVATE, TYPE_PUBLIC, TYPE_STATIC, TYPE_SVC |
Constructor Summary | |
---|---|
RASTraceLogger()
Creates a RASTraceLogger. |
|
RASTraceLogger(java.lang.String name)
Creates a RASTraceLogger. |
|
RASTraceLogger(java.lang.String name,
java.lang.String desc)
Creates a RASTraceLogger. |
|
RASTraceLogger(java.lang.String name,
java.lang.String desc,
java.lang.String server,
java.lang.String client)
Creates a RASTraceLogger. |
Method Summary | |
---|---|
void |
entry(long type,
java.lang.Object obj,
java.lang.String methodName)
Traces entry into a non-static method. |
void |
entry(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.Object parm1)
Traces entry into a non-static method. |
void |
entry(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.Object[] parms)
Traces entry into a non-static method. |
void |
entry(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.Object parm1,
java.lang.Object parm2)
Traces entry into a non-static method. |
void |
entry(long type,
java.lang.String className,
java.lang.String methodName)
Traces entry into a static method. |
void |
entry(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.Object parm1)
Traces entry into a static method. |
void |
entry(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.Object[] parms)
Traces entry into a static method. |
void |
entry(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.Object parm1,
java.lang.Object parm2)
Traces entry into a static method. |
void |
exception(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.Exception exception)
Traces an Exception in a non-static method. |
void |
exception(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.Throwable exception)
Traces an Exception in a non-static method. |
void |
exception(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.Exception exception)
Traces an Exception in a static method. |
void |
exception(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.Throwable exception)
Traces an Exception in a static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
boolean retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
byte retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
char retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
double retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
float retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
int retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
long retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.Object retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.Object obj,
java.lang.String methodName,
short retValue)
Traces exit from a non-static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
boolean retValue)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
byte retValue)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
char retValue)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
double retValue)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
float retValue)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
int retValue)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
long retValue)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.Object retValue)
Traces exit from a static method. |
void |
exit(long type,
java.lang.String className,
java.lang.String methodName,
short retValue)
Traces exit from a static method. |
protected void |
init()
Initializes this object, setting default values. |
protected void |
logTrace(long type,
java.lang.String className,
java.lang.String methodName,
byte[] data)
Generates a RASTraceEvent and sends it to all attached handlers. |
protected void |
logTrace(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.String text,
java.lang.Object[] parms,
java.lang.Throwable exception)
Generates a RASTraceEvent and sends it to all attached handlers. |
void |
maskValueChanged(RASMaskChangeEvent mc)
Indicates that the value of the handler's trace mask has changed. |
void |
stackTrace(long type,
java.lang.Object obj,
java.lang.String methodName)
Traces the call stack in a non-static method. |
void |
stackTrace(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.String text)
Traces the call stack in a non-static method. |
void |
stackTrace(long type,
java.lang.String className,
java.lang.String methodName)
Traces the call stack in a static method. |
void |
stackTrace(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.String text)
Traces the call stack in a static method. |
void |
trace(long type,
java.lang.Object obj,
java.lang.String methodName,
byte[] data)
Traces an array of bytes in a non-static method. |
void |
trace(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.String text)
Traces data in a non-static method. |
void |
trace(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.String text,
java.lang.Object parm1)
Traces data in a non-static method. |
void |
trace(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.String text,
java.lang.Object[] parms)
Traces data in a non-static method. |
void |
trace(long type,
java.lang.Object obj,
java.lang.String methodName,
java.lang.String text,
java.lang.Object parm1,
java.lang.Object parm2)
Traces data in a non-static method. |
void |
trace(long type,
java.lang.String className,
java.lang.String methodName,
byte[] data)
Traces an array of bytes in a non-static method. |
void |
trace(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.String text)
Traces data in a static method. |
void |
trace(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.String text,
java.lang.Object parm1)
Traces data in a static method. |
void |
trace(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.String text,
java.lang.Object[] parms)
Traces data in a static method. |
void |
trace(long type,
java.lang.String className,
java.lang.String methodName,
java.lang.String text,
java.lang.Object parm1,
java.lang.Object parm2)
Traces data in a static method. |
Methods inherited from class com.ibm.ras.RASLogger |
---|
addHandler, fireRASEvent, getClient, getConfig, getHandlers, getServer, isLoggable, isLogging, isSynchronous, removeHandler, setClient, setConfig, setLogging, setServer, setSynchronous |
Methods inherited from class com.ibm.ras.RASObject |
---|
clone, getDescription, getGroup, getName, setDescription, setName |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.ibm.ras.RASILogger |
---|
addHandler, fireRASEvent, getClient, getConfig, getHandlers, getServer, isLoggable, isLogging, isSynchronous, removeHandler, setClient, setConfig, setLogging, setServer, setSynchronous |
Methods inherited from interface com.ibm.ras.RASIMaskChangeGenerator |
---|
addMaskChangeListener, addMessageEventClass, addTraceEventClass, fireMaskChangedEvent, getMaskChangeListeners, getMessageEventClasses, getMessageMask, getTraceEventClasses, getTraceMask, removeMaskChangeListener, removeMessageEventClass, removeTraceEventClass, setMessageMask, setTraceMask |
Methods inherited from interface com.ibm.ras.RASIObject |
---|
getDescription, getGroup, getName, setDescription, setName |
Field Detail |
public static final java.lang.String ENTRY
public static final java.lang.String EXIT
Constructor Detail |
public RASTraceLogger()
public RASTraceLogger(java.lang.String name)
name
- The name of this object.public RASTraceLogger(java.lang.String name, java.lang.String desc)
name
- The name of this object.desc
- The description of this object.public RASTraceLogger(java.lang.String name, java.lang.String desc, java.lang.String server, java.lang.String client)
name
- The name of this object.desc
- The description of this object.server
- The server.client
- The client.Method Detail |
protected void init()
init
in class RASLogger
public void entry(long type, java.lang.Object obj, java.lang.String methodName)
entry
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.public void entry(long type, java.lang.Object obj, java.lang.String methodName, java.lang.Object parm1)
entry
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.parm1
- An element to be displayed as trace data.public void entry(long type, java.lang.Object obj, java.lang.String methodName, java.lang.Object parm1, java.lang.Object parm2)
entry
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.parm1
- An element to be displayed as trace data.parm2
- An element to be displayed as trace data.public void entry(long type, java.lang.Object obj, java.lang.String methodName, java.lang.Object[] parms)
entry
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.parms
- An array of parameters passed to the method.public void entry(long type, java.lang.String className, java.lang.String methodName)
entry
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.public void entry(long type, java.lang.String className, java.lang.String methodName, java.lang.Object parm1)
entry
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.parm1
- An element to be displayed as trace data.public void entry(long type, java.lang.String className, java.lang.String methodName, java.lang.Object parm1, java.lang.Object parm2)
entry
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.parm1
- An element to be displayed as trace data.parm2
- An element to be displayed as trace data.public void entry(long type, java.lang.String className, java.lang.String methodName, java.lang.Object[] parms)
entry
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.parms
- An array of elements to be displayed as trace data.public void exit(long type, java.lang.Object obj, java.lang.String methodName)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.public void exit(long type, java.lang.Object obj, java.lang.String methodName, byte retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.Object obj, java.lang.String methodName, short retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.Object obj, java.lang.String methodName, int retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.Object obj, java.lang.String methodName, long retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.Object obj, java.lang.String methodName, float retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.Object obj, java.lang.String methodName, double retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.Object obj, java.lang.String methodName, char retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.Object obj, java.lang.String methodName, boolean retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.Object obj, java.lang.String methodName, java.lang.Object retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.public void exit(long type, java.lang.String className, java.lang.String methodName, byte retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName, short retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName, int retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName, long retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName, float retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName, double retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName, char retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName, boolean retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void exit(long type, java.lang.String className, java.lang.String methodName, java.lang.Object retValue)
exit
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.retValue
- The returned value.public void trace(long type, java.lang.Object obj, java.lang.String methodName, java.lang.String text)
trace
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.text
- The trace text.public void trace(long type, java.lang.Object obj, java.lang.String methodName, java.lang.String text, java.lang.Object parm1)
trace
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.text
- The trace text.parm1
- An element to be displayed as trace data.public void trace(long type, java.lang.Object obj, java.lang.String methodName, java.lang.String text, java.lang.Object parm1, java.lang.Object parm2)
trace
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.text
- The trace text.parm1
- An element to be displayed as trace data.parm2
- An element to be displayed as trace data.public void trace(long type, java.lang.Object obj, java.lang.String methodName, java.lang.String text, java.lang.Object[] parms)
trace
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.text
- The trace text.parms
- An array of elements to be displayed with the text.public void trace(long type, java.lang.String className, java.lang.String methodName, java.lang.String text)
trace
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.text
- The trace text.public void trace(long type, java.lang.String className, java.lang.String methodName, java.lang.String text, java.lang.Object parm1)
trace
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.text
- The trace text.parm1
- An element to be displayed as trace data.public void trace(long type, java.lang.String className, java.lang.String methodName, java.lang.String text, java.lang.Object parm1, java.lang.Object parm2)
trace
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.text
- The trace text.parm1
- An element to be displayed as trace data.parm2
- An element to be displayed as trace data.public void trace(long type, java.lang.String className, java.lang.String methodName, java.lang.String text, java.lang.Object[] parms)
trace
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.text
- The trace text.parms
- An array of elements to be displayed as trace data.public void trace(long type, java.lang.Object obj, java.lang.String methodName, byte[] data)
trace
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.data
- The array of bytes to be traced.public void trace(long type, java.lang.String className, java.lang.String methodName, byte[] data)
trace
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.data
- The array of bytes to be traced.public void exception(long type, java.lang.Object obj, java.lang.String methodName, java.lang.Exception exception)
exception
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.exception
- An Exception object.public void exception(long type, java.lang.String className, java.lang.String methodName, java.lang.Exception exception)
exception
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.exception
- An Exception object.public void exception(long type, java.lang.Object obj, java.lang.String methodName, java.lang.Throwable exception)
exception
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.exception
- A Throwable object.public void exception(long type, java.lang.String className, java.lang.String methodName, java.lang.Throwable exception)
exception
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.exception
- A Throwable object.public void stackTrace(long type, java.lang.Object obj, java.lang.String methodName)
stackTrace
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.public void stackTrace(long type, java.lang.Object obj, java.lang.String methodName, java.lang.String text)
stackTrace
in interface RASITraceLogger
type
- The type of the trace point.obj
- The traced object ("this").methodName
- The name of the traced method.text
- A message to be displayed with the stack trace.public void stackTrace(long type, java.lang.String className, java.lang.String methodName)
stackTrace
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.public void stackTrace(long type, java.lang.String className, java.lang.String methodName, java.lang.String text)
stackTrace
in interface RASITraceLogger
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.text
- A message to be displayed with the stack trace.protected void logTrace(long type, java.lang.String className, java.lang.String methodName, java.lang.String text, java.lang.Object[] parms, java.lang.Throwable exception)
RASTraceEvent
and sends it to all attached handlers.
This method assumes that any checks to see if the RAS event can be logged have already been done.
type
- The type of the trace point.className
- The name of the logging class.methodName
- The name of the logging method.text
- The trace text.parms
- An array of elements to be displayed as trace data.exception
- A Throwable object.protected void logTrace(long type, java.lang.String className, java.lang.String methodName, byte[] data)
RASTraceEvent
and sends it to all attached handlers.
This method assumes that any checks to see if the RAS event can be logged have already been done.
type
- The type of the trace point.className
- The name of the traced class.methodName
- The name of the traced method.data
- The array of bytes to be traced.public void maskValueChanged(RASMaskChangeEvent mc)
This method is intended to improve the performance of the
isLoggable
method. When notified of a change
in the value of a handler's mask, the logger can update its
internal data, which allows the logger to determine if a RAS event
will be logged.
maskValueChanged
in class RASLogger
mc
- A mask change event, indicating what has changed.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |