Cleanup DocumentedNode
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / RpcAsContainer.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.data.util;
9
10 import com.google.common.collect.ImmutableSet;
11 import java.util.ArrayList;
12 import java.util.Collection;
13 import java.util.Collections;
14 import java.util.List;
15 import java.util.Optional;
16 import java.util.Set;
17 import javax.annotation.Nonnull;
18 import org.opendaylight.yangtools.yang.common.QName;
19 import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
20 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
21 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
22 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
23 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
24 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
25 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
26 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
27 import org.opendaylight.yangtools.yang.model.api.Status;
28 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
29 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
30 import org.opendaylight.yangtools.yang.model.api.UsesNode;
31
32 public final class RpcAsContainer implements ContainerSchemaNode {
33
34     private final RpcDefinition delegate;
35
36     @Override
37     public Optional<String> getDescription() {
38         return delegate.getDescription();
39     }
40
41     @Override
42     public Optional<String> getReference() {
43         return delegate.getReference();
44     }
45
46     @Override
47     public Set<TypeDefinition<?>> getTypeDefinitions() {
48         return delegate.getTypeDefinitions();
49     }
50
51     @Override
52     public Set<GroupingDefinition> getGroupings() {
53         return delegate.getGroupings();
54     }
55
56     @Nonnull
57     @Override
58     public Status getStatus() {
59         return delegate.getStatus();
60     }
61
62     public ContainerSchemaNode getInput() {
63         return delegate.getInput();
64     }
65
66     public ContainerSchemaNode getOutput() {
67         return delegate.getOutput();
68     }
69
70     public RpcAsContainer(final RpcDefinition parentNode) {
71         delegate = parentNode;
72     }
73
74     @Nonnull
75     @Override
76     public QName getQName() {
77         return delegate.getQName();
78     }
79
80     @Nonnull
81     @Override
82     public SchemaPath getPath() {
83         return delegate.getPath();
84     }
85
86     @Nonnull
87     @Override
88     public List<UnknownSchemaNode> getUnknownSchemaNodes() {
89         return Collections.emptyList();
90     }
91
92     @Override
93     public Optional<DataSchemaNode> findDataChildByName(final QName name) {
94         // FIXME: check QNameModule
95         switch (name.getLocalName()) {
96             case "input":
97                 return Optional.of(delegate.getInput());
98             case "output":
99                 return Optional.of(delegate.getOutput());
100             default:
101                 return Optional.empty();
102         }
103     }
104
105     @Override
106     public Set<UsesNode> getUses() {
107         return Collections.emptySet();
108     }
109
110     @Override
111     public Set<AugmentationSchemaNode> getAvailableAugmentations() {
112         return Collections.emptySet();
113     }
114
115     @Override
116     public boolean isPresenceContainer() {
117         return false;
118     }
119
120     @Override
121     public Collection<DataSchemaNode> getChildNodes() {
122         final List<DataSchemaNode> ret = new ArrayList<>();
123         final ContainerSchemaNode input = getInput();
124         final ContainerSchemaNode output = getOutput();
125         if (input != null) {
126             ret.add(input);
127         }
128         if (output != null) {
129             ret.add(output);
130         }
131         return ret;
132     }
133
134     @Override
135     public boolean isAugmenting() {
136         return false;
137     }
138
139     @Override
140     public boolean isAddedByUses() {
141         return false;
142     }
143
144     @Override
145     public boolean isConfiguration() {
146         return false;
147     }
148
149     @Override
150     public ConstraintDefinition getConstraints() {
151         // TODO Auto-generated method stub
152         return null;
153     }
154
155     @Override
156     public Set<ActionDefinition> getActions() {
157         return ImmutableSet.of();
158     }
159 }