| package org.eclipse.wst.xml.xpath2.processor; |
| |
| import org.eclipse.wst.xml.xpath2.api.ResultSequence; |
| import org.eclipse.wst.xml.xpath2.api.StaticContext; |
| import org.eclipse.wst.xml.xpath2.api.XPath2Engine; |
| import org.eclipse.wst.xml.xpath2.api.XPath2Expression; |
| import org.eclipse.wst.xml.xpath2.processor.ast.XPath; |
| import org.eclipse.wst.xml.xpath2.processor.internal.function.FnBoolean; |
| |
| /** |
| * @since 2.0 |
| */ |
| public class Engine implements XPath2Engine { |
| |
| public XPath2Expression parseExpression(String expression, StaticContext context) { |
| |
| XPath xPath = new JFlexCupParser().parse(expression); |
| xPath.setStaticContext(context); |
| StaticNameResolver name_check = new StaticNameResolver(context); |
| name_check.check(xPath); |
| |
| xPath.setAxes(name_check.getAxes()); |
| xPath.setFreeVariables(name_check.getFreeVariables()); |
| xPath.setResolvedFunctions(name_check.getResolvedFunctions()); |
| xPath.setRootUsed(name_check.isRootUsed()); |
| |
| return xPath; |
| } |
| |
| boolean effectiveBooleanValue(ResultSequence rs) { |
| return FnBoolean.fn_boolean(rs).value(); |
| } |
| } |