Package kieker.common.record
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 thegetValueTypes
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
-
TYPE_SIZE_INT
public static final int TYPE_SIZE_INT- See Also:
- Constant Field Values
-
TYPE_SIZE_LONG
public static final int TYPE_SIZE_LONG- See Also:
- Constant Field Values
-
TYPE_SIZE_FLOAT
public static final int TYPE_SIZE_FLOAT- See Also:
- Constant Field Values
-
TYPE_SIZE_DOUBLE
public static final int TYPE_SIZE_DOUBLE- See Also:
- Constant Field Values
-
TYPE_SIZE_SHORT
public static final int TYPE_SIZE_SHORT- See Also:
- Constant Field Values
-
TYPE_SIZE_BYTE
public static final int TYPE_SIZE_BYTE- See Also:
- Constant Field Values
-
TYPE_SIZE_CHARACTER
public static final int TYPE_SIZE_CHARACTER- See Also:
- Constant Field Values
-
TYPE_SIZE_STRING
public static final int TYPE_SIZE_STRING- See Also:
- Constant Field Values
-
TYPE_SIZE_BOOLEAN
public static final int TYPE_SIZE_BOOLEAN- See Also:
- Constant Field Values
-
-
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 valuey
- 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 valuey
- 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 interfaceIMonitoringRecord
- 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 interfaceIMonitoringRecord
- Parameters:
timestamp
- The new timestamp for the record.
-
compareTo
Provides an ordering of IMonitoringRecords by the loggingTimestamp. Classes overriding the implementation should respect this ordering. (see #326)- Specified by:
compareTo
in interfacejava.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 classjava.lang.Object
-
hashCode
public int hashCode()- Overrides:
hashCode
in classjava.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 anIllegalArgumentException
.- 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.IllegalArgumentExceptionThis helper method converts the given array with string objects into an array containing objects from the specified type. (e.g. via thevalueOf
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 MonitoringRecordExceptionThis 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 implementIMonitoringRecord
.
-
typesForClass
public static final java.lang.Class<?>[] typesForClass(java.lang.Class<? extends IMonitoringRecord> clazz) throws MonitoringRecordExceptionThis method delivers the types array of the given class, either by finding the declared field (in case of a factory record) or via thegetValueTypes
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, MonitoringRecordExceptionCreate monitoring record based on class name and a given value deserializer.- Parameters:
recordClassName
- record class namedeserializer
- the derserializer- Returns:
- a monitoring record
- Throws:
java.nio.BufferUnderflowException
- on buffer read errorsMonitoringRecordException
- when no record could be constructed
-