package rocks.inspectit.ui.rcp.editor.inputdefinition.extra; import com.google.common.base.Objects; /** * Factory for {@link InputDefinitionExtraMarker}s. * * @author Ivan Senic * */ public final class InputDefinitionExtrasMarkerFactory { /** * Private constructor. */ private InputDefinitionExtrasMarkerFactory() { } /** * Marker for {@link NavigationSteppingInputDefinitionExtra}. */ public static final InputDefinitionExtraMarker<NavigationSteppingInputDefinitionExtra> NAVIGATION_STEPPING_EXTRAS_MARKER = new InputDefinitionExtraMarker<NavigationSteppingInputDefinitionExtra>() { @Override public Class<NavigationSteppingInputDefinitionExtra> getInputDefinitionExtraClass() { return NavigationSteppingInputDefinitionExtra.class; } }; /** * Marker for {@link ExceptionTypeInputDefinitionExtra}. */ public static final InputDefinitionExtraMarker<ExceptionTypeInputDefinitionExtra> EXCEPTION_TYPE_EXTRAS_MARKER = new InputDefinitionExtraMarker<ExceptionTypeInputDefinitionExtra>() { @Override public Class<ExceptionTypeInputDefinitionExtra> getInputDefinitionExtraClass() { return ExceptionTypeInputDefinitionExtra.class; } }; /** * Marker for {@link CombinedInvocationsInputDefinitionExtra}. */ public static final InputDefinitionExtraMarker<CombinedInvocationsInputDefinitionExtra> COMBINED_INVOCATIONS_EXTRAS_MARKER = new InputDefinitionExtraMarker<CombinedInvocationsInputDefinitionExtra>() { @Override public Class<CombinedInvocationsInputDefinitionExtra> getInputDefinitionExtraClass() { return CombinedInvocationsInputDefinitionExtra.class; } }; /** * Marker for {@link SqlStatementInputDefinitionExtra}. */ public static final InputDefinitionExtraMarker<SqlStatementInputDefinitionExtra> SQL_STATEMENT_EXTRAS_MARKER = new InputDefinitionExtraMarker<SqlStatementInputDefinitionExtra>() { @Override public Class<SqlStatementInputDefinitionExtra> getInputDefinitionExtraClass() { return SqlStatementInputDefinitionExtra.class; } }; /** * Marker for {@link HttpChartingInputDefinitionExtra}. */ public static final InputDefinitionExtraMarker<HttpChartingInputDefinitionExtra> HTTP_CHARTING_EXTRAS_MARKER = new InputDefinitionExtraMarker<HttpChartingInputDefinitionExtra>() { @Override public Class<HttpChartingInputDefinitionExtra> getInputDefinitionExtraClass() { return HttpChartingInputDefinitionExtra.class; } }; /** * Marker for {@link TimerDataChartingInputDefinitionExtra}. */ public static final InputDefinitionExtraMarker<TimerDataChartingInputDefinitionExtra> TIMER_DATA_CHARTING_EXTRAS_MARKER = new InputDefinitionExtraMarker<TimerDataChartingInputDefinitionExtra>() { @Override public Class<TimerDataChartingInputDefinitionExtra> getInputDefinitionExtraClass() { return TimerDataChartingInputDefinitionExtra.class; } }; /** * Marker for {@link AlertInputDefinitionExtra}. */ public static final InputDefinitionExtraMarker<AlertInputDefinitionExtra> ALERT_EXTRAS_MARKER = new InputDefinitionExtraMarker<AlertInputDefinitionExtra>() { @Override public Class<AlertInputDefinitionExtra> getInputDefinitionExtraClass() { return AlertInputDefinitionExtra.class; } }; /** * Marker for {@link TraceInputDefinitionExtra}. */ public static final InputDefinitionExtraMarker<TraceInputDefinitionExtra> TRACE_EXTRAS_MARKER = new InputDefinitionExtraMarker<TraceInputDefinitionExtra>() { @Override public Class<TraceInputDefinitionExtra> getInputDefinitionExtraClass() { return TraceInputDefinitionExtra.class; } }; /** * Abstract class for input definition extras marker. * * @author Ivan Senic * * @param <E> * Type of input definition extra. */ public abstract static class InputDefinitionExtraMarker<E extends IInputDefinitionExtra> { /** * @return Returns the class type of the input definition extra. */ public abstract Class<E> getInputDefinitionExtraClass(); /** * {@inheritDoc} */ @Override public int hashCode() { return Objects.hashCode(getInputDefinitionExtraClass()); } /** * {@inheritDoc} */ @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null) { return false; } if (getClass() != object.getClass()) { return false; } InputDefinitionExtraMarker<?> that = (InputDefinitionExtraMarker<?>) object; return Objects.equal(this.getInputDefinitionExtraClass(), that.getInputDefinitionExtraClass()); } /** * {@inheritDoc} */ @Override public String toString() { return Objects.toStringHelper(this).add("inputDefintionExtraClass", getInputDefinitionExtraClass()).toString(); } } }