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 the namespace of the module which is specified as argument of
- * YANG {@link Module <b><font color="#00FF00">namespace</font></b>}
- * keyword.
+ * Returns a {@link QNameModule}, which contains the namespace and
+ * the revision of the module.
*
- * @return URI format of the namespace of the module
+ * @return QNameModule identifier.
*/
- URI getNamespace();
+ QNameModule getQNameModule();
/**
* Returns the name of the module which is specified as argument of YANG
String getName();
/**
- * Returns the revision date for the module.
+ * 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
+ */
+ 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
*/
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;
+ }
}