public class RMKeyChainAggr extends java.lang.Object implements RMKey.Get, RMKeyChain.Get
Constructor and Description |
---|
RMKeyChainAggr(java.util.List aList)
Creates a new RMKeyChainAggregator.
|
Modifier and Type | Method and Description |
---|---|
static double |
average(java.util.List aList,
RMKeyChain aKeyChain)
Returns the average resulting by evaluating the keychain on given list objects.
|
static java.lang.Double |
averageX(java.util.List aList,
RMKeyChain aKeyChain)
Returns the average resulting by evaluating the keychain on given list objects.
|
static int |
count(java.util.List aList,
RMKeyChain aKeyChain)
Returns the count of the given list or if keychain is present, all non-null values.
|
static int |
countDeep(java.util.List aList,
RMKeyChain aKeyChain)
Returns the count of all non-null leaf nodes in given list.
|
static int |
countUnique(java.util.List aList,
RMKeyChain aKeyChain)
Returns the count of the unique values for a given list and key chain.
|
static java.util.List |
filter(java.util.List aList,
RMKeyChain aKeyChain)
Returns the original list with items that fail the given boolean key chain removed.
|
static java.lang.Object |
get(java.util.List aList,
RMKeyChain aKeyChain)
Returns the specific object that meets the criteria.
|
static java.lang.reflect.Method |
getAggrMethodImpl(java.lang.String aName)
Returns a method for a method name (assuming {List,KeyChain} args).
|
java.lang.Object |
getKeyChainValue(java.lang.Object aRoot,
RMKeyChain aKeyChain)
Override to give list chance to implement this.
|
java.lang.Object |
getKeyValue(java.lang.String aKey)
Override to give list chance to implement this.
|
static java.lang.Object |
getListValue(java.lang.Object anObj,
RMKeyChain aKeyChain)
Silly method to support DatasetKeys like: List1Key.List2Key, which returns a flattened Master/Detail list.
|
protected RMKeyChain |
getMethodArgs(RMKeyChain aKeyChain)
Returns the method args.
|
protected java.lang.String |
getMethodName(RMKeyChain aKeyChain)
Returns the method name for a KeyChain.
|
static java.util.List |
group(java.util.List aList,
RMKeyChain aKeyChain)
Returns the original list grouped by the given key chain.
|
static java.lang.String |
join(java.util.List aList,
RMKeyChain aKeyChain)
Aggregator version of join.
|
static java.util.List |
listOf(java.util.List aList,
RMKeyChain aKeyChain)
Returns a list of objects by evaluating keychain on given list.
|
static java.lang.Object |
max(java.util.List aList,
RMKeyChain aKeyChain)
Returns the maximum result of evaluating the keychain on given list objects.
|
static java.lang.Object |
min(java.util.List aList,
RMKeyChain aKeyChain)
Returns the minimum result of evaluating the keychain on given list objects.
|
static boolean |
shouldRecurse(java.util.List aList,
RMKeyChain aKeyChain)
Returns whether given list should be recursed into for aggregate calculations.
|
static double |
total(java.util.List aList,
RMKeyChain aKeyChain)
Returns the total resulting from evaluating given keychain on given list of objects (nulls are zero).
|
static double |
total2(java.util.List aList,
RMKeyChain aKeyChain)
Returns the total resulting from evaluating given keychain on given list of objects (nulls are zero).
|
static java.lang.Double |
totalX(java.util.List aList,
RMKeyChain aKeyChain)
Returns the total resulting from evaluating given keychain on given list of objects (nulls short circuit).
|
public RMKeyChainAggr(java.util.List aList)
public java.lang.Object getKeyValue(java.lang.String aKey)
getKeyValue
in interface RMKey.Get
public java.lang.Object getKeyChainValue(java.lang.Object aRoot, RMKeyChain aKeyChain)
getKeyChainValue
in interface RMKeyChain.Get
protected java.lang.String getMethodName(RMKeyChain aKeyChain)
protected RMKeyChain getMethodArgs(RMKeyChain aKeyChain)
public static java.lang.reflect.Method getAggrMethodImpl(java.lang.String aName)
public static double total(java.util.List aList, RMKeyChain aKeyChain)
public static double total2(java.util.List aList, RMKeyChain aKeyChain)
public static java.lang.Double totalX(java.util.List aList, RMKeyChain aKeyChain)
public static int count(java.util.List aList, RMKeyChain aKeyChain)
public static int countDeep(java.util.List aList, RMKeyChain aKeyChain)
public static int countUnique(java.util.List aList, RMKeyChain aKeyChain)
public static double average(java.util.List aList, RMKeyChain aKeyChain)
public static java.lang.Double averageX(java.util.List aList, RMKeyChain aKeyChain)
public static java.lang.Object min(java.util.List aList, RMKeyChain aKeyChain)
public static java.lang.Object max(java.util.List aList, RMKeyChain aKeyChain)
public static java.lang.Object get(java.util.List aList, RMKeyChain aKeyChain)
public static java.util.List filter(java.util.List aList, RMKeyChain aKeyChain)
public static java.util.List group(java.util.List aList, RMKeyChain aKeyChain)
public static java.lang.String join(java.util.List aList, RMKeyChain aKeyChain)
public static java.util.List listOf(java.util.List aList, RMKeyChain aKeyChain)
public static boolean shouldRecurse(java.util.List aList, RMKeyChain aKeyChain)
public static java.lang.Object getListValue(java.lang.Object anObj, RMKeyChain aKeyChain)