org.objectweb.medor.expression.lib
Class IndexedLocate

java.lang.Object
  extended byorg.objectweb.medor.clone.lib.BasicCloneable
      extended byorg.objectweb.medor.expression.lib.BasicExpression
          extended byorg.objectweb.medor.expression.lib.BasicOperator
              extended byorg.objectweb.medor.expression.lib.IndexedLocate
All Implemented Interfaces:
org.objectweb.medor.clone.api.Cloneable, java.lang.Cloneable, Expression, Operator, java.io.Serializable

public class IndexedLocate
extends BasicOperator

Operator representing the search for a substring within a given input string, starting at a given index.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.objectweb.medor.expression.lib.BasicOperator
expressions, result, verified
 
Fields inherited from class org.objectweb.medor.expression.lib.BasicExpression
logger, type
 
Fields inherited from interface org.objectweb.medor.expression.api.Operator
ABS, AND, AVG, BITWIZE, CONCAT, CONDAND, CONDOR, COUNT, DIV, EQUAL, FIRSTLOCATE, GREATER, GREATEREQUAL, IN, INDEXEDLOCATE, LENGTH, LOWER, LOWEREQUAL, MAX, MEMBEROF, MIN, MINUS, MOD, MULT, NAV, NOT, NOTEQUAL, NOTMEMBEROF, OR, PLUS, SQRT, STRING_LOWER, STRING_UPPER, SUBSTRING, SUM, UMINUS
 
Constructor Summary
IndexedLocate()
           
IndexedLocate(Expression inputString, Expression substring, Expression fromIndex)
          Constructs an IndexedLocate operator, representing the search for a substring in an input string, starting at a given index.
 
Method Summary
 Operand compileExpression()
          Checks the semantic integrity of an expression.
 Operand evaluate(ParameterOperand[] pos, java.lang.Object o)
          It evaluates the expression tree and puts the result into the operand result.
 int evaluate(java.lang.String inputString, java.lang.String subString, int fromIndex)
           
 java.lang.String getOperatorString()
          Returns the String representing the operator in Java
 
Methods inherited from class org.objectweb.medor.expression.lib.BasicOperator
checkOperands, clone, compileOperands, getExpression, getOperandNumber, setExpression
 
Methods inherited from class org.objectweb.medor.expression.lib.BasicExpression
getType
 
Methods inherited from class org.objectweb.medor.clone.lib.BasicCloneable
clone, clone, getClone
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.medor.expression.api.Expression
getType
 

Constructor Detail

IndexedLocate

public IndexedLocate(Expression inputString,
                     Expression substring,
                     Expression fromIndex)
Constructs an IndexedLocate operator, representing the search for a substring in an input string, starting at a given index.

It is the equivalent of the Java indexOf String manipulation method.

If the substring argument occurs as a substring within the inputString at a starting index no smaller than fromIndex, then the index of the first character of the first such substring is returned. If it does not occur as a substring starting at fromIndex or beyond, -1 is returned.

Unlike in Java, the index starts with 1 and not 0.

Parameters:
inputString - the String in which to look.
substring - the substring to search for.
fromIndex - the index to start the search from.

IndexedLocate

public IndexedLocate()
Method Detail

evaluate

public Operand evaluate(ParameterOperand[] pos,
                        java.lang.Object o)
                 throws ExpressionException
Description copied from interface: Expression
It evaluates the expression tree and puts the result into the operand result.

Parameters:
pos - a list of ParameterOperand
o - the input Object from which values are taken for the evaluation
Returns:
an Operand containing the result of the evaluation
Throws:
ExpressionException

compileExpression

public Operand compileExpression()
                          throws ExpressionException,
                                 MalformedExpressionException
Description copied from interface: Expression
Checks the semantic integrity of an expression. It checks that all types are compatible and prepare the expression to be evaluable.It also creates buffers where stores the result. Notes that when evaluating there is no creation of new objects. This method change the state of this expression object, it will be evaluable and not modifiable.

Throws:
MalformedExpressionException - if syntax error
ExpressionException

evaluate

public int evaluate(java.lang.String inputString,
                    java.lang.String subString,
                    int fromIndex)

getOperatorString

public java.lang.String getOperatorString()
Description copied from interface: Operator
Returns the String representing the operator in Java

Returns:
the String representing the operator in Java