本文整理汇总了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;未经允许,请勿转载。 |
请发表评论