import org.opendaylight.mdsal.binding.javav2.spec.structural.TreeChildNode;
import org.opendaylight.mdsal.binding.javav2.util.BindingMapping;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
for (final DataSchemaNode child : ctx.getChildNodes()) {
if (child instanceof ChoiceSchemaNode) {
- final DataNodeContainer potential = findInCases(((ChoiceSchemaNode) child), targetQName);
+ final DataNodeContainer potential = findInCases((ChoiceSchemaNode) child, targetQName);
if (potential != null) {
return Optional.of(potential);
}
}
private static DataNodeContainer findInCases(final ChoiceSchemaNode choiceNode, final QName targetQName) {
- for (final ChoiceCaseNode caze : choiceNode.getCases()) {
+ for (final CaseSchemaNode caze : choiceNode.getCases().values()) {
final Optional<DataNodeContainer> potential = findDataNodeContainer(caze, targetQName);
if (potential.isPresent()) {
return potential.get();
final YangModuleInfo moduleInfo, final Class<? extends TreeNode> targetType) {
for (final OperationDefinition operation : operations) {
final String operationNamespace = operation.getQName().getNamespace().toString();
- final String operationRevision = operation.getQName().getFormattedRevision();
+ final String operationRevision = operation.getQName().getRevision().map(Revision::toString).orElse(null);
if (moduleInfo.getNamespace().equals(operationNamespace)
&& moduleInfo.getRevision().equals(operationRevision)) {
final Optional<DataNodeContainer> potential = findInputOutput(operation, targetType.getSimpleName());
* - choice case
* @return choice case node if exists, absent() otherwise
*/
- public static Optional<ChoiceCaseNode> findInstantiatedCase(final ChoiceSchemaNode instantiatedChoice, final ChoiceCaseNode originalDefinition) {
- ChoiceCaseNode potential = instantiatedChoice.getCaseNodeByName(originalDefinition.getQName());
- if(originalDefinition.equals(potential)) {
+ public static Optional<CaseSchemaNode> findInstantiatedCase(final ChoiceSchemaNode instantiatedChoice, final CaseSchemaNode originalDefinition) {
+ final QName qname = originalDefinition.getQName();
+ final CaseSchemaNode potential = instantiatedChoice.getCaseNodeByName(qname);
+ if (originalDefinition.equals(potential)) {
return Optional.of(potential);
}
if (potential != null) {
// 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);
+ // sufficient to uniquely determine equality of cases
+ for (CaseSchemaNode found : instantiatedChoice.findCaseNodes(qname.getLocalName())) {
+ if (originalDefinition.equals(SchemaNodeUtils.getRootOriginalIfPossible(found))) {
+ return Optional.of(found);
+ }
}
return Optional.absent();
}