/** * Returns the concrete cases according to specified name, disregarding their namespace. * * @param localname * local name of sought child as String * @return child case nodes matching specified local name, empty list if no match is found. * @throws NullPointerException if localname is null */ @Beta default List<CaseSchemaNode> findCaseNodes(final String localname) { return getCases().values().stream().filter(node -> localname.equals(node.getQName().getLocalName())) .collect(ImmutableList.toImmutableList()); }
/** * Returns the concrete cases according to specified name, disregarding their namespace. * * @param localname * local name of sought child as String * @return child case nodes matching specified local name, empty list if no match is found. * @throws NullPointerException if localname is null */ @Beta default List<CaseSchemaNode> findCaseNodes(final String localname) { return getCases().values().stream().filter(node -> localname.equals(node.getQName().getLocalName())) .collect(ImmutableList.toImmutableList()); }
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 QName qname = originalDefinition.getQName(); final CaseSchemaNode potential = instantiatedChoice.getCaseNodeByName(qname); if (originalDefinition.equals(potential)) {
final CaseSchemaNode choiceCaseNode = (CaseSchemaNode) effectiveStatement; casesInit.put(choiceCaseNode.getQName(), choiceCaseNode); final CaseSchemaNode shorthandCase = new ImplicitCaseSchemaNode(dataSchemaNode); casesInit.put(shorthandCase.getQName(), shorthandCase); if (dataSchemaNode.isAugmenting() && !isAugmenting()) { resetAugmenting(dataSchemaNode);
private void emitCaseNode(final CaseSchemaNode caze) { if (!super.emitInstantiated && caze.isAugmenting()) { return; } super.writer.startCaseNode(caze.getQName()); caze.getWhenCondition().ifPresent(this::emitWhen); // FIXME: BUG-2444: *(ifFeatureNode ) emitDocumentedNode(caze); emitDataNodeContainer(caze); emitUnknownStatementNodes(caze.getUnknownSchemaNodes()); super.writer.endNode(); }