|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuk.ac.ic.doc.automed.p2p.qproc.KRange
public class KRange
Field Summary | |
---|---|
static double |
alpha
|
private boolean |
analysed
|
private boolean |
caseSensitive
The IQL functions that represent this k-range TODO: keep this field serializable for memory-usage reason. |
static java.lang.String |
COMPOUND
|
static java.lang.String |
CONTAINSALL
|
static java.lang.String |
CONTAINSANY
|
static java.lang.String |
EMPTY_RANGE
|
static java.lang.String |
EQUAL
|
private java.lang.String |
fname
|
static java.lang.String |
GREATERTHAN
|
static java.lang.String |
GREATERTHANEQUAL
|
static java.lang.String |
IN
|
static double |
KRANGE_NOT_MATCH
|
static double |
KRANGE_NOT_SPECIFIED
|
private boolean |
leftBounded
|
static java.lang.String |
LESSTHAN
|
static java.lang.String |
LESSTHANEQUAL
|
static java.lang.String |
MEMBER
|
private static java.lang.String |
NLINE
|
private java.lang.Object[][] |
rangeArr
|
private ASG |
rangeDef
|
private java.util.List |
ranges
|
private boolean |
rightBounded
|
private static long |
serialVersionUID
|
private int |
size
|
private java.lang.String |
toRawString
|
private java.lang.String |
toString
|
private int |
type
|
static int |
TYPE_BOUNDED
|
static int |
TYPE_COUNTABLE
|
static int |
TYPE_NUMERIC
|
static int |
TYPE_SINGLE_BOUNDED
|
static int |
TYPE_STRING
|
static int |
TYPE_UNCOUNTABLE
|
static java.lang.String |
VALLIST
|
Constructor Summary | |
---|---|
private |
KRange()
private constructor ONLY to be used from inside this class to create a compound range term |
|
KRange(ASG rangeDef,
java.lang.String fname)
|
|
KRange(java.lang.String rangeDefStr)
|
|
KRange(java.lang.String rangeDefStr,
java.lang.String fname)
|
Method Summary | |
---|---|
private void |
add(KRange kr)
|
private void |
analyse()
|
KRange |
combineWith(java.lang.String kwd)
Create a new KRange object by combining this object with a keyword. |
private boolean |
equal(Cell ce,
double testVal)
|
private boolean |
equal(Cell ce,
java.lang.String testVal,
boolean cs)
|
private static boolean |
eval(double v,
AutoMedQueryToken token,
double c)
an eval function to compare between two numeric (long) values |
private static boolean |
eval(java.lang.String s1,
AutoMedQueryToken token,
java.lang.String s2,
boolean cs)
an eval function to compare two string values |
java.util.List |
getAsFunctions(java.lang.String var)
Return the IQL function that represents this k-range. |
java.util.List |
getAsFunctions(java.lang.String var,
java.lang.String hdmType)
A more generic method that generates IQL functions from a k-range. It also uses the HDM data type of the actual schema object to which the k-node of this k-range is mapped. |
java.lang.String |
getFunctionName()
Return the function name |
AutoMedQueryToken |
getFunctionToken()
Translate the function name into the corresponding query token |
java.lang.Object[][] |
getRangeAsArr()
Parse the range expression into an array of objects: - an object may either represent an ArrayList (for member of function) - or an array of 4 elements: lower sign, lower val, upper sign and upper val Whilst performing this, we also check whether this range is single-bounded or bounded |
java.lang.String |
getRangeAsString()
|
ASG |
getRangeDef()
|
int |
getType()
Return the type of this k-range |
boolean |
isArithmeticFunction()
|
static boolean |
isArithmeticFunction(java.lang.String fname)
Returns true if the function name is one of the arithmetic functions e.g. |
boolean |
isCompound()
returns true if this is a compound range |
boolean |
isCountable()
Does the range repreresent a countable set? |
boolean |
isEmpty()
|
boolean |
isEqualCheck()
|
static boolean |
isEqualCheck(java.lang.String fname)
Returns true if the function is an arithmetic function '=' or it is one of the other functions and its argument is a list of values |
boolean |
isEqualFunction()
|
boolean |
isFloat()
|
boolean |
isInFunction()
|
boolean |
isInteger()
|
boolean |
isLowerBoundFunction()
|
boolean |
isMemberOf(double testVal)
Check that a value is a member of the numeric range |
boolean |
isMemberOf(java.lang.String testVal,
boolean cs)
Check that a test value is a member of a string range |
boolean |
isNumeric()
|
boolean |
isString()
|
boolean |
isUpperBoundFunction()
|
boolean |
isValueList(java.lang.Object[] rangeObj)
Check if a range array object is a value list |
boolean |
isValueListFunction()
|
static boolean |
isValueListFunction(java.lang.String fname)
Returns true if k-range function takes a value list as its argument |
boolean |
isValueRange()
Returns true if this represents a value range expression, e.g. |
double |
match(KRange kr,
StringMatcher m)
Measure the matching degree with another k-range. |
private double |
matchLeftBoundedNumericRange(java.lang.Object[] r1,
java.lang.Object[] r2)
Match range r1 with range r2 knowing that both are at least left bounded and that the left bound of r2 is higher than the left bound of r1 |
private double |
matchNumericBoundedRange(java.lang.Object[] r1,
java.lang.Object[] r2)
|
private double |
matchNumericListWithRange(java.util.Collection vals,
java.lang.Object[] r1)
|
private double |
matchStringListWithRange(java.util.Collection vals,
java.lang.Object[] r1,
StringMatcher m)
Match list of strings with a string range |
void |
setCaseSensitive(boolean caseSensitive)
|
int |
size()
If the range is a countable set then we could count its number of elements using this method |
java.lang.String |
toString()
|
java.lang.String |
toStringFriendly()
Return the text-friendly version of a k-range |
java.lang.String |
toStringRaw()
Aggregate all ranges into one big range |
private void |
updateList(Cell ce,
java.util.List l)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final long serialVersionUID
private ASG rangeDef
private java.lang.String fname
private boolean caseSensitive
private transient boolean analysed
private transient int size
private transient java.lang.String toString
private transient java.lang.String toRawString
private transient java.util.List ranges
private transient int type
private transient java.lang.Object[][] rangeArr
private transient boolean leftBounded
private transient boolean rightBounded
public static final java.lang.String EMPTY_RANGE
public static final java.lang.String GREATERTHAN
public static final java.lang.String GREATERTHANEQUAL
public static final java.lang.String LESSTHAN
public static final java.lang.String LESSTHANEQUAL
public static final java.lang.String EQUAL
public static final java.lang.String VALLIST
public static final java.lang.String COMPOUND
public static final java.lang.String CONTAINSALL
public static final java.lang.String CONTAINSANY
public static final java.lang.String MEMBER
public static final java.lang.String IN
private static final java.lang.String NLINE
public static final double KRANGE_NOT_SPECIFIED
public static final double KRANGE_NOT_MATCH
public static final int TYPE_COUNTABLE
public static final int TYPE_UNCOUNTABLE
public static final int TYPE_NUMERIC
public static final int TYPE_STRING
public static final int TYPE_BOUNDED
public static final int TYPE_SINGLE_BOUNDED
public static final double alpha
Constructor Detail |
---|
public KRange(java.lang.String rangeDefStr, java.lang.String fname) throws ParseException
ParseException
public KRange(java.lang.String rangeDefStr) throws ParseException
ParseException
public KRange(ASG rangeDef, java.lang.String fname)
private KRange()
Method Detail |
---|
public ASG getRangeDef()
public void setCaseSensitive(boolean caseSensitive)
public java.util.List getAsFunctions(java.lang.String var)
public java.util.List getAsFunctions(java.lang.String var, java.lang.String hdmType)
var
- hdmType
-
public java.lang.String getFunctionName()
public AutoMedQueryToken getFunctionToken()
private void analyse()
public boolean isValueRange()
public boolean isInFunction()
public boolean isLowerBoundFunction()
public boolean isUpperBoundFunction()
public boolean isEqualFunction()
public boolean isEmpty()
public boolean isNumeric()
public boolean isInteger()
public boolean isFloat()
public boolean isString()
public boolean isCountable()
public int size()
public java.lang.String toStringRaw()
public java.lang.String toStringFriendly()
public java.lang.String toString()
toString
in class java.lang.Object
public boolean isMemberOf(double testVal)
private boolean equal(Cell ce, double testVal)
private boolean equal(Cell ce, java.lang.String testVal, boolean cs)
public boolean isMemberOf(java.lang.String testVal, boolean cs)
testVal
-
public java.lang.String getRangeAsString()
public java.lang.Object[][] getRangeAsArr()
private void updateList(Cell ce, java.util.List l)
public boolean isValueList(java.lang.Object[] rangeObj)
public static boolean isArithmeticFunction(java.lang.String fname)
public static boolean isValueListFunction(java.lang.String fname)
fname
-
public boolean isValueListFunction()
public static boolean isEqualCheck(java.lang.String fname)
fname
-
public boolean isArithmeticFunction()
public boolean isEqualCheck()
public int getType()
public double match(KRange kr, StringMatcher m)
private double matchStringListWithRange(java.util.Collection vals, java.lang.Object[] r1, StringMatcher m)
vals
- r1
-
private double matchNumericListWithRange(java.util.Collection vals, java.lang.Object[] r1)
private double matchNumericBoundedRange(java.lang.Object[] r1, java.lang.Object[] r2)
private double matchLeftBoundedNumericRange(java.lang.Object[] r1, java.lang.Object[] r2)
r1
- r2
-
private static boolean eval(java.lang.String s1, AutoMedQueryToken token, java.lang.String s2, boolean cs)
v
- token
- c
-
private static boolean eval(double v, AutoMedQueryToken token, double c)
v
- token
- c
-
public boolean isCompound()
public KRange combineWith(java.lang.String kwd)
kwd
-
private void add(KRange kr)
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |