Class AbstractMonitoringRecord

java.lang.Object
kieker.common.record.AbstractMonitoringRecord
All Implemented Interfaces:
Serializable, Comparable<IMonitoringRecord>, IMonitoringRecord
Direct Known Subclasses:
AbstractEvent, AbstractJVMRecord, ActivationEvent, ActivationParameterEvent, AddParameterValueEvent, AfterDatabaseEvent, BeforeDatabaseEvent, BeforeReceivedRemoteEvent, BeforeSentRemoteEvent, BranchingRecord, CPUUtilizationRecord, DatabaseFailedEvent, DeactivationEvent, DiskUsageRecord, EmptyRecord, HostApplicationMetaData, KiekerMetadataRecord, LoadAverageRecord, MemSwapUsageRecord, NetworkUtilizationRecord, OperationCallEvent, OperationExecutionRecord, RegistryRecord, RemoveParameterValueEvent, ResourceUtilizationRecord, SessionEndEvent, SessionStartEvent, ThreadMetaData, TimestampRecord, TraceMetadata, UpdateParameterEvent

public abstract class AbstractMonitoringRecord extends Object implements IMonitoringRecord
Since:
1.2
Author:
Andre van Hoorn, Jan Waller, Nils Christian Ehmke
See Also:
  • Field Details

  • Constructor Details

    • AbstractMonitoringRecord

      public AbstractMonitoringRecord()
  • Method Details

    • isNotEqual

      protected static boolean isNotEqual(double x, double y)
      Checks whether two double values are equal or not.
      Parameters:
      x - first value
      y - second values
      Returns:
      returns true if the values differ
    • isNotEqual

      protected static boolean isNotEqual(float x, float y)
      Checks whether two float values are equal or not.
      Parameters:
      x - first value
      y - second values
      Returns:
      returns true if the values differ
    • getLoggingTimestamp

      public final long getLoggingTimestamp()
      Description copied from interface: IMonitoringRecord
      Delivers the current timestamp of the record.
      Specified by:
      getLoggingTimestamp in interface IMonitoringRecord
      Returns:
      The timestamp.
    • setLoggingTimestamp

      public final void setLoggingTimestamp(long timestamp)
      Description copied from interface: IMonitoringRecord
      Sets the logging timestamp to a new value.
      Specified by:
      setLoggingTimestamp in interface IMonitoringRecord
      Parameters:
      timestamp - The new timestamp for the record.
    • compareTo

      public int compareTo(IMonitoringRecord otherRecord)
      Provides an ordering of IMonitoringRecords by the loggingTimestamp. Classes overriding the implementation should respect this ordering. (see #326)
      Specified by:
      compareTo in interface Comparable<IMonitoringRecord>
      Parameters:
      otherRecord - The record to be compared.
      Returns:
      -1 if this object is less than, +1 if it is greater than or 0 if it is equal to the specified record.
    • equals

      public boolean equals(Object obj)

      Performs a null-check, a this-check, and a class-check. Moreover, it checks each attribute for equality.

      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • checkArray

      public static final void checkArray(Object[] values, Class<?>[] valueTypes)
      This method checks the given arrays, making sure that they have the same length and that the value elements are compatible with the given value types. If the arrays are not compatible, this method throws an IllegalArgumentException.
      Parameters:
      values - The values.
      valueTypes - The value types.
    • fromStringArrayToTypedArray2

      public static final Object[] fromStringArrayToTypedArray2(String[] recordFields, Class<?>[] valueTypes) throws IllegalArgumentException
      This helper method converts the given array with string objects into an array containing objects from the specified type. (e.g. via the valueOf methods).
      Parameters:
      recordFields - The array containing the string objects.
      valueTypes - The array containing the types the new array will have.
      Returns:
      An array of objects, converted from the given string array.
      Throws:
      IllegalArgumentException - If one or more of the given types are not supported.
    • classForName

      public static final Class<? extends IMonitoringRecord> classForName(String classname) throws MonitoringRecordException
      This method tries to find a monitoring record class with the given name.
      Parameters:
      classname - The name of the class.
      Returns:
      A Class instance corresponding to the given name, if it exists.
      Throws:
      MonitoringRecordException - If either a class with the given name could not be found or if the class doesn't implement IMonitoringRecord.
    • typesForClass

      public static final Class<?>[] typesForClass(Class<? extends IMonitoringRecord> clazz) throws MonitoringRecordException
      This method delivers the types array of the given class, either by finding the declared field (in case of a factory record) or via the getValueTypes method.
      Parameters:
      clazz - The record class.
      Returns:
      The value types of the specified record.
      Throws:
      MonitoringRecordException - If this method failed to access the value types.
      InvocationTargetException
    • createFromDeserializer

      public static final IMonitoringRecord createFromDeserializer(String recordClassName, IValueDeserializer deserializer) throws BufferUnderflowException, MonitoringRecordException
      Create monitoring record based on class name and a given value deserializer.
      Parameters:
      recordClassName - record class name
      deserializer - the derserializer
      Returns:
      a monitoring record
      Throws:
      BufferUnderflowException - on buffer read errors
      MonitoringRecordException - when no record could be constructed