2 * Copyright (c) 2016 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.binding2.spec;
11 import com.google.common.annotations.Beta;
12 import com.google.common.base.Optional;
13 import java.io.IOException;
14 import java.io.InputStream;
16 import org.opendaylight.yangtools.concepts.SemVer;
17 import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
20 * Provides basic information about YANG module
23 public interface YangModuleInfo {
26 * Returns yang module name
28 * @return YANG module name
33 * Returns revision of yang module.
35 * @return YANG module revision
40 * Returns semantic version of yang module
42 * @return YANG module semantic version
44 Optional<SemVer> getSemanticVersion();
47 * Returns XML namespace associated to the YANG module
49 * @return XML namespace associated to the YANG module.
51 String getNamespace();
54 * Returns set of imported modules
55 * @return set of YangModuleInfo instances
57 Set<YangModuleInfo> getImportedModules();
60 * Transforms YangModuleInfo instance to its source representation
61 * @return YangModuleInfo source representation
63 SchemaSourceRepresentation getModuleSourceRepresentation();