Push out FIXMEs to 6.0.0
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / RevisionAwareXPath.java
index 62a349b99b5a2ed2b6d42bd09ce37fc7e11cfa2d..ed412d153fc574d442680435a80ce03ddcb082e1 100644 (file)
@@ -7,28 +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: 6.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</code>.
+     * 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>
+     * @return <code>true</code> if the XPapth starts in root of Yang model, otherwise returns <code>false</code>
      */
     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.
      */
-    @Override
-    String toString();
+    @NonNull String getOriginalString();
+
+    @Beta
+    // FIXME: 6.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();
+    }
 }