code: public void addOperatorExpression(final INodeReadTrx mTransaction, final String mOperator) {
  
          assert getPipeStack().size() >= 1;
  
          final INodeReadTrx rtx = mTransaction;
  
          final AbsAxis mOperand2 = getPipeStack().pop().getExpr();
  
          // the unary operation only has one operator
          final AbsAxis mOperand1 = getPipeStack().pop().getExpr();
          if (getPipeStack().empty() || getExpression().getSize() != 0) {
              addExpressionSingle();
          }
  
          final AbsAxis axis;
  
          // TODO: use typeswitch of JAVA 7
          if (mOperator.equals("+")) {
              axis = new AddOpAxis(rtx, mOperand1, mOperand2);
          } else if (mOperator.equals("-")) {
  
              axis = new SubOpAxis(rtx, mOperand1, mOperand2);
          } else if (mOperator.equals("*")) {
              axis = new MulOpAxis(rtx, mOperand1, mOperand2);
          } else if (mOperator.equals("div")) {
              axis = new DivOpAxis(rtx, mOperand1, mOperand2);
          } else if (mOperator.equals("idiv")) {
              axis = new IDivOpAxis(rtx, mOperand1, mOperand2);
          } else if (mOperator.equals("mod")) {
              axis = new ModOpAxis(rtx, mOperand1, mOperand2);
          } else {
              // TODO: unary operator
              throw new IllegalStateException(mOperator + " is not a valid operator.");
  
          }
  
          getExpression().add(axis);
      }
docs: Adds an operator expression to the pipeline.
  
  @param mTransaction
  Transaction to operate with.
  @param mOperator
  Operator type.