Class RPNWrapper
- java.lang.Object
-
- com.caplin.jtm.wrappers.RPNWrapper
-
public class RPNWrapper extends Object
Provides a Java Transformer module access to the Reverse Polish Notation (RPN) C Transformer module. The RPN module is capable of evaluating a rule to calculate a value to use, or to verify whether a certain condition has been met.
A rule is made up of parameters and operators. The parameters can be predefined numbers, or they can be the values of fields from either an update or a cached TransformerData. For example, a Mid price can be calculated using the rule $BID $ASK + 2 /". Alternatively, a check to find out if the Last price for an update is less than the High price for the cached data can be expressed by the rule $TRDPRC_1 @HIGH_1 <.
A rule that evaluates a boolean expression will return
TRUE
if the expression evaluated to true, orFALSE
if it was false.The possible operators are:
+ Adds two parameters together (e.g. "8 4 +"; result = 12.0) - Subtracts second parameter from the first (e.g. "8 4 -"; result = 4.0) * Multiplies two parameters together (e.g. "8 4 *"; result = 32.0) / Divides first parameter by the second (e.g. "8 4 /"; result = 2.0) = Checks if two parameters are equal (e.g. "8 4 ="; result = RPNWrapper.FALSE) ! Checks two parameters are not equal (e.g. "8 4 !"; result = RPNWrapper.TRUE) { Checks if first parameter is less than or equal to the second (e.g. "8 4 {"; result = RPNWrapper.FALSE) } Checks if first parameter is greater than or equal to the second (e.g. "8 4 }"; result = RPNWrapper.TRUE) < Checks if first parameter is less than the second (e.g. "8 4 <"; result = RPNWrapper.FALSE) > Checks if first parameter is greater than the second (e.g. "8 4 >"; result = RPNWrapper.TRUE) & Logically ANDs the two parameters together (e.g. "15 0 &"; result = RPNWrapper.FALSE) | Logically ORs the two parameters together (e.g. "15 0 |"; result = RPNWrapper.TRUE) ~ Converts a single parameter to its absolute value (e.g. "-4 ~"; result = 4.0) $FIELDNAME The value for the specified field name from the current update (e.g. "$BID 100 <") @FIELDNAME The value for the specified field name from the cached update (e.g. "$LAST @HIGH >")
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static double
evaluateRule(String rule, com.caplin.jtm.internal.datasrc.TransformerData updateData, com.caplin.jtm.internal.datasrc.TransformerData cachedData)
Evalutes the specified rule and returns the result of the evaluation.
-
-
-
Field Detail
-
TRUE
public static final double TRUE
Value returned from evaluateRule for a boolean rule for which the result was true.
- See Also:
- Constant Field Values
-
FALSE
public static final double FALSE
Value returned from evaluateRule for a boolean rule for which the result was false.
- See Also:
- Constant Field Values
-
-
Method Detail
-
evaluateRule
public static double evaluateRule(String rule, com.caplin.jtm.internal.datasrc.TransformerData updateData, com.caplin.jtm.internal.datasrc.TransformerData cachedData)
Evalutes the specified rule and returns the result of the evaluation.
- Parameters:
rule
- The rule to be evaluated.updateData
- The TransformerData object containing the values for any field names defined in the rule that are prefixed with $.cachedData
- The TransformerData object containing the values for any field names defined in the rule that are prefixed with @.- Returns:
- The value evaluated for the rule. If this is a boolean
rule, then
RPNWrapper.TRUE
is returned if the expression was true, otherwiseRPNWrapper.FALSE
is returned.
-
-