Class RecordedObject
- 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 "."
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
Methods
Modifier and Type | Method | Description |
---|---|---|
boolean | getBoolean(String name) | Returns the value of a field of type |
byte | getByte(String name) | Returns the value of a field of type |
char | getChar(String name) | Returns the value of a field of type |
RecordedClass | getClass(String name) | Returns the value of a field of type |
double | getDouble(String name) | Returns the value of a field of type |
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 type |
Instant | getInstant(String name) | Returns the value of a timestamp field. |
int | getInt(String name) | Returns the value of a field of type |
long | getLong(String name) | Returns the value of a field of type |
short | getShort(String name) | Returns the value of a field of type |
String | getString(String name) | Returns the value of a field of type |
RecordedThread | getThread(String name) | Returns the value of a field of type |
<T> T | getValue(String name) | Returns the value of the field with the given name. |
boolean | hasField(String name) | Returns |
String | toString() | Returns a textual representation of this object. |
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods
hasField
public boolean hasField(String name)
Returns true
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 type 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:
-
hasField(String)
,getValue(String)
getByte
public final byte getByte(String name)
Returns the value of a field of type 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:
-
hasField(String)
,getValue(String)
getChar
public final char getChar(String name)
Returns the value of a field of type 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:
-
hasField(String)
,getValue(String)
getShort
public final short getShort(String name)
Returns the value of a field of type 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:
hasField(String)
getInt
public final int getInt(String name)
Returns the value of a field of type 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:
hasField(String)
getFloat
public final float getFloat(String name)
Returns the value of a field of type 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:
hasField(String)
getLong
public final long getLong(String name)
Returns the value of a field of type 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:
hasField(String)
getDouble
public final double getDouble(String name)
Returns the value of a field of type 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:
hasField(String)
getString
public final String getString(String name)
Returns the value of a field of type 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:
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
, 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:
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
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:
hasField(String)
getClass
public final RecordedClass getClass(String name)
Returns the value of a field of type 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:
hasField(String)
getThread
public final RecordedThread getThread(String name)
Returns the value of a field of type 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:
hasField(String)
toString
public final String toString()
Returns a textual representation of this object.
© 1993, 2020, 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/11/docs/api/jdk.jfr/jdk/jfr/consumer/RecordedObject.html