/* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.yangtools.yang.model.api; import java.net.URI; import java.util.Date; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QNameModule; public interface ModuleIdentifier { /** * Returns a {@link QNameModule}, which contains the namespace and * the revision of the module. * * @return QNameModule identifier. */ QNameModule getQNameModule(); /** * Returns the name of the module which is specified as argument of YANG * {@link Module <b><font color="#FF0000">module</font></b>} keyword * * @return string with the name of the module */ String getName(); /** * Returns the namespace of the module which is specified as argument of * YANG {@link Module <b><font color="#00FF00">namespace</font></b>} * keyword. If you need both namespace and revision, please consider using * {@link #getQNameModule()}. * * @return URI format of the namespace of the module */ // FIXME: 2.0.0: should be a default method calling getQNameModule().getNamespace() URI getNamespace(); /** * Returns the revision date for the module. If you need both namespace and * revision, please consider using {@link #getQNameModule()}. * * @return date of the module revision which is specified as argument of * YANG {@link Module <b><font color="#339900">revison</font></b>} * keyword */ // FIXME: BUG-4688: should return Revision // FIXME: BUG-4688: should be a default method calling getQNameModule().getRevision().get() Date getRevision(); /** * Returns the semantic version of yang module. * * If the semantic version is not specified, default semantic version of * module is returned. * * @return SemVer semantic version of yang module which is specified as * argument of * (urn:opendaylight:yang:extension:semantic-version?revision * =2016-02-02)semantic-version statement */ default SemVer getSemanticVersion() { return Module.DEFAULT_SEMANTIC_VERSION; } }