2 * Copyright (c) 2017 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
9 package org.opendaylight.mdsal.binding.javav2.spec.runtime;
11 import com.google.common.annotations.Beta;
12 import com.google.common.base.Optional;
13 import java.io.InputStream;
15 import org.opendaylight.yangtools.concepts.SemVer;
16 import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
19 * Provides basic information about YANG module
22 public interface YangModuleInfo {
25 * Returns yang module name
27 * @return YANG module name
32 * Returns revision of yang module.
34 * @return YANG module revision
39 * Returns semantic version of yang module
41 * @return YANG module semantic version
43 Optional<SemVer> getSemanticVersion();
46 * Returns XML namespace associated to the YANG module
48 * @return XML namespace associated to the YANG module.
50 String getNamespace();
53 * Returns set of imported modules
54 * @return set of YangModuleInfo instances
56 Set<YangModuleInfo> getImportedModules();
59 * Transforms YangModuleInfo instance to its source representation
60 * @return YangModuleInfo source representation
62 SchemaSourceRepresentation getModuleSourceRepresentation();
65 * Get stream of module source
67 * @return input stream of module source
69 InputStream getModuleSourceStream();