2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective;
10 import com.google.common.collect.Iterables;
11 import java.util.Collections;
12 import java.util.Arrays;
13 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
14 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
15 import org.opendaylight.yangtools.yang.model.api.Status;
16 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
17 import org.opendaylight.yangtools.yang.model.api.UsesNode;
18 import java.util.Collection;
19 import java.util.List;
21 import org.opendaylight.yangtools.yang.common.QName;
22 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
23 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
24 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
25 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
26 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
28 public class CaseShorthandImpl implements ChoiceCaseNode {
30 private final DataSchemaNode caseShorthandNode;
31 private final QName qName;
32 private final SchemaPath path;
34 public CaseShorthandImpl(DataSchemaNode caseShorthandNode) {
35 this.caseShorthandNode = caseShorthandNode;
36 this.qName = caseShorthandNode.getQName();
38 SchemaPath caseShorthandNodePath = caseShorthandNode.getPath();
39 Iterable<QName> pathFromRoot = caseShorthandNodePath.getPathFromRoot();
40 this.path = SchemaPath
41 .create(Iterables.limit(pathFromRoot,
42 Iterables.size(pathFromRoot) - 1),
43 caseShorthandNodePath.isAbsolute());
47 public boolean isAugmenting() {
48 return caseShorthandNode.isAugmenting();
52 public boolean isAddedByUses() {
53 return caseShorthandNode.isAddedByUses();
57 public boolean isConfiguration() {
58 return caseShorthandNode.isConfiguration();
62 public ConstraintDefinition getConstraints() {
63 return caseShorthandNode.getConstraints();
67 public QName getQName() {
68 return caseShorthandNode.getQName();
72 public SchemaPath getPath() {
77 public List<UnknownSchemaNode> getUnknownSchemaNodes() {
78 return caseShorthandNode.getUnknownSchemaNodes();
82 public String getDescription() {
83 return caseShorthandNode.getDescription();
87 public String getReference() {
88 return caseShorthandNode.getReference();
92 public Status getStatus() {
93 return caseShorthandNode.getStatus();
97 public Set<TypeDefinition<?>> getTypeDefinitions() {
98 return Collections.emptySet();
102 public Collection<DataSchemaNode> getChildNodes() {
103 return Arrays.asList(caseShorthandNode);
107 public Set<GroupingDefinition> getGroupings() {
108 return Collections.emptySet();
112 public DataSchemaNode getDataChildByName(QName name) {
113 if (qName.equals(name)) {
114 return caseShorthandNode;
121 public DataSchemaNode getDataChildByName(String name) {
122 if (qName.getLocalName().equals(name)) {
123 return caseShorthandNode;
130 public Set<UsesNode> getUses() {
131 return Collections.emptySet();
135 public Set<AugmentationSchema> getAvailableAugmentations() {
136 return Collections.emptySet();