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