本文整理汇总了Java中org.javarosa.core.model.instance.FormInstance.getTemplatePath方法的典型用法代码示例。如果您正苦于以下问题:Java FormInstance.getTemplatePath方法的具体用法?Java FormInstance.getTemplatePath怎么用?Java FormInstance.getTemplatePath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.javarosa.core.model.instance.FormInstance
的用法示例。
在下文中一共展示了FormInstance.getTemplatePath方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: addChildrenOfReference
import org.javarosa.core.model.instance.FormInstance; //导入方法依赖的package包/类
/**
* This is a utility method to get all of the references of a node. It can
* be replaced when we support dependent XPath Steps (IE: /path/to//)
*/
public void addChildrenOfReference(FormInstance mainInstance,
EvaluationContext evalContext, TreeReference original,
Set<TreeReference> toAdd, boolean expandRepeatables) {
// original has already been added to the 'toAdd' list.
TreeElement repeatTemplate = expandRepeatables ? mainInstance
.getTemplatePath(original) : null;
if (repeatTemplate != null) {
for (int i = 0; i < repeatTemplate.getNumChildren(); ++i) {
TreeElement child = repeatTemplate.getChildAt(i);
toAdd.add(child.getRef().genericize());
addChildrenOfElement(mainInstance, evalContext, child, toAdd, expandRepeatables);
}
} else {
List<TreeReference> refSet = evalContext
.expandReference(original);
for (TreeReference ref : refSet) {
addChildrenOfElement(mainInstance, evalContext, evalContext.resolveReference(ref),
toAdd, expandRepeatables);
}
}
}
示例2: addChildrenOfReference
import org.javarosa.core.model.instance.FormInstance; //导入方法依赖的package包/类
/**
* This is a utility method to get all of the references of a node. It can
* be replaced when we support dependent XPath Steps (IE: /path/to//)
*/
private void addChildrenOfReference(FormInstance mainInstance,
EvaluationContext evalContext, TreeReference original,
Set<TreeReference> toAdd, boolean expandRepeatables) {
// original has already been added to the 'toAdd' list.
TreeElement repeatTemplate = expandRepeatables ? mainInstance
.getTemplatePath(original) : null;
if (repeatTemplate != null) {
for (int i = 0; i < repeatTemplate.getNumChildren(); ++i) {
TreeElement child = repeatTemplate.getChildAt(i);
toAdd.add(child.getRef().genericize());
addChildrenOfElement(mainInstance, evalContext, child, toAdd,
expandRepeatables);
}
} else {
List<TreeReference> refSet = evalContext.expandReference(original);
for (TreeReference ref : refSet) {
addChildrenOfElement(mainInstance, evalContext,
evalContext.resolveReference(ref), toAdd,
expandRepeatables);
}
}
}
示例3: getConditionExpressionForTrueAction
import org.javarosa.core.model.instance.FormInstance; //导入方法依赖的package包/类
/**
* Pull this in from FormOverview so that we can make fields private.
*
* @param instanceNode
* @param action
* @return
*/
public final IConditionExpr getConditionExpressionForTrueAction(
FormInstance mainInstance, TreeElement instanceNode, int action) {
IConditionExpr expr = null;
for (int i = 0; i < triggerablesDAG.size() && expr == null; i++) {
// Clayton Sims - Jun 1, 2009 : Not sure how legitimate this
// cast is. It might work now, but break later.
// Clayton Sims - Jun 24, 2009 : Yeah, that change broke things.
// For now, we won't bother to print out anything that isn't
// a condition.
QuickTriggerable qt = triggerablesDAG.get(i);
if (qt.t instanceof Condition) {
Condition c = (Condition) qt.t;
if (c.trueAction == action) {
List<TreeReference> targets = c.getTargets();
for (int j = 0; j < targets.size() && expr == null; j++) {
TreeReference target = targets.get(j);
TreeReference tr = (TreeReference) (new XPathReference(
target)).getReference();
TreeElement element = mainInstance.getTemplatePath(tr);
if (instanceNode == element) {
expr = c.getExpr();
}
}
}
}
}
return expr;
}
示例4: verifyItemsetSrcDstCompatibility
import org.javarosa.core.model.instance.FormInstance; //导入方法依赖的package包/类
private void verifyItemsetSrcDstCompatibility (FormInstance instance) {
for (int i = 0; i < itemsets.size(); i++) {
ItemsetBinding itemset = itemsets.get(i);
boolean destRepeatable = (instance.getTemplate(itemset.getDestRef()) != null);
if (itemset.copyMode) {
if (!destRepeatable) {
throw new XFormParseException("itemset copies to node(s) which are not repeatable");
}
//validate homogeneity between src and dst nodes
TreeElement srcNode = instance.getTemplatePath(itemset.copyRef);
TreeElement dstNode = instance.getTemplate(itemset.getDestRef());
if (!FormInstance.isHomogeneous(srcNode, dstNode)) {
reporter.warning(XFormParserReporter.TYPE_INVALID_STRUCTURE,
"Your itemset source [" + srcNode.getRef().toString() + "] and dest [" + dstNode.getRef().toString() +
"] of appear to be incompatible!", null);
}
//TODO: i feel like, in theory, i should additionally check that the repeatable children of src and dst
//match up (Achild is repeatable <--> Bchild is repeatable). isHomogeneous doesn't check this. but i'm
//hard-pressed to think of scenarios where this would actually cause problems
} else {
if (destRepeatable) {
throw new XFormParseException("itemset sets value on repeatable nodes");
}
}
}
}
示例5: getInstanceNode
import org.javarosa.core.model.instance.FormInstance; //导入方法依赖的package包/类
private static TreeElement getInstanceNode (FormInstance d, IDataReference ref) {
return d.getTemplatePath((TreeReference)ref.getReference());
}
示例6: verifyItemsetBindings
import org.javarosa.core.model.instance.FormInstance; //导入方法依赖的package包/类
private void verifyItemsetBindings (FormInstance instance) {
for (int i = 0; i < itemsets.size(); i++) {
ItemsetBinding itemset = itemsets.get(i);
//check proper parent/child relationship
if (!itemset.nodesetRef.isParentOf(itemset.labelRef, false)) {
throw new XFormParseException("itemset nodeset ref is not a parent of label ref");
} else if (itemset.copyRef != null && !itemset.nodesetRef.isParentOf(itemset.copyRef, false)) {
throw new XFormParseException("itemset nodeset ref is not a parent of copy ref");
} else if (itemset.valueRef != null && !itemset.nodesetRef.isParentOf(itemset.valueRef, false)) {
throw new XFormParseException("itemset nodeset ref is not a parent of value ref");
}
//make sure the labelref is tested against the right instance
//check if it's not the main instance
FormInstance fi = null;
if(itemset.labelRef.getInstanceName()!= null)
{
fi = _f.getNonMainInstance(itemset.labelRef.getInstanceName());
if(fi == null)
{
throw new XFormParseException("Instance: "+ itemset.labelRef.getInstanceName() + " Does not exists");
}
}
else
{
fi = instance;
}
if(fi.getTemplatePath(itemset.labelRef) == null)
{
throw new XFormParseException("<label> node for itemset doesn't exist! [" + itemset.labelRef + "]");
}
/**** NOT SURE WHAT A COPYREF DOES OR IS, SO I'M NOT CHECKING FOR IT
else if (itemset.copyRef != null && instance.getTemplatePath(itemset.copyRef) == null) {
throw new XFormParseException("<copy> node for itemset doesn't exist! [" + itemset.copyRef + "]");
}
****/
//check value nodes exist
else if (itemset.valueRef != null && fi.getTemplatePath(itemset.valueRef) == null) {
throw new XFormParseException("<value> node for itemset doesn't exist! [" + itemset.valueRef + "]");
}
}
}