| /******************************************************************************* |
| * Copyright (c) 2006 Oracle Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Oracle Corporation - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.bpel.xpath10; |
| |
| /** |
| * |
| * A binary expression. Something with left and right side and an operator in the middle. |
| * |
| * @author Michal Chmielewski (michal.chmielewski@oracle.com) |
| * @date Aug 26, 2008 |
| * |
| */ |
| @SuppressWarnings("nls") |
| |
| public class BinaryExpr extends Expr { |
| |
| String fOperator; |
| Expr fLHS; |
| Expr fRHS; |
| |
| /** |
| * Brand new shiny binary expression. |
| * |
| * @param op |
| * @param lhs |
| * @param rhs |
| */ |
| public BinaryExpr (String op, Expr lhs, Expr rhs) { |
| super(""); |
| fOperator = op; |
| fLHS = lhs; |
| fRHS = rhs; |
| } |
| |
| /** |
| * @return the operator of the binary expression. |
| */ |
| |
| public String getOperator() { |
| return fOperator; |
| } |
| /** |
| * |
| * @return the left hand side of the expression. |
| */ |
| |
| public Expr getLHS() { |
| return fLHS; |
| } |
| |
| /** |
| * |
| * @return the right hand side of the expression. |
| */ |
| |
| public Expr getRHS() { |
| return fRHS; |
| } |
| |
| |
| @Override |
| protected String asText() { |
| StringBuilder sb = new StringBuilder(); |
| if (isWrapParen()) { |
| sb.append("("); |
| } |
| sb.append( fLHS != null ? fLHS.getText() : "?" ); |
| sb.append(" "); |
| sb.append(getOperator()); |
| sb.append(" "); |
| sb.append( fRHS != null ? fRHS.getText() : "?" ); |
| if (isWrapParen()) { |
| sb.append(")"); |
| } |
| return sb.toString(); |
| } |
| |
| |
| @Override |
| protected String asString () { |
| StringBuilder sb = new StringBuilder(); |
| if (isWrapParen()) { |
| sb.append("("); |
| } |
| sb.append(getLHS()).append(" ").append(getOperator()).append(" ").append(getRHS()); |
| if (isWrapParen()) { |
| sb.append(")"); |
| } |
| return sb.toString(); |
| } |
| |
| |
| /** |
| * @see org.eclipse.bpel.xpath10.Expr#getPosition() |
| */ |
| @Override |
| public int getPosition () { |
| return getLHS().getPosition(); |
| } |
| |
| /** |
| * @see org.eclipse.bpel.xpath10.Expr#getEndPosition() |
| */ |
| |
| @Override |
| public int getEndPosition () { |
| return getRHS().getEndPosition(); |
| } |
| |
| } |