/** * getOperation method * @return int * * Returns one of : * ALONE (a), SEQUENCE (a,b), CHOICE (a|b), ALL (a&b). */ public int getOperator() { return fGroup.getOperator(); }
public void visitCMGroup(CMGroup group) { if (includeSequenceGroups) { if (group.getOperator() == CMGroup.SEQUENCE && group.getChildNodes().getLength() > 1 && includesRequiredContent(group)) { childNodeTable.put(group, group); } } super.visitCMGroup(group); }
public void visitCMGroup(CMGroup group) { int op = group.getOperator(); if (op == CMGroup.ALL) { sb.append("all"); //$NON-NLS-1$ } sb.append("("); //$NON-NLS-1$ String separator = ", "; //$NON-NLS-1$ if (op == CMGroup.CHOICE) { separator = " | "; //$NON-NLS-1$ } CMNodeList nodeList = group.getChildNodes(); int size = nodeList.getLength(); for (int i = 0; i < size; i++) { visitCMNode(nodeList.item(i)); if (i < size - 1) { sb.append(separator); } } sb.append(")"); //$NON-NLS-1$ addOccurenceSymbol(group); }
public void visitMatchModelNode(CMValidator.MatchModelNode matchModelNode) { int startIndex = indexOfNextElement(elementIndex); //String cmNodeName = matchModelNode.cmNode != null ? matchModelNode.cmNode.getNodeName() : "null"; //printIndented(indent, "+MatchModelNode : " + cmNodeName + " " + startIndex); indent += 2; for (Iterator iterator = matchModelNode.children.iterator(); iterator.hasNext(); ) { CMValidator.MatchModelNode child = (CMValidator.MatchModelNode)iterator.next(); visitMatchModelNode(child); } indent -= 2; if (matchModelNode.cmNode != null) { int nodeType = matchModelNode.cmNode.getNodeType(); if (nodeType == CMNode.GROUP) { CMGroup group = (CMGroup)matchModelNode.cmNode; if (group.getOperator() == CMGroup.CHOICE) { addReplaceActions(matchModelNode, group, startIndex, elementIndex - 1); } } else if (nodeType == CMNode.ELEMENT_DECLARATION) { elementIndex = startIndex + 1; } //printIndented(indent, "-MatchModelNode : " + cmNodeName + " " + (elementIndex - 1)); } }
public void visitCMGroup(CMGroup e) { int forcedMin = (buildPolicy == BUILD_ALL_CONTENT || alwaysVisit) ? 1 : 0; int min = Math.max(e.getMinOccur(), forcedMin); alwaysVisit = false; for (int i = 1; i <= min; i++) { if (e.getOperator() == CMGroup.CHOICE) { // add only 1 element from the group // todo... perhaps add something other than the first one CMNodeList nodeList = e.getChildNodes(); if (nodeList.getLength() > 0) { visitCMNode(nodeList.item(0)); } } else // SEQUENCE, ALL { // visit all of the content super.visitCMGroup(e); } } }
if (e.getOperator() == CMGroup.CHOICE && buildFirstChoice(buildPolicy)) { CMNode hintNode = null; else if (e.getOperator() == CMGroup.ALL // ALL || e.getOperator() == CMGroup.SEQUENCE) // SEQUENCE
if (group.getOperator() == CMGroup.ALL)
public void visitCMGroup(CMGroup group) { if (group == root || group.getMinOccur() > 0) { int op = group.getOperator(); if (op == CMGroup.SEQUENCE) { super.visitCMGroup(group); } else if (op == CMGroup.CHOICE) { CMNodeList nodeList = group.getChildNodes(); if (nodeList.getLength() > 0) { visitCMNode(nodeList.item(0)); } } } } }
protected boolean isSimpleChoiceGroupContentModel(CMElementDeclaration ed) { boolean result = false; CMNode cmNode = ed.getContent(); if (cmNode != null && cmNode.getNodeType() == CMNode.GROUP) { CMGroup cmGroup = (CMGroup)cmNode; if (cmGroup.getOperator() == CMGroup.CHOICE && cmGroup.getMaxOccur() == -1) { result = true; CMNodeList list = cmGroup.getChildNodes(); for (int i = list.getLength() - 1; i >= 0; i--) { if (list.item(i).getNodeType() != CMNode.ELEMENT_DECLARATION) { result = false; break; } } } } return result; }
public void visitCMGroup(CMGroup group) { Context prevContext = context; GraphNode in = new GraphNode("(" + getGraphNodeName()); //$NON-NLS-1$ GraphNode out = new GraphNode(")" + getGraphNodeName()); //$NON-NLS-1$ int groupOperator = group.getOperator(); if (groupOperator == CMGroup.SEQUENCE) { context = new Context(in, null); super.visitCMGroup(group); context.from.addArc(new Arc(Arc.LINK, out, group)); } else if (groupOperator == CMGroup.CHOICE || groupOperator == CMGroup.ALL) { context = new Context(in, out); super.visitCMGroup(group); } context = prevContext; createArcs(in, out, group, groupOperator == CMGroup.ALL); }