当前位置: 首页>>代码示例>>Java>>正文


Java FormInstance.getTemplatePath方法代码示例

本文整理汇总了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);
		}
	}
}
 
开发者ID:medic,项目名称:javarosa,代码行数:27,代码来源:Fast2014DagImpl.java

示例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);
      }
   }
}
 
开发者ID:medic,项目名称:javarosa,代码行数:28,代码来源:Safe2014DagImpl.java

示例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;
}
 
开发者ID:medic,项目名称:javarosa,代码行数:38,代码来源:IDag.java

示例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");
			}
		}
	}
}
 
开发者ID:medic,项目名称:javarosa,代码行数:31,代码来源:XFormParser.java

示例5: getInstanceNode

import org.javarosa.core.model.instance.FormInstance; //导入方法依赖的package包/类
private static TreeElement getInstanceNode (FormInstance d, IDataReference ref) {
	return d.getTemplatePath((TreeReference)ref.getReference());
}
 
开发者ID:medic,项目名称:javarosa,代码行数:4,代码来源:FormOverview.java

示例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 + "]");
		}
	}
}
 
开发者ID:medic,项目名称:javarosa,代码行数:46,代码来源:XFormParser.java


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