Eliminate CallHomeSessionContext.nettyChannel
[netconf.git] / restconf / restconf-common / src / main / java / org / opendaylight / restconf / common / util / OperationsRestconfModule.java
1 /*
2  * Copyright (c) 2020 PANTHEON.tech, s.r.o. 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.restconf.common.util;
9
10 import static java.util.Objects.requireNonNull;
11
12 import java.net.URI;
13 import java.util.Collection;
14 import java.util.Collections;
15 import java.util.List;
16 import java.util.Optional;
17 import java.util.Set;
18 import org.opendaylight.yangtools.concepts.SemVer;
19 import org.opendaylight.yangtools.yang.common.QName;
20 import org.opendaylight.yangtools.yang.common.QNameModule;
21 import org.opendaylight.yangtools.yang.common.YangVersion;
22 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
23 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
24 import org.opendaylight.yangtools.yang.model.api.Deviation;
25 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
26 import org.opendaylight.yangtools.yang.model.api.FeatureDefinition;
27 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
28 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
29 import org.opendaylight.yangtools.yang.model.api.Module;
30 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
31 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
32 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
33 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
34 import org.opendaylight.yangtools.yang.model.api.UsesNode;
35
36 final class OperationsRestconfModule implements Module  {
37     // There is no need to intern this nor add a revision, as we are providing the corresponding context anyway
38     static final QNameModule NAMESPACE = QNameModule.create(URI.create("urn:ietf:params:xml:ns:yang:ietf-restconf"));
39
40     private final OperationsContainerSchemaNode operations;
41
42     OperationsRestconfModule(final OperationsContainerSchemaNode operations) {
43         this.operations = requireNonNull(operations);
44     }
45
46     @Override
47     public String getName() {
48         return "ietf-restconf";
49     }
50
51     @Override
52     public QNameModule getQNameModule() {
53         return NAMESPACE;
54     }
55
56     @Override
57     public Collection<DataSchemaNode> getChildNodes() {
58         return Collections.singleton(operations);
59     }
60
61     @Override
62     public Optional<DataSchemaNode> findDataChildByName(final QName name) {
63         return operations.getQName().equals(requireNonNull(name)) ? Optional.of(operations) : Optional.empty();
64     }
65
66     @Override
67     public String getPrefix() {
68         return "rc";
69     }
70
71     @Override
72     public YangVersion getYangVersion() {
73         return YangVersion.VERSION_1;
74     }
75
76     @Override
77     public Set<TypeDefinition<?>> getTypeDefinitions() {
78         return Collections.emptySet();
79     }
80
81     @Override
82     public Set<GroupingDefinition> getGroupings() {
83         return Collections.emptySet();
84     }
85
86     @Override
87     public Set<ModuleImport> getImports() {
88         // Yeah, not accurate, but this should not be needed
89         return Collections.emptySet();
90     }
91
92     @Override
93     public Set<UsesNode> getUses() {
94         return Collections.emptySet();
95     }
96
97     @Override
98     public Optional<String> getDescription() {
99         return Optional.empty();
100     }
101
102     @Override
103     public Optional<String> getReference() {
104         return Optional.empty();
105     }
106
107     @Override
108     public Set<NotificationDefinition> getNotifications() {
109         return Collections.emptySet();
110     }
111
112     @Override
113     public Optional<SemVer> getSemanticVersion() {
114         return Optional.empty();
115     }
116
117     @Override
118     public Optional<String> getOrganization() {
119         return Optional.empty();
120     }
121
122     @Override
123     public Optional<String> getContact() {
124         return Optional.empty();
125     }
126
127     @Override
128     public Set<Module> getSubmodules() {
129         return Collections.emptySet();
130     }
131
132     @Override
133     public Set<FeatureDefinition> getFeatures() {
134         return Collections.emptySet();
135     }
136
137     @Override
138     public Set<AugmentationSchemaNode> getAugmentations() {
139         return Collections.emptySet();
140     }
141
142     @Override
143     public Set<RpcDefinition> getRpcs() {
144         return Collections.emptySet();
145     }
146
147     @Override
148     public Set<Deviation> getDeviations() {
149         return Collections.emptySet();
150     }
151
152     @Override
153     public Set<IdentitySchemaNode> getIdentities() {
154         return Collections.emptySet();
155     }
156
157     @Override
158     public List<ExtensionDefinition> getExtensionSchemaNodes() {
159         return Collections.emptyList();
160     }
161 }