2 * Copyright (c) 2015 Cisco Systems, Inc. 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.netconf.api.capability;
10 import java.util.Optional;
11 import org.opendaylight.yangtools.yang.common.Revision;
12 import org.opendaylight.yangtools.yang.model.api.ModuleLike;
15 * Yang model representing capability.
17 public final class YangModuleCapability extends BasicCapability {
19 private final String content;
20 private final String revision;
21 private final String moduleName;
22 private final String moduleNamespace;
24 public YangModuleCapability(final ModuleLike module, final String moduleContent) {
25 super(toCapabilityURI(module));
26 this.content = moduleContent;
27 this.moduleName = module.getName();
28 this.moduleNamespace = module.getNamespace().toString();
29 this.revision = module.getRevision().map(Revision::toString).orElse(null);
33 public Optional<String> getCapabilitySchema() {
34 return Optional.of(content);
37 private static String toCapabilityURI(final ModuleLike module) {
38 final StringBuilder sb = new StringBuilder();
39 sb.append(module.getNamespace()).append("?module=").append(module.getName());
41 final java.util.Optional<Revision> rev = module.getRevision();
42 if (rev.isPresent()) {
43 sb.append("&revision=").append(rev.get());
49 public Optional<String> getModuleName() {
50 return Optional.of(moduleName);
54 public Optional<String> getModuleNamespace() {
55 return Optional.of(moduleNamespace);
59 public Optional<String> getRevision() {
60 return Optional.ofNullable(revision);