Package org.openjdk.jmc.common.util
Class MemberAccessorToolkit
- java.lang.Object
-
- org.openjdk.jmc.common.util.MemberAccessorToolkit
-
public class MemberAccessorToolkit extends Object
Toolkit for working withmember accessors
. The methods in this class can create accessors that perform various types of calculations based on the values retrieved by other accessors.
-
-
Constructor Summary
Constructors Constructor Description MemberAccessorToolkit()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> IMemberAccessor<IQuantity,T>
addHalfDelta(IMemberAccessor<IQuantity,T> bias, IMemberAccessor<IQuantity,T> delta)
Create an accessor that adds half of a delta value to a bias value.static IMemberAccessor<?,Object[]>
arrayElement(int index)
Create an accessor that returns a fixed element index from arrays.static <T> IMemberAccessor<IQuantity,T>
avg(IMemberAccessor<IQuantity,T> data1, IMemberAccessor<IQuantity,T> data2)
Create an accessor that calculates the average of the values from two accessors.static IMemberAccessor<?,CompositeData>
compositeElement(String key)
Create an accessor that returns a specified value fromCompositeData
instances.static <T,M,V extends M>
IMemberAccessor<M,T>constant(V value)
Create an accessor that always return the same value.static <T> IMemberAccessor<IQuantity,T>
difference(IMemberAccessor<IQuantity,T> minuend, IMemberAccessor<IQuantity,T> subtrahend)
Create an accessor that subtracts values of one accessor from the values of another accessor.static <T> IMemberAccessor<IRange<IQuantity>,T>
pointRange(IMemberAccessor<IQuantity,T> point)
Create an accessor that constructs point ranges (ranges with zero extent) based on point values.static <T> IMemberAccessor<IRange<IQuantity>,T>
rangeWithEnd(IMemberAccessor<IQuantity,T> start, IMemberAccessor<IQuantity,T> end)
Create an accessor that constructs ranges based on start and end values.static <T> IMemberAccessor<IRange<IQuantity>,T>
rangeWithExtent(IMemberAccessor<IQuantity,T> start, IMemberAccessor<IQuantity,T> extent)
Create an accessor that constructs ranges based on start and extent values.static <T> IMemberAccessor<IRange<IQuantity>,T>
rangeWithExtentEnd(IMemberAccessor<IQuantity,T> extent, IMemberAccessor<IQuantity,T> end)
Create an accessor that constructs ranges based on end and extent values.static <T> IMemberAccessor<IQuantity,T>
subtractHalfDelta(IMemberAccessor<IQuantity,T> bias, IMemberAccessor<IQuantity,T> delta)
Create an accessor that subtracts half of a delta value from a bias value.static <T> IMemberAccessor<IQuantity,T>
sum(IMemberAccessor<IQuantity,T> term1, IMemberAccessor<IQuantity,T> term2)
Create an accessor that adds the values of two accessors.
-
-
-
Method Detail
-
difference
public static <T> IMemberAccessor<IQuantity,T> difference(IMemberAccessor<IQuantity,T> minuend, IMemberAccessor<IQuantity,T> subtrahend)
Create an accessor that subtracts values of one accessor from the values of another accessor.- Parameters:
minuend
- accessor retrieving the value to subtract fromsubtrahend
- accessor retrieving the value to subtract- Returns:
- an accessor returning the difference between the input accessor values
-
sum
public static <T> IMemberAccessor<IQuantity,T> sum(IMemberAccessor<IQuantity,T> term1, IMemberAccessor<IQuantity,T> term2)
Create an accessor that adds the values of two accessors.- Parameters:
term1
- accessor retrieving the first value to addterm2
- accessor retrieving the second value to add- Returns:
- an accessor returning the sum of the input accessor values
-
avg
public static <T> IMemberAccessor<IQuantity,T> avg(IMemberAccessor<IQuantity,T> data1, IMemberAccessor<IQuantity,T> data2)
Create an accessor that calculates the average of the values from two accessors.- Parameters:
data1
- accessor retrieving the first valuedata2
- accessor retrieving the second value- Returns:
- an accessor returning the average of the input accessor values
-
addHalfDelta
public static <T> IMemberAccessor<IQuantity,T> addHalfDelta(IMemberAccessor<IQuantity,T> bias, IMemberAccessor<IQuantity,T> delta)
Create an accessor that adds half of a delta value to a bias value. Useful for example to find a center time if the bias is a start time and the delta is the duration of an event.- Parameters:
bias
- accessor retrieving the bias valuedelta
- accessor retrieving the delta value- Returns:
- an accessor returning the the bias value plus half of the delta value
-
subtractHalfDelta
public static <T> IMemberAccessor<IQuantity,T> subtractHalfDelta(IMemberAccessor<IQuantity,T> bias, IMemberAccessor<IQuantity,T> delta)
Create an accessor that subtracts half of a delta value from a bias value. Useful for example to find a center time if the bias is an end time and the delta is the duration of an event.- Parameters:
bias
- accessor retrieving the bias valuedelta
- accessor retrieving the delta value- Returns:
- an accessor returning the the bias value minus half of the delta value
-
rangeWithEnd
public static <T> IMemberAccessor<IRange<IQuantity>,T> rangeWithEnd(IMemberAccessor<IQuantity,T> start, IMemberAccessor<IQuantity,T> end)
Create an accessor that constructs ranges based on start and end values.- Parameters:
start
- accessor retrieving the start valueend
- accessor retrieving the end value- Returns:
- an accessor returning ranges based on the start and end values
-
rangeWithExtent
public static <T> IMemberAccessor<IRange<IQuantity>,T> rangeWithExtent(IMemberAccessor<IQuantity,T> start, IMemberAccessor<IQuantity,T> extent)
Create an accessor that constructs ranges based on start and extent values.- Parameters:
start
- accessor retrieving the start valueextent
- accessor retrieving the range extent- Returns:
- an accessor returning ranges based on the start and extent values
-
rangeWithExtentEnd
public static <T> IMemberAccessor<IRange<IQuantity>,T> rangeWithExtentEnd(IMemberAccessor<IQuantity,T> extent, IMemberAccessor<IQuantity,T> end)
Create an accessor that constructs ranges based on end and extent values.- Parameters:
extent
- accessor retrieving the range extentend
- accessor retrieving the end value- Returns:
- an accessor returning ranges based on the end and extent values
-
pointRange
public static <T> IMemberAccessor<IRange<IQuantity>,T> pointRange(IMemberAccessor<IQuantity,T> point)
Create an accessor that constructs point ranges (ranges with zero extent) based on point values.- Parameters:
point
- accessor retrieving the point position values- Returns:
- an accessor returning point ranges
-
constant
public static <T,M,V extends M> IMemberAccessor<M,T> constant(V value)
Create an accessor that always return the same value.- Parameters:
value
- constant value to return- Returns:
- an accessor returning the constant value
-
arrayElement
public static IMemberAccessor<?,Object[]> arrayElement(int index)
Create an accessor that returns a fixed element index from arrays.- Parameters:
index
- array index to return- Returns:
- an accessor returning the object at the specified index in an array
-
compositeElement
public static IMemberAccessor<?,CompositeData> compositeElement(String key)
Create an accessor that returns a specified value fromCompositeData
instances.- Parameters:
key
- key of the value to get- Returns:
- an accessor returning the value associated with the specified key
-
-