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 classSettingsTransformer.FixCodeCacheSinkFix 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>>attributeRenameMapprivate intenabledIndexprivate intendTimeIndexprivate static java.util.List<ValueField>FIELDSprivate intperiodIndex(package private) static java.lang.StringREC_SETTING_NAME_ENABLED(package private) static java.lang.StringREC_SETTING_NAME_PERIOD(package private) static java.lang.StringREC_SETTING_NAME_STACKTRACE(package private) static java.lang.StringREC_SETTING_NAME_THRESHOLD(package private) static java.lang.StringREC_SETTING_PERIOD_EVERY_CHUNKprivate static IAttribute<java.lang.Boolean>REC_SETTINGS_ATTR_ENABLED(package private) static IAttribute<IQuantity>REC_SETTINGS_ATTR_PERIODprivate static IAttribute<java.lang.Boolean>REC_SETTINGS_ATTR_STACKTRACE(package private) static IAttribute<IQuantity>REC_SETTINGS_ATTR_THRESHOLDprivate java.lang.Object[]reusableArrayprivate IEventSinksinkprivate intstacktraceIndexprivate intthresholdIndexprivate inttypeIndexprivate static java.lang.StringUNALLOCATED_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 voidaddEvent(java.lang.Object[] values)Add a new event to the sink for processing.private booleanaddPeriodSettingEvent(java.lang.Object startTime, LabeledIdentifier type, IQuantity quantity)private static voidaddRenameEntry(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 voidaddSettingEvent(java.lang.Object startTime, LabeledIdentifier type, java.lang.String settingName, java.lang.Object settingValue)private booleanaddThresholdSettingEvent(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) booleanisValid()(package private) booleanisValidV1()(package private) static IEventSinkFactorywrapSinkFactory(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:IEventSinkAdd 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.createcall. 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
addEventcall is made to a subsink, then the event will be effectively filtered out.addEventcalls 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:
addEventin interfaceIEventSink- Parameters:
values- Event values. The order and data type of the values must match thedataStructureparameter to theIEventSinkFactory.createcall.
-
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)
-
-