--- /dev/null 2019-01-07 20:04:35.000000000 +0100 +++ new/application/org.openjdk.jmc.flightrecorder.ext.jfx/src/main/java/org/openjdk/jmc/flightrecorder/ext/jfx/JfxVersionUtil.java 2019-01-07 20:04:34.000000000 +0100 @@ -0,0 +1,52 @@ +package org.openjdk.jmc.flightrecorder.ext.jfx; + +import org.openjdk.jmc.common.item.IAttribute; +import org.openjdk.jmc.common.item.IItemCollection; +import org.openjdk.jmc.common.unit.IQuantity; +import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit; +import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit.EventAvailability; + +/** + * Package local helper. + */ +final class JfxVersionUtil { + enum JavaFxEventAvailability { + None, JavaFx8, JavaFx12 + } + + static JavaFxEventAvailability getAvailability(IItemCollection items) { + EventAvailability eventAvailability = RulesToolkit.getEventAvailability(items, JfxConstants.TYPE_ID_PULSE_PHASE_12); + if (RulesToolkit.isEventsEnabled(eventAvailability)) { + return JavaFxEventAvailability.JavaFx12; + } + eventAvailability = RulesToolkit.getEventAvailability(items, JfxConstants.TYPE_ID_PULSE_PHASE_8); + if (RulesToolkit.isEventsEnabled(eventAvailability)) { + return JavaFxEventAvailability.JavaFx8; + } + return JavaFxEventAvailability.None; + } + + + static String getPulseTypeId(JavaFxEventAvailability availability) { + if (availability == JavaFxEventAvailability.JavaFx8) { + return JfxConstants.TYPE_ID_PULSE_PHASE_8; + } + return JfxConstants.TYPE_ID_PULSE_PHASE_12; + } + + + static IAttribute getPulseIdAttribute(JavaFxEventAvailability availability) { + if (availability == JavaFxEventAvailability.JavaFx8) { + return JfxConstants.ATTRIBUTE_PULSE_ID_8; + } + return JfxConstants.ATTRIBUTE_PULSE_ID_12; + } + + + static IAttribute getPhaseNameAttribute(JavaFxEventAvailability availability) { + if (availability == JavaFxEventAvailability.JavaFx8) { + return JfxConstants.ATTRIBUTE_PHASE_NAME_8; + } + return JfxConstants.ATTRIBUTE_PHASE_NAME_12; + } +}