Remove JSR305 annotations from yang-data-util
[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.List;
14 import java.util.Optional;
15 import java.util.Set;
16 import org.opendaylight.yangtools.yang.common.QName;
17 import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
18 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
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.MustDefinition;
23 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
24 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
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.UsesNode;
30
31 public final class RpcAsContainer implements ContainerSchemaNode {
32     private final RpcDefinition delegate;
33
34     @Override
35     public Optional<String> getDescription() {
36         return delegate.getDescription();
37     }
38
39     @Override
40     public Optional<String> getReference() {
41         return delegate.getReference();
42     }
43
44     @Override
45     public Set<TypeDefinition<?>> getTypeDefinitions() {
46         return delegate.getTypeDefinitions();
47     }
48
49     @Override
50     public Set<GroupingDefinition> getGroupings() {
51         return delegate.getGroupings();
52     }
53
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     @Override
72     public QName getQName() {
73         return delegate.getQName();
74     }
75
76     @Override
77     public SchemaPath getPath() {
78         return delegate.getPath();
79     }
80
81     @Override
82     public Optional<DataSchemaNode> findDataChildByName(final QName name) {
83         // FIXME: check QNameModule
84         switch (name.getLocalName()) {
85             case "input":
86                 return Optional.of(delegate.getInput());
87             case "output":
88                 return Optional.of(delegate.getOutput());
89             default:
90                 return Optional.empty();
91         }
92     }
93
94     @Override
95     public Set<UsesNode> getUses() {
96         return ImmutableSet.of();
97     }
98
99     @Override
100     public Set<AugmentationSchemaNode> getAvailableAugmentations() {
101         return ImmutableSet.of();
102     }
103
104     @Override
105     public boolean isPresenceContainer() {
106         return false;
107     }
108
109     @Override
110     public Collection<DataSchemaNode> getChildNodes() {
111         final List<DataSchemaNode> ret = new ArrayList<>();
112         final ContainerSchemaNode input = getInput();
113         final ContainerSchemaNode output = getOutput();
114         if (input != null) {
115             ret.add(input);
116         }
117         if (output != null) {
118             ret.add(output);
119         }
120         return ret;
121     }
122
123     @Deprecated
124     @Override
125     public boolean isAugmenting() {
126         return false;
127     }
128
129     @Deprecated
130     @Override
131     public boolean isAddedByUses() {
132         return false;
133     }
134
135     @Override
136     public boolean isConfiguration() {
137         return false;
138     }
139
140     @Override
141     public Set<ActionDefinition> getActions() {
142         return ImmutableSet.of();
143     }
144
145     @Override
146     public Set<NotificationDefinition> getNotifications() {
147         return ImmutableSet.of();
148     }
149
150     @Override
151     public Collection<MustDefinition> getMustConstraints() {
152         return ImmutableSet.of();
153     }
154
155     @Override
156     public Optional<RevisionAwareXPath> getWhenCondition() {
157         return Optional.empty();
158     }
159 }