public static Optional<ChoiceCaseNode> findInstantiatedCase(final ChoiceSchemaNode instantiatedChoice, final ChoiceCaseNode originalDefinition) { ChoiceCaseNode potential = instantiatedChoice.getCaseNodeByName(originalDefinition.getQName()); if(originalDefinition.equals(potential)) { return Optional.of(potential); } if (potential != null) { SchemaNode potentialRoot = SchemaNodeUtils.getRootOriginalIfPossible(potential); if (originalDefinition.equals(potentialRoot)) { return Optional.of(potential); } } // We try to find case by name, then lookup its root definition // and compare it with original definition // This solves case, if choice was inside grouping // which was used in different module and thus namespaces are // different, but local names are still same. // // Still we need to check equality of definition, because local name is not // sufficient to uniquelly determine equality of cases // potential = instantiatedChoice.getCaseNodeByName(originalDefinition.getQName().getLocalName()); if(potential != null && (originalDefinition.equals(SchemaNodeUtils.getRootOriginalIfPossible(potential)))) { return Optional.of(potential); } return Optional.absent(); }
public static Optional<CaseSchemaNode> findInstantiatedCase(final ChoiceSchemaNode instantiatedChoice, final CaseSchemaNode originalDefinition) { CaseSchemaNode potential = instantiatedChoice.getCaseNodeByName(originalDefinition.getQName()); if (originalDefinition.equals(potential)) { return Optional.of(potential); } if (potential != null) { SchemaNode potentialRoot = SchemaNodeUtils.getRootOriginalIfPossible(potential); if (originalDefinition.equals(potentialRoot)) { return Optional.of(potential); } } // We try to find case by name, then lookup its root definition // and compare it with original definition // This solves case, if choice was inside grouping // which was used in different module and thus namespaces are // different, but local names are still same. // // Still we need to check equality of definition, because local name is not // sufficient to uniquelly determine equality of cases // for (CaseSchemaNode caze : instantiatedChoice.findCaseNodes(originalDefinition.getQName().getLocalName())) { if (originalDefinition.equals(SchemaNodeUtils.getRootOriginalIfPossible(caze))) { return Optional.of(caze); } } return Optional.empty(); }
final CaseSchemaNode potential = instantiatedChoice.getCaseNodeByName(qname); if (originalDefinition.equals(potential)) { return Optional.of(potential);
final QName caseQName = arguments.next(); Preconditions.checkArgument(arguments.hasNext(), "Path must not refer case only."); currentNode = ((ChoiceSchemaNode) child).getCaseNodeByName(caseQName); } else {
child = ((ChoiceSchemaNode) current).getCaseNodeByName(qname); } else if (current instanceof RpcDefinition) { switch (qname.getLocalName()) {
final QName caseQName = arguments.next(); Preconditions.checkArgument(arguments.hasNext(), "Path must not refer case only."); currentNode = ((ChoiceSchemaNode) child).getCaseNodeByName(caseQName); } else {
foundNode = ((ChoiceSchemaNode) parent).getCaseNodeByName(current);
foundNode = ((ChoiceSchemaNode) parent).getCaseNodeByName(current);
result = ((DataNodeContainer) result).getDataChildByName(node.getLocalName()); } else if (result instanceof ChoiceSchemaNode) { result = ((ChoiceSchemaNode) result).getCaseNodeByName(node.getLocalName());
node = (ChoiceCaseNode) caseNode; } else { node = targetNode.getCaseNodeByName(caseNode.getQName().getLocalName());