|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eigenbase.xom.XMLUtil
org.eigenbase.xom.XOMUtil
mondrian.olap.Util
mondrian.olap.fun.FunUtil
public class FunUtil
FunUtil
contains a set of methods useful within the mondrian.olap.fun
package.
Nested Class Summary | |
---|---|
(package private) static class |
FunUtil.ArrayExpMemoComparator
|
static class |
FunUtil.DescendingValueComparator
Compares cell values, so that larger values compare first. |
(package private) static class |
FunUtil.Flag
Enumeration of the flags allowed to the ORDER MDX function. |
static class |
FunUtil.OrderKey
|
(package private) static class |
FunUtil.Quicksorter<T>
A functional for partialSort(java.lang.Object[], java.util.Comparator, int) . |
(package private) static class |
FunUtil.SetWrapper
|
(package private) static class |
FunUtil.SortKeySpec
|
Nested classes/interfaces inherited from class mondrian.olap.Util |
---|
Util.ErrorCellValue, Util.PropertyList |
Field Summary | |
---|---|
static boolean |
BooleanNull
Null value in three-valued boolean logic. |
static double |
DoubleEmpty
Special value which indicates that a double computation
has returned the MDX EMPTY value. |
static double |
DoubleNull
Special value which indicates that a double computation
has returned the MDX null value. |
(package private) static java.lang.String[] |
emptyStringArray
|
static int |
IntegerNull
Special value which indicates that an int computation
has returned the MDX null value. |
static mondrian.olap.fun.FunUtil.NullMember |
NullMember
|
Fields inherited from class mondrian.olap.Util |
---|
EmptyValue, JdbcVersion, nl, nullValue, PreJdk15, Retrowoven |
Constructor Summary | |
---|---|
FunUtil()
|
Method Summary | ||
---|---|---|
(package private) static java.util.List<Member> |
addMembers(SchemaReader schemaReader,
java.util.List<Member> members,
Hierarchy hierarchy)
|
|
(package private) static java.util.List<Member> |
addMembers(SchemaReader schemaReader,
java.util.List<Member> members,
Level level)
|
|
(package private) static
|
addUnique(java.util.List<T> left,
java.util.List<T> right,
java.util.Set<java.lang.Object> set)
Adds every element of right which is not in set
to both set and left . |
|
(package private) static Member |
ancestor(Evaluator evaluator,
Member member,
int distance,
Level targetLevel)
Returns the ancestor of member at the given level
or distance. |
|
(package private) static void |
appendTuple(java.lang.StringBuilder buf,
Member[] members)
|
|
static java.lang.Object |
avg(Evaluator evaluator,
java.util.List members,
Calc calc)
|
|
static java.lang.Double |
box(double d)
Converts a double (primitive) value to a Double. |
|
static java.lang.Integer |
box(int n)
Converts an int (primitive) value to an Integer. |
|
(package private) static void |
checkCompatible(Exp left,
Exp right,
FunDef funDef)
Throws an error if the expressions don't have the same hierarchy. |
|
(package private) static boolean |
checkFlag(int value,
int mask,
boolean strict)
Returns true if the mask in flag is set. |
|
static void |
checkIterListResultStyles(Calc calc)
|
|
static void |
checkListResultStyles(Calc calc)
|
|
static int |
compareHierarchically(Member m1,
Member m2,
boolean post)
Compares a pair of members according to their positions in a prefix-order (or postfix-order, if post is true) walk
over a hierarchy. |
|
static int |
compareSiblingMembers(Member m1,
Member m2)
Compares two members which are known to have the same parent. |
|
static int |
compareValues(double d1,
double d2)
Compares double-precision values according to MDX semantics. |
|
static int |
compareValues(int i,
int j)
|
|
static int |
compareValues(java.lang.Object value0,
java.lang.Object value1)
Compares two cell values. |
|
(package private) static double |
correlation(Evaluator evaluator,
java.util.List memberList,
Calc exp1,
Calc exp2)
|
|
static int |
count(Evaluator evaluator,
java.lang.Iterable iterable,
boolean includeEmpty)
|
|
(package private) static Member |
cousin(SchemaReader schemaReader,
Member member,
Member ancestorMember)
Returns the member under ancestorMember having the same relative position under member's parent. |
|
(package private) static java.lang.Object |
covariance(Evaluator evaluator,
java.util.List members,
Calc exp1,
Calc exp2,
boolean biased)
|
|
(package private) static FunDef |
createDummyFunDef(Resolver resolver,
int returnCategory,
Exp[] args)
|
|
static int |
decodeCategory(java.lang.String flags,
int offset)
Decodes the offset th character of an encoded method
signature into a type category. |
|
static int[] |
decodeParameterCategories(java.lang.String flags)
Decodes a string of parameter types into an array of type codes. |
|
static int |
decodeReturnCategory(java.lang.String flags)
Decodes the signature of a function into a category code which describes the return type of the operator. |
|
static Syntax |
decodeSyntacticType(java.lang.String flags)
Decodes the syntactic type of an operator. |
|
(package private) static java.util.List<Member> |
dimensionMembers(Dimension dimension,
Evaluator evaluator,
boolean includeCalcMembers)
|
|
(package private) static boolean |
equalTuple(Member[] members0,
Member[] members1)
Returns whether two tuples are equal. |
|
(package private) static java.util.Map<Member,java.lang.Object> |
evaluateMembers(Evaluator evaluator,
Calc exp,
java.lang.Iterable<Member> memberIter,
java.util.List<Member> memberList,
boolean parentsToo)
For each member in a list, evaluates an expression and creates a map from members to values. |
|
(package private) static FunUtil.SetWrapper |
evaluateSet(Evaluator evaluator,
java.lang.Iterable members,
Calc calc)
Evaluates exp (if defined) over members to
generate a List of FunUtil.SetWrapper objects, which contains
a Double value and meta information, unlike
evaluateMembers(mondrian.olap.Evaluator, mondrian.calc.Calc, java.lang.Iterable , which only produces values. |
|
(package private) static FunUtil.SetWrapper[] |
evaluateSet(Evaluator evaluator,
java.util.List members,
DoubleCalc[] calcs,
boolean isTuples)
Evaluates one or more expressions against the member list returning a SetWrapper array. |
|
(package private) static java.util.Map<java.lang.Object,java.lang.Object> |
evaluateTuples(Evaluator evaluator,
Calc exp,
java.util.List<Member[]> members)
For each tuple in a list, evaluates an expression and creates a map from tuples to values. |
|
static Hierarchy |
getDimensionDefaultHierarchy(Dimension dimension)
Returns the default hierarchy of a dimension, or null if there is no default. |
|
(package private) static
|
getLiteralArg(ResolvedFunCall call,
int i,
E defaultValue,
java.lang.Class<E> allowedValues)
Returns the ordinal of a literal argument. |
|
(package private) static java.lang.String |
getLiteralArg(ResolvedFunCall call,
int i,
java.lang.String defaultValue,
java.lang.String[] allowedValues)
Returns an argument whose value is a literal. |
|
(package private) static java.util.List<Member> |
getNonEmptyLevelMembers(Evaluator evaluator,
Level level,
boolean includeCalcMembers)
Returns members of a level which are not empty (according to the criteria expressed by the evaluator). |
|
static java.util.List<Member> |
getNonEmptyMemberChildren(Evaluator evaluator,
Member member)
|
|
static void |
hierarchizeMemberList(java.util.List<Member> memberList,
boolean post)
Sorts a list of members into hierarchical order. |
|
static void |
hierarchizeTupleList(java.util.List<Member[]> tupleList,
boolean post,
int arity)
Sorts a list of tuples into hierarchical order. |
|
(package private) static java.util.List<Member> |
hierarchyMembers(Hierarchy hierarchy,
Evaluator evaluator,
boolean includeCalcMembers)
|
|
(package private) static boolean |
isAncestorOf(Member m0,
Member m1,
boolean strict)
Returns whether m0 is an ancestor of m1 . |
|
static boolean |
isMemberType(Calc calc)
|
|
(package private) static java.util.List<Member> |
levelMembers(Level level,
Evaluator evaluator,
boolean includeCalcMembers)
|
|
(package private) static Member |
makeNullMember(MemberType memberType)
|
|
static Member[] |
makeNullTuple(TupleType tupleType)
|
|
static java.lang.Object |
max(Evaluator evaluator,
java.util.List members,
Calc exp)
|
|
(package private) static java.util.List<Member> |
memberRange(Evaluator evaluator,
Member startMember,
Member endMember)
|
|
static java.lang.Object |
min(Evaluator evaluator,
java.util.List members,
Calc calc)
|
|
static java.lang.RuntimeException |
newEvalException(FunDef funDef,
java.lang.String message)
Creates an exception which indicates that an error has occurred while executing a given function. |
|
static java.lang.RuntimeException |
newEvalException(java.lang.Throwable throwable)
Creates an exception which indicates that an error has occurred while executing a given function. |
|
static java.util.List<Member> |
partiallySortMembers(Evaluator evaluator,
java.util.List<Member> list,
Calc exp,
int limit,
boolean desc)
Partially sorts a list of Members by the value of an applied expression. |
|
static java.util.List<Member[]> |
partiallySortTuples(Evaluator evaluator,
java.util.List<Member[]> list,
Calc exp,
int limit,
boolean desc,
int arity)
Partially sorts a list of Tuples by the value of an applied expression. |
|
(package private) static void |
partialSort(java.lang.Object[] items,
java.util.Comparator comp,
int limit)
Partial Sort: sorts in place an array of Objects using a given Comparator, but only enough so that the N biggest (or smallest) items are at the start of the array. |
|
(package private) static double |
percentile(Evaluator evaluator,
java.util.List members,
Calc exp,
double p)
|
|
(package private) static java.util.List<Member> |
periodsToDate(Evaluator evaluator,
Level level,
Member member)
|
|
protected static double |
quartile(Evaluator evaluator,
java.util.List members,
Calc exp,
int range)
Returns the member which lies upon a particular quartile according to a given expression. |
|
(package private) static java.util.List<Member> |
removeCalculatedMembers(java.util.List<Member> memberList)
Removes every member from a list which is calculated. |
|
static FunDef |
resolveFunArgs(Validator validator,
FunDef funDef,
Exp[] args,
Exp[] newArgs,
java.lang.String name,
Syntax syntax)
Validates the arguments to a function and resolves the function. |
|
static int |
searchValuesDesc(java.lang.Object[] values,
java.lang.Object value)
Binary searches an array of values. |
|
(package private) static int |
sign(double d)
|
|
(package private) static java.util.List<Member> |
sortMembers(Evaluator evaluator,
java.lang.Iterable<Member> memberIter,
java.util.List<Member> memberList,
Calc exp,
boolean desc,
boolean brk)
Helper function to sort a list of members according to an expression. |
|
(package private) static java.util.List<Member> |
sortMembers(Evaluator evaluator,
java.lang.Iterable<Member> memberIter,
java.util.List<Member> memberList,
java.util.List<FunUtil.SortKeySpec> keySpecList)
Sorts a list of members according to a list of SortKeySpecs. |
|
static java.util.List<Member[]> |
sortTuples(Evaluator evaluator,
java.lang.Iterable<Member[]> tupleIter,
java.util.List<Member[]> tupleList,
Calc exp,
boolean desc,
boolean brk,
int arity)
Sorts a list of Tuples by the value of an applied expression. |
|
(package private) static java.util.List<Member[]> |
sortTuples(Evaluator evaluator,
java.lang.Iterable<Member[]> tupleIter,
java.util.List<Member[]> tupleList,
java.util.List<FunUtil.SortKeySpec> keySpecList,
int arity)
Helper function to sort a list of tuples according to a list of expressions and a list of sorting flags. |
|
static void |
sortValuesDesc(java.lang.Object[] values)
Sorts an array of values. |
|
(package private) static
|
stablePartialSort(java.util.List<T> list,
java.util.Comparator<T> comp,
int limit)
Stable partial sort of a list. |
|
(package private) static java.lang.Object |
stdev(Evaluator evaluator,
java.util.List members,
Calc exp,
boolean biased)
|
|
static java.lang.Object |
sum(Evaluator evaluator,
java.util.List members,
Calc exp)
|
|
static double |
sumDouble(Evaluator evaluator,
java.lang.Iterable iterable,
Calc exp)
|
|
static double |
sumDouble(Evaluator evaluator,
java.util.List members,
Calc exp)
|
|
(package private) static void |
toPercent(java.util.List members,
java.util.Map mapMemberToValue,
boolean isMember)
Turns the mapped values into relative values (percentages) for easy use by the general topOrBottom function. |
|
(package private) static boolean |
tupleContainsNullMember(Member[] tuple)
Returns whether one of the members in a tuple is null. |
|
(package private) static java.lang.Object |
var(Evaluator evaluator,
java.util.List members,
Calc exp,
boolean biased)
|
Methods inherited from class org.eigenbase.xom.XOMUtil |
---|
addChild, addChild, addChildren, addElement, concatenate, createDefaultParser, discard, discard, discard, discard, discard, discard, discard, discard, discard, getFirstInstance, wrapperToXml |
Methods inherited from class org.eigenbase.xom.XMLUtil |
---|
getFirstTagName, printAtt, printAtt, printAtt, printAtt, printPCDATA, printPCDATA, printPCDATA, quoteAtt, quoteAtt, quoteAtt, quoteAtt, quotePCDATA, stringEncodeXML, stringHasXMLSpecials |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
static final java.lang.String[] emptyStringArray
public static final mondrian.olap.fun.FunUtil.NullMember NullMember
public static final double DoubleNull
double
computation
has returned the MDX null value. See DoubleCalc
.
public static final double DoubleEmpty
double
computation
has returned the MDX EMPTY value. See DoubleCalc
.
public static final int IntegerNull
int
computation
has returned the MDX null value. See IntegerCalc
.
public static final boolean BooleanNull
Constructor Detail |
---|
public FunUtil()
Method Detail |
---|
public static java.lang.RuntimeException newEvalException(FunDef funDef, java.lang.String message)
public static java.lang.RuntimeException newEvalException(java.lang.Throwable throwable)
public static boolean isMemberType(Calc calc)
public static void checkIterListResultStyles(Calc calc)
public static void checkListResultStyles(Calc calc)
static java.lang.String getLiteralArg(ResolvedFunCall call, int i, java.lang.String defaultValue, java.lang.String[] allowedValues)
static <E extends java.lang.Enum<E>> E getLiteralArg(ResolvedFunCall call, int i, E defaultValue, java.lang.Class<E> allowedValues)
static void checkCompatible(Exp left, Exp right, FunDef funDef)
left
- right
-
MondrianEvaluationException
- if expressions don't have the same
hierarchystatic boolean checkFlag(int value, int mask, boolean strict)
true
if the mask in flag
is set.
value
- The value to check.mask
- The mask within value to look for.strict
- If true
all the bits in mask must be set. If
false
the method will return true
if any of the
bits in mask
are set.
mask
are set.static <T> void addUnique(java.util.List<T> left, java.util.List<T> right, java.util.Set<java.lang.Object> set)
right
which is not in set
to both set
and left
.
public static Hierarchy getDimensionDefaultHierarchy(Dimension dimension)
dimension
- Dimension
MondrianResource.CannotImplicitlyConvertDimensionToHierarchy
static java.util.List<Member> addMembers(SchemaReader schemaReader, java.util.List<Member> members, Hierarchy hierarchy)
static java.util.List<Member> addMembers(SchemaReader schemaReader, java.util.List<Member> members, Level level)
static java.util.List<Member> removeCalculatedMembers(java.util.List<Member> memberList)
memberList
- Member list
static boolean isAncestorOf(Member m0, Member m1, boolean strict)
m0
is an ancestor of m1
.
strict
- if true, a member is not an ancestor of itselfstatic java.util.Map<Member,java.lang.Object> evaluateMembers(Evaluator evaluator, Calc exp, java.lang.Iterable<Member> memberIter, java.util.List<Member> memberList, boolean parentsToo)
If the list contains tuples, use
evaluateTuples(mondrian.olap.Evaluator, mondrian.calc.Calc, java.util.List)
.
evaluator
- Evaluation contextexp
- Expression to evaluatememberIter
- Iterable over the collection of membersmemberList
- List to be populated with members, or nullparentsToo
- If true, evaluate the expression for all ancestors
of the members as wellstatic java.util.Map<java.lang.Object,java.lang.Object> evaluateTuples(Evaluator evaluator, Calc exp, java.util.List<Member[]> members)
evaluator
- Evaluation contextexp
- Expression to evaluatemembers
- List of members (or List of Member[] tuples)static java.util.List<Member> sortMembers(Evaluator evaluator, java.lang.Iterable<Member> memberIter, java.util.List<Member> memberList, Calc exp, boolean desc, boolean brk)
NOTE: This function does not preserve the contents of the validator.
If you do not specify memberList
, the method
will build its own member list as it iterates over memberIter
.
It is acceptable if memberList
and memberIter
are the
same list object.
If you specify memberList
, the list is sorted in place, and
memberList is returned.
evaluator
- EvaluatormemberIter
- Iterable over membersmemberList
- List of membersexp
- Expression to sort ondesc
- Whether to sort descendingbrk
- Whether to break
static java.util.List<Member> sortMembers(Evaluator evaluator, java.lang.Iterable<Member> memberIter, java.util.List<Member> memberList, java.util.List<FunUtil.SortKeySpec> keySpecList)
NOTE: Does not preserve the contents of the validator.
public static java.util.List<Member[]> sortTuples(Evaluator evaluator, java.lang.Iterable<Member[]> tupleIter, java.util.List<Member[]> tupleList, Calc exp, boolean desc, boolean brk, int arity)
Helper function for MDX functions TopCount, TopSum, TopPercent, BottomCount, BottomSum, BottomPercent, but not the MDX function Order.
NOTE: This function does not preserve the contents of the validator.
If you specify tupleList
, the list is sorted in place, and
tupleList is returned.
evaluator
- EvaluatortupleIter
- Iterator over tuplestupleList
- List of tuples, if known, otherwise nullexp
- Expression to sort ondesc
- Whether to sort descendingbrk
- Whether to breakarity
- Number of members in each tuple
public static java.util.List<Member> partiallySortMembers(Evaluator evaluator, java.util.List<Member> list, Calc exp, int limit, boolean desc)
Avoids sorting the whole list, finds only the ntop (or bottom) valued Members, and returns them as a new List. Helper function for MDX functions TopCount and BottomCount.
list
- a list of membersexp
- a Calc applied to each member to find its sort-keyevaluator
- limit
- maximum count of members to return.desc
- true to sort descending (and find TopCount), false to sort
ascending (and find BottomCount).
NOTE: Does not preserve the contents of the validator.
static java.util.List<Member[]> sortTuples(Evaluator evaluator, java.lang.Iterable<Member[]> tupleIter, java.util.List<Member[]> tupleList, java.util.List<FunUtil.SortKeySpec> keySpecList, int arity)
NOTE: This function does not preserve the contents of the validator.
public static java.util.List<Member[]> partiallySortTuples(Evaluator evaluator, java.util.List<Member[]> list, Calc exp, int limit, boolean desc, int arity)
Avoids sorting the whole list, finds only the n top (or bottom) valued Tuples, and returns them as a new List. Helper function for MDX functions TopCount and BottomCount.
list
- a list of tuplesexp
- a Calc applied to each tple to find its sort-keyevaluator
- limit
- maximum count of tuples to return.desc
- true to sort descending (and find TopCount),
false to sort ascending (and find BottomCount).
NOTE: Does not preserve the contents of the validator.
public static void hierarchizeMemberList(java.util.List<Member> memberList, boolean post)
memberList
- List of memberspost
- Whether to sort in post order; if false, sorts in pre orderhierarchizeTupleList(java.util.List, boolean, int)
public static void hierarchizeTupleList(java.util.List<Member[]> tupleList, boolean post, int arity)
tupleList
- List of tuplespost
- Whether to sort in post order; if false, sorts in pre orderarity
- Number of members in each tuplehierarchizeMemberList(java.util.List, boolean)
static int sign(double d)
public static int compareValues(double d1, double d2)
MDX requires a total order:
-inf < NULL < ... < -1 < ... < 0 < ... < NaN < +infbut this is different than Java semantics, specifically with regard to
Double.NaN
.
public static int compareValues(int i, int j)
public static int compareValues(java.lang.Object value0, java.lang.Object value1)
Nulls compare last, exceptions (including the object which indicates the the cell is not in the cache yet) next, then numbers and strings are compared by value.
value0
- First cell valuevalue1
- Second cell value
static void toPercent(java.util.List members, java.util.Map mapMemberToValue, boolean isMember)
public static Syntax decodeSyntacticType(java.lang.String flags)
flags
- A encoded string which represents an operator signature,
as used by the flags
parameter used to construct a
FunDefBase
.
Syntax
public static int decodeReturnCategory(java.lang.String flags)
For example, decodeReturnType("fnx")
returns
, indicating this function has a
numeric return value.
Category.Numeric
flags
- The signature of an operator,
as used by the flags
parameter used to construct a
FunDefBase
.
Category
codes.public static int decodeCategory(java.lang.String flags, int offset)
offset
th character of an encoded method
signature into a type category.
The codes are:
flags
- Encoded signature stringoffset
- 0-based offset of character within string
Category
public static int[] decodeParameterCategories(java.lang.String flags)
Each character is decoded using decodeCategory(String, int)
.
For example, decodeParameterTypes("nx")
returns
{
.
Category.Numeric
, Category.Set
}
flags
- The signature of an operator,
as used by the flags
parameter used to construct a
FunDefBase
.
Category
codes.public static java.lang.Double box(double d)
DoubleNull
becomes null.
public static java.lang.Integer box(int n)
IntegerNull
becomes null.
public static void sortValuesDesc(java.lang.Object[] values)
public static int searchValuesDesc(java.lang.Object[] values, java.lang.Object value)
static double percentile(Evaluator evaluator, java.util.List members, Calc exp, double p)
protected static double quartile(Evaluator evaluator, java.util.List members, Calc exp, int range)
evaluator
- Evaluatormembers
- List of membersexp
- Expression to rank membersrange
- Quartile (1, 2 or 3)public static java.lang.Object min(Evaluator evaluator, java.util.List members, Calc calc)
public static java.lang.Object max(Evaluator evaluator, java.util.List members, Calc exp)
static java.lang.Object var(Evaluator evaluator, java.util.List members, Calc exp, boolean biased)
static double correlation(Evaluator evaluator, java.util.List memberList, Calc exp1, Calc exp2)
static java.lang.Object covariance(Evaluator evaluator, java.util.List members, Calc exp1, Calc exp2, boolean biased)
static java.lang.Object stdev(Evaluator evaluator, java.util.List members, Calc exp, boolean biased)
public static java.lang.Object avg(Evaluator evaluator, java.util.List members, Calc calc)
public static java.lang.Object sum(Evaluator evaluator, java.util.List members, Calc exp)
public static double sumDouble(Evaluator evaluator, java.util.List members, Calc exp)
public static double sumDouble(Evaluator evaluator, java.lang.Iterable iterable, Calc exp)
public static int count(Evaluator evaluator, java.lang.Iterable iterable, boolean includeEmpty)
static FunUtil.SetWrapper evaluateSet(Evaluator evaluator, java.lang.Iterable members, Calc calc)
exp
(if defined) over members
to
generate a List
of FunUtil.SetWrapper
objects, which contains
a Double
value and meta information, unlike
evaluateMembers(mondrian.olap.Evaluator, mondrian.calc.Calc, java.lang.Iterable, java.util.List, boolean)
, which only produces values.
static FunUtil.SetWrapper[] evaluateSet(Evaluator evaluator, java.util.List members, DoubleCalc[] calcs, boolean isTuples)
static java.util.List<Member> periodsToDate(Evaluator evaluator, Level level, Member member)
static java.util.List<Member> memberRange(Evaluator evaluator, Member startMember, Member endMember)
static Member cousin(SchemaReader schemaReader, Member member, Member ancestorMember)
For exmaple, cousin([Feb 2001], [Q3 2001]) is [August 2001].
schemaReader
- The reader to usemember
- The member for which we'll find the cousin.ancestorMember
- The cousin's ancestor.
ancestorMember
in the same position
under ancestorMember
as member
is under its
parent.static Member ancestor(Evaluator evaluator, Member member, int distance, Level targetLevel)
member
at the given level
or distance. It is assumed that any error checking required
has been done prior to calling this function.
This method takes into consideration the fact that there
may be intervening hidden members between member
and the ancestor. If targetLevel
is not null, then
the method will only return a member if the level at
distance
from the member is actually the
targetLevel
specified.
evaluator
- The evaluation contextmember
- The member for which the ancestor is to be founddistance
- The distance up the chain the ancestor is to
be found.targetLevel
- The desired targetLevel of the ancestor. If
null
, then the distance completely determines the desired
ancestor.
null
if no such
ancestor exists.public static int compareHierarchically(Member m1, Member m2, boolean post)
post
is true) walk
over a hierarchy.
m1
- First memberm2
- Second memberpost
- Whether to sortMembers in postfix order. If true, a parent
will sortMembers immediately after its last child. If false, a parent
will sortMembers immediately before its first child.
public static int compareSiblingMembers(Member m1, Member m2)
If the ordinals do not differ, compare using regular member comparison.
m1
- First memberm2
- Second member
static boolean tupleContainsNullMember(Member[] tuple)
public static Member[] makeNullTuple(TupleType tupleType)
static Member makeNullMember(MemberType memberType)
public static FunDef resolveFunArgs(Validator validator, FunDef funDef, Exp[] args, Exp[] newArgs, java.lang.String name, Syntax syntax)
validator
- Validator used to validate function arguments and
resolve the functionfunDef
- Function definition, or null to deduce definition from
name, syntax and argument typesargs
- Arguments to the functionnewArgs
- Output parameter for the resolved argumentsname
- Function namesyntax
- Syntax style used to invoke function
static void appendTuple(java.lang.StringBuilder buf, Member[] members)
static boolean equalTuple(Member[] members0, Member[] members1)
The members are allowed to be in different positions. For example,
([Gender].[M], [Store].[USA]) IS ([Store].[USA],
[Gender].[M])
returns true
.
static FunDef createDummyFunDef(Resolver resolver, int returnCategory, Exp[] args)
public static java.util.List<Member> getNonEmptyMemberChildren(Evaluator evaluator, Member member)
static java.util.List<Member> getNonEmptyLevelMembers(Evaluator evaluator, Level level, boolean includeCalcMembers)
evaluator
- Evaluator, determines non-empty criterialevel
- LevelincludeCalcMembers
- Whether to include calculated membersstatic java.util.List<Member> levelMembers(Level level, Evaluator evaluator, boolean includeCalcMembers)
static java.util.List<Member> hierarchyMembers(Hierarchy hierarchy, Evaluator evaluator, boolean includeCalcMembers)
static java.util.List<Member> dimensionMembers(Dimension dimension, Evaluator evaluator, boolean includeCalcMembers)
static void partialSort(java.lang.Object[] items, java.util.Comparator comp, int limit)
items
- will be partially-sorted in placecomp
- a Comparator; null means use natural comparisonlimit
- static <T> java.util.List<T> stablePartialSort(java.util.List<T> list, java.util.Comparator<T> comp, int limit)
|
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |