Optimize Status statement declarations
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / RevisionAwareXPath.java
index 95d46ac8b20b577c0a1c17bc8522fdcbb7b52d79..46a1e9982302fcac1a9b7678ce733fb5810f52ae 100644 (file)
@@ -7,30 +7,40 @@
  */
 package org.opendaylight.yangtools.yang.model.api;
 
+import com.google.common.annotations.Beta;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
+
 /**
- * 
- * Contains methods for getting data (concrete XPath) and metadata (is XPath
- * absolute) from XPath instance.
- * 
- * 
+ * Contains methods for getting data (concrete XPath) and metadata (is XPath absolute) from XPath instance.
  */
+// FIXME: 5.0.0: find a better name for this interface
 public interface RevisionAwareXPath {
-
     /**
-     * Returns <code>true</code> if the XPapth starts in root of Yang model,
-     * otherwise returns <code>false</cdoe>.
-     * 
-     * @return <code>true</code> if the XPapth starts in root of Yang model,
-     *         otherwise returns <code>false</cdoe>
+     * Returns <code>true</code> if the XPapth starts in root of Yang model, otherwise returns <code>false</code>.
+     *
+     * @return <code>true</code> if the XPapth starts in root of Yang model, otherwise returns <code>false</code>
      */
-    public boolean isAbsolute();
+    boolean isAbsolute();
 
     /**
-     * Returns the XPath formatted string as is defined in model. <br>
-     * For example:
+     * Returns the XPath formatted string as is defined in model. For example:
      * /prefix:container/prefix:container::cond[when()=foo]/prefix:leaf
-     * 
+     *
      * @return the XPath formatted string as is defined in model.
      */
-    public String toString();
+    @NonNull String getOriginalString();
+
+    @Beta
+    // FIXME: 5.0.0: integrate this interface into RevisionAwareXPath
+    interface WithExpression extends RevisionAwareXPath {
+        /**
+         * Return the {@link YangXPathExpression} of this XPath. The expression is required to be at least
+         * Qualified-bound.
+         *
+         * @return The location path
+         */
+        @NonNull QualifiedBound getXPathExpression();
+    }
 }