Class AbstractMonitoringRecord

java.lang.Object
kieker.common.record.AbstractMonitoringRecord
All Implemented Interfaces:
java.io.Serializable, java.lang.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 java.lang.Object
implements IMonitoringRecord
Since:
1.2
Author:
Andre van Hoorn, Jan Waller, Nils Christian Ehmke
See Also:
Serialized Form
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static int TYPE_SIZE_BOOLEAN  
    static int TYPE_SIZE_BYTE  
    static int TYPE_SIZE_CHARACTER  
    static int TYPE_SIZE_DOUBLE  
    static int TYPE_SIZE_FLOAT  
    static int TYPE_SIZE_INT  
    static int TYPE_SIZE_LONG  
    static int TYPE_SIZE_SHORT  
    static int TYPE_SIZE_STRING  
  • Constructor Summary

    Constructors 
    Constructor Description
    AbstractMonitoringRecord()  
  • Method Summary

    Modifier and Type Method Description
    static void checkArray​(java.lang.Object[] values, java.lang.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.
    static java.lang.Class<? extends IMonitoringRecord> classForName​(java.lang.String classname)
    This method tries to find a monitoring record class with the given name.
    int compareTo​(IMonitoringRecord otherRecord)
    Provides an ordering of IMonitoringRecords by the loggingTimestamp.
    static IMonitoringRecord createFromDeserializer​(java.lang.String recordClassName, IValueDeserializer deserializer)
    Create monitoring record based on class name and a given value deserializer.
    boolean equals​(java.lang.Object obj)
    Performs a null-check, a this-check, and a class-check.
    static java.lang.Object[] fromStringArrayToTypedArray2​(java.lang.String[] recordFields, java.lang.Class<?>[] valueTypes)
    This helper method converts the given array with string objects into an array containing objects from the specified type.
    long getLoggingTimestamp()
    Delivers the current timestamp of the record.
    int hashCode()  
    protected static boolean isNotEqual​(double x, double y)
    Checks whether two double values are equal or not.
    protected static boolean isNotEqual​(float x, float y)
    Checks whether two float values are equal or not.
    void setLoggingTimestamp​(long timestamp)
    Sets the logging timestamp to a new value.
    static java.lang.Class<?>[] typesForClass​(java.lang.Class<? extends IMonitoringRecord> clazz)
    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.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface kieker.common.record.IMonitoringRecord

    getSize, getValueNames, getValueTypes, serialize, toString
  • Field Details

  • Constructor Details

  • 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 java.lang.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​(java.lang.Object obj)

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

      Overrides:
      equals in class java.lang.Object
    • hashCode

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

      public static final void checkArray​(java.lang.Object[] values, java.lang.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 java.lang.Object[] fromStringArrayToTypedArray2​(java.lang.String[] recordFields, java.lang.Class<?>[] valueTypes) throws java.lang.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:
      java.lang.IllegalArgumentException - If one or more of the given types are not supported.
    • classForName

      public static final java.lang.Class<? extends IMonitoringRecord> classForName​(java.lang.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 java.lang.Class<?>[] typesForClass​(java.lang.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.
      java.lang.reflect.InvocationTargetException
    • createFromDeserializer

      public static final IMonitoringRecord createFromDeserializer​(java.lang.String recordClassName, IValueDeserializer deserializer) throws java.nio.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:
      java.nio.BufferUnderflowException - on buffer read errors
      MonitoringRecordException - when no record could be constructed