/******************************************************************************* * 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 path expression. * * @author Michal Chmielewski (michal.chmielewski@oracle.com) * @date Aug 26, 2008 * */ @SuppressWarnings("nls") public class PathExpr extends Expr { Expr fFilterExpr; LocationPath fLocationPath; /** * Brand new shiny PathExpr ... * * @param filter * @param locationPath */ public PathExpr ( Expr filter, LocationPath locationPath) { super(null); fFilterExpr = filter; fLocationPath = locationPath; } /** * @return return the filter expression. */ public Expr getFilterExpr() { return fFilterExpr; } /** * @return the location path. */ public LocationPath getLocationPath() { return fLocationPath; } @Override protected String asText() { StringBuilder buf = new StringBuilder(); if (getFilterExpr() != null) { buf.append(getFilterExpr().getText()); } if (getLocationPath() != null) { if (!getLocationPath().getSteps().isEmpty()) buf.append("/"); buf.append(getLocationPath().getText()); } return buf.toString(); } /** * @see org.eclipse.bpel.xpath10.Expr#toString() */ @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append("{"); buf.append(getClass().getSimpleName()); buf.append(","); if (getFilterExpr() != null) { buf.append(getFilterExpr() ); } if (getLocationPath() != null) { if (!getLocationPath().getSteps().isEmpty()) buf.append("/"); buf.append(getLocationPath() ); } buf.append("}"); return buf.toString(); } /** * @see org.eclipse.bpel.xpath10.Expr#getPosition() */ @Override public int getPosition () { return fFilterExpr.getPosition(); } /** * @see org.eclipse.bpel.xpath10.Expr#getEndPosition() */ @Override public int getEndPosition () { if (fLocationPath != null) { return fLocationPath.getEndPosition(); } return fFilterExpr.getEndPosition(); } }