2 * Copyright (c) 2020 PANTHEON.tech, s.r.o. 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.restconf.common.util;
10 import static java.util.Objects.requireNonNull;
13 import java.util.Collection;
14 import java.util.Collections;
15 import java.util.List;
16 import java.util.Optional;
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;
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"));
40 private final OperationsContainerSchemaNode operations;
42 OperationsRestconfModule(final OperationsContainerSchemaNode operations) {
43 this.operations = requireNonNull(operations);
47 public String getName() {
48 return "ietf-restconf";
52 public QNameModule getQNameModule() {
57 public Collection<DataSchemaNode> getChildNodes() {
58 return Collections.singleton(operations);
62 public Optional<DataSchemaNode> findDataChildByName(final QName name) {
63 return operations.getQName().equals(requireNonNull(name)) ? Optional.of(operations) : Optional.empty();
67 public String getPrefix() {
72 public YangVersion getYangVersion() {
73 return YangVersion.VERSION_1;
77 public Set<TypeDefinition<?>> getTypeDefinitions() {
78 return Collections.emptySet();
82 public Set<GroupingDefinition> getGroupings() {
83 return Collections.emptySet();
87 public Set<ModuleImport> getImports() {
88 // Yeah, not accurate, but this should not be needed
89 return Collections.emptySet();
93 public Set<UsesNode> getUses() {
94 return Collections.emptySet();
98 public Optional<String> getDescription() {
99 return Optional.empty();
103 public Optional<String> getReference() {
104 return Optional.empty();
108 public Set<NotificationDefinition> getNotifications() {
109 return Collections.emptySet();
113 public Optional<SemVer> getSemanticVersion() {
114 return Optional.empty();
118 public Optional<String> getOrganization() {
119 return Optional.empty();
123 public Optional<String> getContact() {
124 return Optional.empty();
128 public Set<Module> getSubmodules() {
129 return Collections.emptySet();
133 public Set<FeatureDefinition> getFeatures() {
134 return Collections.emptySet();
138 public Set<AugmentationSchemaNode> getAugmentations() {
139 return Collections.emptySet();
143 public Set<RpcDefinition> getRpcs() {
144 return Collections.emptySet();
148 public Set<Deviation> getDeviations() {
149 return Collections.emptySet();
153 public Set<IdentitySchemaNode> getIdentities() {
154 return Collections.emptySet();
158 public List<ExtensionDefinition> getExtensionSchemaNodes() {
159 return Collections.emptyList();