- java.lang.Object
-
- jdk.jfr.consumer.RecordedObject
-
- Direct Known Subclasses:
RecordedClass
,RecordedClassLoader
,RecordedEvent
,RecordedFrame
,RecordedMethod
,RecordedStackTrace
,RecordedThread
,RecordedThreadGroup
public class RecordedObject extends Object
A complex data type that consists of one or more fields.This class provides methods to select and query nested objects by passing a dot
"."
delimitedString
object (for instance,"aaa.bbb"
). A method evaluates a nested object from left to right, and if a part isnull
, it throwsNullPointerException
.- Since:
- 9
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
getBoolean(String name)
Returns the value of a field of typeboolean
.byte
getByte(String name)
Returns the value of a field of typebyte
.char
getChar(String name)
Returns the value of a field of typechar
.RecordedClass
getClass(String name)
Returns the value of a field of typeClass
.double
getDouble(String name)
Returns the value of a field of typedouble
or of another primitive type that is convertible to typedouble
by a widening conversion.Duration
getDuration(String name)
Returns the value of a timespan field.List<ValueDescriptor>
getFields()
Returns an immutable list of the fields for this object.float
getFloat(String name)
Returns the value of a field of typefloat
or of another primitive type convertible to typefloat
by a widening conversion.Instant
getInstant(String name)
Returns the value of a timestamp field.int
getInt(String name)
Returns the value of a field of typeint
or of another primitive type that is convertible to typeint
by a widening conversion.long
getLong(String name)
Returns the value of a field of typelong
or of another primitive type that is convertible to typelong
by a widening conversion.short
getShort(String name)
Returns the value of a field of typeshort
or of another primitive type convertible to typeshort
by a widening conversion.String
getString(String name)
Returns the value of a field of typeString
.RecordedThread
getThread(String name)
Returns the value of a field of typeThread
.<T> T
getValue(String name)
Returns the value of the field with the given name.boolean
hasField(String name)
Returnstrue
if a field with the given name exists,false
otherwise.String
toString()
Returns a textual representation of this object.
-
-
-
Method Detail
hasField
public boolean hasField(String name)
Returnstrue
if a field with the given name exists,false
otherwise.- Parameters:
name
- name of the field to get, notnull
- Returns:
true
if the field exists,false
otherwise.- See Also:
getFields()
getValue
public final <T> T getValue(String name)
Returns the value of the field with the given name.The return type may be a primitive type or a subclass of
RecordedObject
.It's possible to index into a nested object by using
"."
(for instance"thread.group.parent.name
").A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
Example
if (event.hasField("intValue")) { int intValue = event.getValue("intValue"); System.out.println("Int value: " + intValue); } if (event.hasField("objectClass")) { RecordedClass clazz = event.getValue("objectClass"); System.out.println("Class name: " + clazz.getName()); } if (event.hasField("sampledThread")) { RecordedThread sampledThread = event.getValue("sampledThread"); System.out.println("Sampled thread: " + sampledThread.getName()); }
- Type Parameters:
T
- the return type- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value, can be
null
- Throws:
IllegalArgumentException
- if no field calledname
exists- See Also:
hasField(String)
getFields
public List<ValueDescriptor> getFields()
Returns an immutable list of the fields for this object.- Returns:
-
the fields, not
null
getBoolean
public final boolean getBoolean(String name)
Returns the value of a field of typeboolean
.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- name of the field to get, notnull
- Returns:
-
the value of the field,
true
orfalse
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field is not of typeboolean
- See Also:
hasField(String)
,getValue(String)
getByte
public final byte getByte(String name)
Returns the value of a field of typebyte
.It's possible to index into a nested object using
"."
(for example,"foo.bar"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
- the value of the field
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field is not of typebyte
- See Also:
hasField(String)
,getValue(String)
getChar
public final char getChar(String name)
Returns the value of a field of typechar
.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field as a
char
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field is not of typechar
- See Also:
hasField(String)
,getValue(String)
getShort
public final short getShort(String name)
Returns the value of a field of typeshort
or of another primitive type convertible to typeshort
by a widening conversion.This method can be used on the following types:
short
andbyte
.If the field has the
@Unsigned
annotation and is of a narrower type thanshort
, then the value is returned as an unsigned.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field converted to type
short
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field value can't be converted to the typeshort
by a widening conversion- See Also:
hasField(String)
getInt
public final int getInt(String name)
Returns the value of a field of typeint
or of another primitive type that is convertible to typeint
by a widening conversion.This method can be used on fields of the following types:
int
,short
,char
, andbyte
.If the field has the
@Unsigned
annotation and is of a narrower type thanint
, then the value will be returned as an unsigned.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field converted to type
int
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field value can't be converted to the typeint
by a widening conversion- See Also:
hasField(String)
getFloat
public final float getFloat(String name)
Returns the value of a field of typefloat
or of another primitive type convertible to typefloat
by a widening conversion.This method can be used on fields of the following types:
float
,long
,int
,short
,char
, andbyte
.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field converted to type
float
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field value can't be converted to the typefloat
by a widening conversion- See Also:
hasField(String)
getLong
public final long getLong(String name)
Returns the value of a field of typelong
or of another primitive type that is convertible to typelong
by a widening conversion.This method can be used on fields of the following types:
long
,int
,short
,char
, andbyte
.If the field has the
@Unsigned
annotation and is of a narrower type thanlong
, then the value will be returned as an unsigned.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field converted to type
long
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field value can't be converted to the typelong
via a widening conversion- See Also:
hasField(String)
getDouble
public final double getDouble(String name)
Returns the value of a field of typedouble
or of another primitive type that is convertible to typedouble
by a widening conversion.This method can be used on fields of the following types:
double
,float
,long
,int
,short
,char
, andbyte
.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field converted to type
double
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field value can't be converted to the typedouble
by a widening conversion- See Also:
hasField(String)
getString
public final String getString(String name)
Returns the value of a field of typeString
.It's possible to index into a nested object using
"."
(for example,"foo.bar"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field as a
String
, can benull
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field isn't of typeString
- See Also:
hasField(String)
getDuration
public final Duration getDuration(String name)
Returns the value of a timespan field.This method can be used on fields annotated with
@Timespan
, and of the following types:long
,int
,short
,char
, andbyte
.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
a time span represented as a
Duration
, notnull
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field value can't be converted to aDuration
object- See Also:
hasField(String)
getInstant
public final Instant getInstant(String name)
Returns the value of a timestamp field.This method can be used on fields annotated with
@Timestamp
, and of the following types:long
,int
,short
,char
andbyte
.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
a timstamp represented as an
Instant
, notnull
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field value can't be converted to anInstant
object- See Also:
hasField(String)
getClass
public final RecordedClass getClass(String name)
Returns the value of a field of typeClass
.It's possible to index into a nested object using
"."
(for example,"aaa.bbb"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field as a
RecordedClass
, can benull
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field isn't of typeClass
- See Also:
hasField(String)
getThread
public final RecordedThread getThread(String name)
Returns the value of a field of typeThread
.It's possible to index into a nested object using
"."
(for example,"foo.bar"
).A field might change or be removed in a future JDK release. A best practice for callers of this method is to validate the field before attempting access.
- Parameters:
name
- of the field to get, notnull
- Returns:
-
the value of the field as a
RecordedThread
object, can benull
- Throws:
IllegalArgumentException
- if the field doesn't exist, or the field isn't of typeThread
- See Also:
hasField(String)
-