Class SettingsTransformer
- java.lang.Object
-
- org.openjdk.jmc.flightrecorder.parser.synthetic.SettingsTransformer
-
- All Implemented Interfaces:
IEventSink
class SettingsTransformer extends java.lang.Object implements IEventSink
Event sink that transforms pre JDK 11 event types to their equivalent JDK 11 types. JDK 11 input data will be passed through mostly untouched.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
SettingsTransformer.FixCodeCacheSink
Fix for JDK-8157024, the code cache stats unallocatedCapacity event is written as KiB but reported as B.
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>
attributeRenameMap
private int
enabledIndex
private int
endTimeIndex
private static java.util.List<ValueField>
FIELDS
private int
periodIndex
(package private) static java.lang.String
REC_SETTING_NAME_ENABLED
(package private) static java.lang.String
REC_SETTING_NAME_PERIOD
(package private) static java.lang.String
REC_SETTING_NAME_STACKTRACE
(package private) static java.lang.String
REC_SETTING_NAME_THRESHOLD
(package private) static java.lang.String
REC_SETTING_PERIOD_EVERY_CHUNK
private static IAttribute<java.lang.Boolean>
REC_SETTINGS_ATTR_ENABLED
(package private) static IAttribute<IQuantity>
REC_SETTINGS_ATTR_PERIOD
private static IAttribute<java.lang.Boolean>
REC_SETTINGS_ATTR_STACKTRACE
(package private) static IAttribute<IQuantity>
REC_SETTINGS_ATTR_THRESHOLD
private java.lang.Object[]
reusableArray
private IEventSink
sink
private int
stacktraceIndex
private int
thresholdIndex
private int
typeIndex
private static java.lang.String
UNALLOCATED_CAPACITY_FIELD_ID
-
Constructor Summary
Constructors Constructor Description SettingsTransformer(IEventSinkFactory sinkFactory, java.lang.String label, java.lang.String[] category, java.lang.String description, java.util.List<ValueField> dataStructure)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEvent(java.lang.Object[] values)
Add a new event to the sink for processing.private boolean
addPeriodSettingEvent(java.lang.Object startTime, LabeledIdentifier type, IQuantity quantity)
private static void
addRenameEntry(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> renameMap, java.lang.String eventId, java.lang.String pre9AttrId, java.lang.String attrId)
private void
addSettingEvent(java.lang.Object startTime, LabeledIdentifier type, java.lang.String settingName, java.lang.Object settingValue)
private boolean
addThresholdSettingEvent(java.lang.Object startTime, LabeledIdentifier type, IQuantity quantity)
private static java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>
buildRenameMap()
(package private) boolean
isValid()
(package private) boolean
isValidV1()
(package private) static IEventSinkFactory
wrapSinkFactory(IEventSinkFactory subFactory)
-
-
-
Field Detail
-
REC_SETTING_NAME_ENABLED
static final java.lang.String REC_SETTING_NAME_ENABLED
- See Also:
- Constant Field Values
-
REC_SETTING_NAME_STACKTRACE
static final java.lang.String REC_SETTING_NAME_STACKTRACE
- See Also:
- Constant Field Values
-
REC_SETTING_NAME_THRESHOLD
static final java.lang.String REC_SETTING_NAME_THRESHOLD
- See Also:
- Constant Field Values
-
REC_SETTING_NAME_PERIOD
static final java.lang.String REC_SETTING_NAME_PERIOD
- See Also:
- Constant Field Values
-
REC_SETTING_PERIOD_EVERY_CHUNK
static final java.lang.String REC_SETTING_PERIOD_EVERY_CHUNK
- See Also:
- Constant Field Values
-
REC_SETTINGS_ATTR_ENABLED
private static final IAttribute<java.lang.Boolean> REC_SETTINGS_ATTR_ENABLED
-
REC_SETTINGS_ATTR_STACKTRACE
private static final IAttribute<java.lang.Boolean> REC_SETTINGS_ATTR_STACKTRACE
-
REC_SETTINGS_ATTR_THRESHOLD
static final IAttribute<IQuantity> REC_SETTINGS_ATTR_THRESHOLD
-
REC_SETTINGS_ATTR_PERIOD
static final IAttribute<IQuantity> REC_SETTINGS_ATTR_PERIOD
-
FIELDS
private static final java.util.List<ValueField> FIELDS
-
attributeRenameMap
private static final java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> attributeRenameMap
-
UNALLOCATED_CAPACITY_FIELD_ID
private static final java.lang.String UNALLOCATED_CAPACITY_FIELD_ID
- See Also:
- Constant Field Values
-
sink
private final IEventSink sink
-
reusableArray
private final java.lang.Object[] reusableArray
-
endTimeIndex
private int endTimeIndex
-
typeIndex
private int typeIndex
-
enabledIndex
private int enabledIndex
-
stacktraceIndex
private int stacktraceIndex
-
thresholdIndex
private int thresholdIndex
-
periodIndex
private int periodIndex
-
-
Constructor Detail
-
SettingsTransformer
SettingsTransformer(IEventSinkFactory sinkFactory, java.lang.String label, java.lang.String[] category, java.lang.String description, java.util.List<ValueField> dataStructure)
-
-
Method Detail
-
buildRenameMap
private static java.util.HashMap<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> buildRenameMap()
-
addRenameEntry
private static void addRenameEntry(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> renameMap, java.lang.String eventId, java.lang.String pre9AttrId, java.lang.String attrId)
-
isValid
boolean isValid()
-
isValidV1
boolean isValidV1()
-
addEvent
public void addEvent(java.lang.Object[] values)
Description copied from interface:IEventSink
Add a new event to the sink for processing. The sink may modify the event values as it sees fit.The implementation should have one or more subsinks created during the
IEventSinkFactory.create
call. Call addEvent on a subsink to continue the processing of the event. Note that the passed on value array must match the data structure used by the subsink.If no
addEvent
call is made to a subsink, then the event will be effectively filtered out.addEvent
calls to subsinks may be delayed until later calls of this method or in an implementation specific flush method that can be called byIEventSinkFactory.flush
.- Specified by:
addEvent
in interfaceIEventSink
- Parameters:
values
- Event values. The order and data type of the values must match thedataStructure
parameter to theIEventSinkFactory.create
call.
-
addThresholdSettingEvent
private boolean addThresholdSettingEvent(java.lang.Object startTime, LabeledIdentifier type, IQuantity quantity)
-
addPeriodSettingEvent
private boolean addPeriodSettingEvent(java.lang.Object startTime, LabeledIdentifier type, IQuantity quantity)
-
addSettingEvent
private void addSettingEvent(java.lang.Object startTime, LabeledIdentifier type, java.lang.String settingName, java.lang.Object settingValue)
-
wrapSinkFactory
static IEventSinkFactory wrapSinkFactory(IEventSinkFactory subFactory)
-
-