Class RecordedObject
- Direct Known Subclasses:
-
RecordedClass
,RecordedClassLoader
,RecordedEvent
,RecordedFrame
,RecordedMethod
,RecordedStackTrace
,RecordedThread
,RecordedThreadGroup
public class RecordedObject extends Object
This class provides methods to select and query nested objects by passing a dot "."
delimited String
object (for instance, "aaa.bbb"
). A method evaluates a nested object from left to right, and if a part is null
, it throws NullPointerException
.
- Since:
- 9
Method Summary
Modifier and Type | Method | Description |
---|---|---|
final boolean |
getBoolean |
Returns the value of a field of type boolean . |
final byte |
getByte |
Returns the value of a field of type byte . |
final char |
getChar |
Returns the value of a field of type char . |
final RecordedClass |
getClass |
Returns the value of a field of type Class . |
final double |
getDouble |
Returns the value of a field of type double or of another primitive type that is convertible to type double by a widening conversion. |
final Duration |
getDuration |
Returns the value of a timespan field. |
List<ValueDescriptor> |
getFields() |
Returns an immutable list of the fields for this object. |
final float |
getFloat |
Returns the value of a field of type float or of another primitive type convertible to type float by a widening conversion. |
final Instant |
getInstant |
Returns the value of a timestamp field. |
final int |
getInt |
Returns the value of a field of type int or of another primitive type that is convertible to type int by a widening conversion. |
final long |
getLong |
Returns the value of a field of type long or of another primitive type that is convertible to type long by a widening conversion. |
final short |
getShort |
Returns the value of a field of type short or of another primitive type convertible to type short by a widening conversion. |
final String |
getString |
Returns the value of a field of type String . |
final RecordedThread |
getThread |
Returns the value of a field of type Thread . |
final <T> T |
getValue |
Returns the value of the field with the given name. |
boolean |
hasField |
Returns true if a field with the given name exists, false otherwise. |
final String |
toString() |
Returns a textual representation of this object. |
Method Details
hasField
public boolean hasField(String name)
true
if a field with the given name exists, false
otherwise. It's possible to index into a nested field by using "."
(for instance "thread.group.parent.name
").
- Parameters:
-
name
- name of the field to get, notnull
- Returns:
-
true
if the field exists,false
otherwise - See Also:
getValue
public final <T> T getValue(String 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.getJavaName()); }
- 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:
getFields
public List<ValueDescriptor> getFields()
- Returns:
- the fields, not
null
getBoolean
public final boolean getBoolean(String name)
boolean
. 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:
getByte
public final byte getByte(String name)
byte
. 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:
getChar
public final char getChar(String name)
char
. 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:
getShort
public final short getShort(String name)
short
or of another primitive type convertible to type short
by a widening conversion. This method can be used on the following types: short
and byte
.
If the field has the @Unsigned
annotation and is of a narrower type than short
, 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:
getInt
public final int getInt(String name)
int
or of another primitive type that is convertible to type int
by a widening conversion. This method can be used on fields of the following types: int
, short
, char
, and byte
.
If the field has the @Unsigned
annotation and is of a narrower type than int
, 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:
getFloat
public final float getFloat(String name)
float
or of another primitive type convertible to type float
by a widening conversion. This method can be used on fields of the following types: float
, long
, int
, short
, char
, and byte
.
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:
getLong
public final long getLong(String name)
long
or of another primitive type that is convertible to type long
by a widening conversion. This method can be used on fields of the following types: long
, int
, short
, char
, and byte
.
If the field has the @Unsigned
annotation and is of a narrower type than long
, 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:
getDouble
public final double getDouble(String name)
double
or of another primitive type that is convertible to type double
by a widening conversion. This method can be used on fields of the following types: double
, float
, long
, int
, short
, char
, and byte
.
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:
getString
public final String getString(String name)
String
. 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:
getDuration
public final Duration getDuration(String name)
This method can be used on fields annotated with @Timespan
, and of the following types: long
, int
, short
, char
, and byte
.
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:
getInstant
public final Instant getInstant(String name)
This method can be used on fields annotated with @Timestamp
, and of the following types: long
, int
, short
, char
and byte
.
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:
getClass
public final RecordedClass getClass(String name)
Class
. 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:
getThread
public final RecordedThread getThread(String name)
Thread
. 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:
toString
public final String toString()
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/jdk.jfr/jdk/jfr/consumer/RecordedObject.html