• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java XPathParseTool类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.javarosa.xpath.XPathParseTool的典型用法代码示例。如果您正苦于以下问题:Java XPathParseTool类的具体用法?Java XPathParseTool怎么用?Java XPathParseTool使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



XPathParseTool类属于org.javarosa.xpath包,在下文中一共展示了XPathParseTool类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getPathExpr

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public static XPathPathExpr getPathExpr (String nodeset) {
	XPathExpression path;
	boolean validNonPathExpr = false;

	try {
	path = XPathParseTool.parseXPath(nodeset);
	if (!(path instanceof XPathPathExpr)) {
		validNonPathExpr = true;
		throw new XPathSyntaxException();
	}

	} catch (XPathSyntaxException xse) {
		//make these checked exceptions?
		if (validNonPathExpr) {
			throw new XPathTypeMismatchException("Expected XPath path, got XPath expression: [" + nodeset + "]," + xse.getMessage());
		} else {
			xse.printStackTrace();
			throw new XPathException("Parse error in XPath path: [" + nodeset + "]." + (xse.getMessage() == null ? "" : "\n" + xse.getMessage()));
		}
	}

	return (XPathPathExpr)path;
}
 
开发者ID:medic,项目名称:javarosa,代码行数:24,代码来源:XPathReference.java


示例2: testXPathValid

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
private void testXPathValid (String expr, String expected) {
	//debug
	//System.out.println("+[ " + expr + " ]");
	
	try {
		XPathExpression xpe = XPathParseTool.parseXPath(expr);
		String result = (xpe != null ? xpe.toString() : null);
		
		//debug
		//System.out.println("[ " + result + " ]");
		
		if (result == null || !result.equals(expected)) {
			fail("XPath Parse Failed! Incorrect parse tree." +
						"\n    expression:[" + expr + "]" +
						"\n    expected:[" + expected + "]" +
						"\n    result:[" + result + "]");
		}
		
		//test serialization of parse tree
		ExternalizableTest.testExternalizable(new ExtWrapTagged(xpe), new ExtWrapTagged(), pf, this, "XPath");
	} catch (XPathSyntaxException xse) {
		fail("XPath Parse Failed! Unexpected syntax error." + 
					"\n    expression:[" + expr + "]");
	}
}
 
开发者ID:medic,项目名称:javarosa,代码行数:26,代码来源:XPathParseTest.java


示例3: getPathExpr

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public static XPathPathExpr getPathExpr(String nodeset) {
    XPathExpression path;
    boolean validNonPathExpr = false;

    try {
        path = XPathParseTool.parseXPath(nodeset);
        if (!(path instanceof XPathPathExpr)) {
            validNonPathExpr = true;
            throw new XPathSyntaxException();
        }

    } catch (XPathSyntaxException xse) {
        //make these checked exceptions?
        if (validNonPathExpr) {
            throw new XPathTypeMismatchException("Expected XPath path, got XPath expression: [" + nodeset + "]," + xse.getMessage());
        } else {
            xse.printStackTrace();
            throw new XPathException("Parse error in XPath path: [" + nodeset + "]." + (xse.getMessage() == null ? "" : "\n" + xse.getMessage()));
        }
    }

    return (XPathPathExpr)path;
}
 
开发者ID:dimagi,项目名称:commcare-j2me,代码行数:24,代码来源:XPathReference.java


示例4: testXPathValid

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
private static void testXPathValid(String expr, String expected) {
    try {
        XPathExpression xpe = XPathParseTool.parseXPath(expr);
        String result = (xpe != null ? xpe.toString() : null);

        if (result == null || !result.equals(expected)) {
            fail("XPath Parse Failed! Incorrect parse tree." +
                    "\n    expression:[" + expr + "]" +
                    "\n    expected:[" + expected + "]" +
                    "\n    result:[" + result + "]");
        }

        //test serialization of parse tree
        ExternalizableTest.testExternalizable(new ExtWrapTagged(xpe), new ExtWrapTagged(), pf, "XPath");
    } catch (XPathSyntaxException xse) {
        fail("XPath Parse Failed! Unexpected syntax error." +
                "\n    expression:[" + expr + "]");
    }
}
 
开发者ID:dimagi,项目名称:commcare-j2me,代码行数:20,代码来源:XPathParseTest.java


示例5: getVariableDeclarations

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public OrderedHashtable<String, XPathExpression> getVariableDeclarations() {
    if (variablesCompiled == null) {
        variablesCompiled = new OrderedHashtable<String, XPathExpression>();
        for (Enumeration en = variables.keys(); en.hasMoreElements(); ) {
            String key = (String)en.nextElement();
            //TODO: This is stupid, parse this stuff at XML Parse time.
            try {
                variablesCompiled.put(key, XPathParseTool.parseXPath(variables.get(key)));
            } catch (XPathSyntaxException e) {
                e.printStackTrace();
                throw new RuntimeException(e.getMessage());
            }
        }
    }
    return variablesCompiled;
}
 
开发者ID:dimagi,项目名称:commcare-j2me,代码行数:17,代码来源:Detail.java


示例6: evaluate

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
@Override
public CalloutData evaluate(EvaluationContext context) {
    Hashtable<String, String> evaluatedExtras = new Hashtable<String, String>();

    Enumeration keys = extras.keys();

    while (keys.hasMoreElements()) {
        String key = (String)keys.nextElement();
        try {
            String evaluatedKey = XPathFuncExpr.toString(XPathParseTool.parseXPath(extras.get(key)).eval(context));
            evaluatedExtras.put(key, evaluatedKey);
        } catch (XPathSyntaxException e) {
            // do nothing
        }
    }

    // emit a CalloutData with the extras evaluated. used for the detail screen.
    return new CalloutData(actionName, image, displayName, evaluatedExtras, responses, type);
}
 
开发者ID:dimagi,项目名称:commcare-j2me,代码行数:20,代码来源:Callout.java


示例7: getAssertionFailure

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public Text getAssertionFailure(EvaluationContext ec) {
    try {
        for (int i = 0; i < xpathExpressions.size(); ++i) {
            XPathExpression expression = XPathParseTool.parseXPath(xpathExpressions.elementAt(i));
            try {
                Object val = expression.eval(ec);
                if (!XPathFuncExpr.toBoolean(val).booleanValue()) {
                    return messages.elementAt(i);
                }
            } catch (Exception e) {
                return messages.elementAt(i);
            }
        }
        return null;
    } catch (XPathSyntaxException xpe) {
        throw new XPathException("Assertion somehow failed to parse after validating : " + xpe.getMessage());
    }
}
 
开发者ID:dimagi,项目名称:commcare-j2me,代码行数:19,代码来源:AssertionSet.java


示例8: defineStep

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
/**
 * Get a performed step to pass on to an actual frame
 *
 * @param ec Context to evaluate any parameters with
 * @return A step that can be added to a session frame
 */
public StackFrameStep defineStep(EvaluationContext ec) {
    String finalValue;
    if (!valueIsXpath) {
        finalValue = value;
    } else {
        try {
            finalValue = XPathFuncExpr.toString(XPathParseTool.parseXPath(value).eval(ec));
        } catch (XPathSyntaxException e) {
            //This error makes no sense, since we parse the input for
            //validation when we create it!
            throw new XPathException(e.getMessage());
        }
    }

    //figure out how to structure the step
    if (elementType.equals(SessionFrame.STATE_DATUM_VAL)) {
        return new StackFrameStep(SessionFrame.STATE_DATUM_VAL, id, finalValue);
    } else if (elementType.equals(SessionFrame.STATE_COMMAND_ID)) {
        return new StackFrameStep(SessionFrame.STATE_COMMAND_ID, finalValue, null);
    } else if (elementType.equals(SessionFrame.STATE_FORM_XMLNS)) {
        throw new RuntimeException("Form Definitions in Steps are not yet supported!");
    } else {
        throw new RuntimeException("Invalid step [" + elementType + "] declared when constructing a new frame step");
    }
}
 
开发者ID:dimagi,项目名称:commcare-j2me,代码行数:32,代码来源:StackFrameStep.java


示例9: setComputedDatum

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public void setComputedDatum(EvaluationContext ec) throws XPathException {
    SessionDatum datum = getNeededDatum();
    XPathExpression form;
    try {
        form = XPathParseTool.parseXPath(datum.getValue());
    } catch (XPathSyntaxException e) {
        e.printStackTrace();
        throw new RuntimeException(e.getMessage());
    }
    if (datum instanceof FormIdDatum) {
        setXmlns(XPathFuncExpr.toString(form.eval(ec)));
        setDatum("", "awful");
    } else if (datum instanceof ComputedDatum) {
        setDatum(datum.getDataId(), XPathFuncExpr.toString(form.eval(ec)));
    }
}
 
开发者ID:dimagi,项目名称:commcare-j2me,代码行数:17,代码来源:CommCareSession.java


示例10: getVariableDeclarations

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public OrderedHashtable<String, XPathExpression> getVariableDeclarations() {
    if (variablesCompiled == null) {
        variablesCompiled = new OrderedHashtable<>();
        for (Enumeration en = variables.keys(); en.hasMoreElements(); ) {
            String key = (String)en.nextElement();
            //TODO: This is stupid, parse this stuff at XML Parse time.
            try {
                variablesCompiled.put(key, XPathParseTool.parseXPath(variables.get(key)));
            } catch (XPathSyntaxException e) {
                e.printStackTrace();
                throw new RuntimeException(e.getMessage());
            }
        }
    }
    return variablesCompiled;
}
 
开发者ID:dimagi,项目名称:commcare-core,代码行数:17,代码来源:Detail.java


示例11: evaluate

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
@Override
public CalloutData evaluate(EvaluationContext context) {
    Hashtable<String, String> evaluatedExtras = new Hashtable<>();
    Enumeration keys = extras.keys();
    while (keys.hasMoreElements()) {
        String key = (String)keys.nextElement();
        boolean overridePlainTextAssumption = key.startsWith(OVERRIDE_PLAIN_TEXT_ASSUMPTION_PREFIX);
        key = key.replace(OVERRIDE_PLAIN_TEXT_ASSUMPTION_PREFIX, "");
        String rawValue = extras.get(key);

        if (assumePlainTextValues && !overridePlainTextAssumption) {
            evaluatedExtras.put(key, rawValue);
        } else {
            try {
                String evaluatedValue =
                        FunctionUtils.toString(XPathParseTool.parseXPath(rawValue).eval(context));
                evaluatedExtras.put(key, evaluatedValue);
            } catch (XPathSyntaxException e) {
                // do nothing
            }
        }
    }

    // emit a CalloutData with the extras evaluated. used for the detail screen.
    return new CalloutData(actionName, image, displayName, evaluatedExtras, responses, type);
}
 
开发者ID:dimagi,项目名称:commcare-core,代码行数:27,代码来源:Callout.java


示例12: getAssertionFailure

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public Text getAssertionFailure(EvaluationContext ec) {
    try {
        for (int i = 0; i < xpathExpressions.size(); ++i) {
            XPathExpression expression = XPathParseTool.parseXPath(xpathExpressions.elementAt(i));
            try {
                Object val = expression.eval(ec);
                if (!FunctionUtils.toBoolean(val)) {
                    return messages.elementAt(i);
                }
            } catch (Exception e) {
                return messages.elementAt(i);
            }
        }
        return null;
    } catch (XPathSyntaxException xpe) {
        throw new XPathException("Assertion somehow failed to parse after validating : " + xpe.getMessage());
    }
}
 
开发者ID:dimagi,项目名称:commcare-core,代码行数:19,代码来源:AssertionSet.java


示例13: setComputedDatum

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public void setComputedDatum(EvaluationContext ec) throws XPathException {
    SessionDatum datum = getNeededDatum();
    XPathExpression form;
    try {
        form = XPathParseTool.parseXPath(datum.getValue());
    } catch (XPathSyntaxException e) {
        e.printStackTrace();
        throw new RuntimeException(e.getMessage());
    }
    if (datum instanceof FormIdDatum) {
        setXmlns(FunctionUtils.toString(form.eval(ec)));
        setDatum("", "awful");
    } else if (datum instanceof ComputedDatum) {
        setDatum(datum.getDataId(), FunctionUtils.toString(form.eval(ec)));
    }
}
 
开发者ID:dimagi,项目名称:commcare-core,代码行数:17,代码来源:CommCareSession.java


示例14: testInstanceAccumulatingAnalyzer

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
@Test
public void testInstanceAccumulatingAnalyzer() throws XPathSyntaxException {
    testInstanceAnalysis(NO_INSTANCES_EXPR,
            new String[]{});
    testInstanceAnalysis(ONE_INSTANCE_EXPR,
            new String[]{"casedb"});
    testInstanceAnalysis(DUPLICATED_INSTANCE_EXPR,
            new String[]{"commcaresession"});
    testInstanceAnalysis(EXPR_WITH_INSTANCE_IN_PREDICATE,
            new String[]{"casedb", "commcaresession"});
    testInstanceAnalysis(RIDICULOUS_RELEVANCY_CONDITION_FROM_REAL_APP,
            new String[]{"casedb", "commcaresession", "schedule:m5:p2:f2"});

    // Test the length of the result with list accumulation, just to ensure it gets them all
    List<String> parsedInstancesList =
            (new InstanceNameAccumulatingAnalyzer()).accumulateAsList(
                    XPathParseTool.parseXPath(RIDICULOUS_RELEVANCY_CONDITION_FROM_REAL_APP));
    Assert.assertEquals(27, parsedInstancesList.size());
}
 
开发者ID:dimagi,项目名称:commcare-core,代码行数:20,代码来源:StaticAnalysisTest.java


示例15: testInstanceAnalysis

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
private void testInstanceAnalysis(String expressionString, String[] expectedInstances,
                                  String baseContextString)
        throws XPathSyntaxException {

    InstanceNameAccumulatingAnalyzer analyzer;

    if (baseContextString != null) {
        TreeReference baseContextRef =
                ((XPathPathExpr)XPathParseTool.parseXPath(baseContextString)).getReference();
        analyzer = new InstanceNameAccumulatingAnalyzer(baseContextRef);
    } else {
        analyzer = new InstanceNameAccumulatingAnalyzer();
    }

    Set<String> expectedInstancesSet = null;
    if (expectedInstances != null) {
        expectedInstancesSet = new HashSet<>();
        for (String s : expectedInstances) {
            expectedInstancesSet.add(s);
        }
    }

    Set<String> parsedInstancesSet =
            analyzer.accumulate(XPathParseTool.parseXPath(expressionString));
    Assert.assertEquals(expectedInstancesSet, parsedInstancesSet);
}
 
开发者ID:dimagi,项目名称:commcare-core,代码行数:27,代码来源:StaticAnalysisTest.java


示例16: testXPathValid

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
private static void testXPathValid(String expr, String expected) {
    try {
        XPathExpression xpe = XPathParseTool.parseXPath(expr);
        String result = (xpe != null ? xpe.toString() : null);

        if (result == null || !result.equals(expected)) {
            fail("XPath Parse Failed! Incorrect parse tree." +
                    "\n    expression:[" + expr + "]" +
                    "\n    expected:[" + expected + "]" +
                    "\n    result:  [" + result + "]");
        }

        //test serialization of parse tree
        ExternalizableTest.testExternalizable(new ExtWrapTagged(xpe), new ExtWrapTagged(), new LivePrototypeFactory(), "XPath");
    } catch (XPathSyntaxException xse) {
        fail("XPath Parse Failed! Unexpected syntax error." +
                "\n    expression:[" + expr + "]");
    }
}
 
开发者ID:dimagi,项目名称:commcare-core,代码行数:20,代码来源:XPathParseTest.java


示例17: getSearchXPathExpression

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public static XPathFuncExpr getSearchXPathExpression(String appearance) {
    if (appearance == null) {
        appearance = "";
    }
    appearance = appearance.trim();

    Matcher matcher = SEARCH_FUNCTION_REGEX.matcher(appearance);
    if (matcher.find()) {
        String function = matcher.group(0);
        try {
            XPathExpression xPathExpression = XPathParseTool.parseXPath(function);
            if (XPathFuncExpr.class.isAssignableFrom(xPathExpression.getClass())) {
                XPathFuncExpr xPathFuncExpr = (XPathFuncExpr) xPathExpression;
                if (xPathFuncExpr.id.name.equalsIgnoreCase(ExternalDataHandlerSearch.HANDLER_NAME)) {
                    // also check that the args are either 1, 4 or 6.
                    if (xPathFuncExpr.args.length == 1 || xPathFuncExpr.args.length == 4 || xPathFuncExpr.args.length == 6) {
                        return xPathFuncExpr;
                    } else {
                        throw new InvalidSyntaxException(Collect.getInstance().getString(R.string.ext_search_wrong_arguments_error));
                    }
                } else {
                    // this might mean a problem in the regex above. Unit tests required.
                    throw new InvalidSyntaxException(Collect.getInstance().getString(R.string.ext_search_wrong_function_error, xPathFuncExpr.id.name));
                }
            } else {
                // this might mean a problem in the regex above. Unit tests required.
                throw new InvalidSyntaxException(Collect.getInstance().getString(R.string.ext_search_bad_function_error, function));
            }
        } catch (XPathSyntaxException e) {
            throw new InvalidSyntaxException(Collect.getInstance().getString(R.string.ext_search_generic_error, appearance), e);
        }
    } else {
        return null;
    }
}
 
开发者ID:Last-Mile-Health,项目名称:ODK-Liberia,代码行数:36,代码来源:ExternalDataUtil.java


示例18: registerModule

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
public void registerModule() {
	String[] classes = {
			"org.javarosa.model.xform.XPathReference",
			"org.javarosa.xpath.XPathConditional"
	};
	
	PrototypeManager.registerPrototypes(classes);
	PrototypeManager.registerPrototypes(XPathParseTool.xpathClasses);
	RestoreUtils.xfFact = new IXFormyFactory () {
		public TreeReference ref (String refStr) {
			return FormInstance.unpackReference(new XPathReference(refStr));
		}
		
		public IDataPayload serializeInstance (FormInstance dm) {
			try {
				return (new XFormSerializingVisitor()).createSerializedPayload(dm);
			} catch (IOException e) {
				return null;
			}
		}

		public FormInstance parseRestore(byte[] data, Class restorableType) {
			return XFormParser.restoreDataModel(data, restorableType);
		}
		
		public IAnswerData parseData (String textVal, int dataType, TreeReference ref, FormDef f) {
			return XFormAnswerDataParser.getAnswerData(textVal, dataType, XFormParser.ghettoGetQuestionDef(dataType, f, ref));
		}

		public String serializeData(IAnswerData data) {
			return (String)(new XFormAnswerDataSerializer().serializeAnswerData(data));
		}

		public IConditionExpr refToPathExpr(TreeReference ref) {
			return new XPathConditional(XPathPathExpr.fromRef(ref));
		}
	};
}
 
开发者ID:medic,项目名称:javarosa,代码行数:39,代码来源:XFormsModule.java


示例19: attemptConstraintCompile

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
private void attemptConstraintCompile() {
	xPathConstraintMsg = null;
	try {
		if(constraintMsg != null) {
			xPathConstraintMsg = XPathParseTool.parseXPath("string(" + constraintMsg + ")");
		}
	} catch(Exception e) {
		//Expected in probably most cases.
	}
}
 
开发者ID:medic,项目名称:javarosa,代码行数:11,代码来源:Constraint.java


示例20: testXPathInvalid

import org.javarosa.xpath.XPathParseTool; //导入依赖的package包/类
private void testXPathInvalid (String expr) {
	//debug
	//System.out.println("+[ " + expr + " ]");
	
	try {
		XPathExpression xpe = XPathParseTool.parseXPath(expr);
		String result = (xpe != null ? xpe.toString() : null);
		
		fail("XPath Parse Failed! Did not get syntax error as expected." + 
					"\n    expression:[" + expr + "]" +
					"\n    result:[" + (result == null ? "(null)" : result) + "]");
	} catch (XPathSyntaxException xse) {
		//success: syntax error as expected
	}
}
 
开发者ID:medic,项目名称:javarosa,代码行数:16,代码来源:XPathParseTest.java



注:本文中的org.javarosa.xpath.XPathParseTool类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Field类代码示例发布时间:2022-05-22
下一篇:
Java FLVWriter类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap