- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPredicate.java
More file actions
Latest commit
74 lines (64 loc) · 2.06 KB
/
Copy pathPredicate.java
File metadata and controls
74 lines (64 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
packagesimpledb;
/** Predicate compares tuples to a specified Field value.
*/
publicclassPredicate {
/** Constants used for return codes in Field.compare */
publicenumOp {
EQUALS, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQ, GREATER_THAN_OR_EQ, LIKE, NOT_EQUALS;
/**
* Interface to access operations by a string containing an integer
* index for command-line convenience.
*
* @param s a string containing a valid integer Op index
*/
publicstaticOpgetOp(Strings) {
returngetOp(Integer.parseInt(s));
}
/**
* Interface to access operations by integer value for command-line
* convenience.
*
* @param i a valid integer Op index
*/
publicstaticOpgetOp(inti) {
returnvalues()[i];
}
}
protectedintfield;
protectedOpop;
protectedFieldoperand;
/**
* Constructor.
*
* @param field field number of passed in tuples to compare against.
* @param op operation to use for comparison
* @param operand field value to compare passed in tuples to
*/
publicPredicate(intfield, Opop, Fieldoperand) {
this.field = field;
this.op = op;
this.operand = operand;
}
/**
* Compares the field number of t specified in the constructor to the
* operand field specified in the constructor using the operator specific
* in the constructor. The comparison can be made through Field's
* compare method.
*
* @param t The tuple to compare against
* @return true if the comparison is true, false otherwise.
*/
publicbooleanfilter(Tuplet) {
Fieldf = t.getField (field);
if (f != null)
returnf.compare(op, operand);
returnfalse;
}
/**
* Returns something useful, like
* "f = this.fieldid op = this.opstring operand = this.operandstring
*/
publicStringtoString() {
returnString.format("f = %i op = %s operand = %s", field, op, operand);
}
}