Refactor EffectiveStmtCtx.Parent.schemaPath()
[yangtools.git] / yang / yang-parser-spi / src / main / java / org / opendaylight / yangtools / yang / parser / spi / meta / SchemaPathSupport.java
index a3e2956548b10f0af6c91d840e586efe2f7af1c4..edad0024ddaa264c7493cbd785fef9f81a9f9a5e 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 import static com.google.common.base.Verify.verifyNotNull;
 
 import com.google.common.annotations.Beta;
+import java.util.Objects;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.concepts.Immutable;
@@ -30,6 +31,11 @@ public abstract class SchemaPathSupport implements Immutable {
         SchemaPath optionalPath(final SchemaPath path) {
             return path;
         }
+
+        @Override
+        boolean equalPaths(final SchemaPath first, final SchemaPath second) {
+            return Objects.equals(first, second);
+        }
     }
 
     private static final SchemaPathSupport DEFAULT = new Enabled();
@@ -46,6 +52,10 @@ public abstract class SchemaPathSupport implements Immutable {
         return DEFAULT.optionalPath(path);
     }
 
+    public static boolean effectivelyEqual(@Nullable final SchemaPath first, @Nullable final SchemaPath second) {
+        return DEFAULT.equalPaths(first, second);
+    }
+
     public static @NonNull QName extractQName(final @NonNull Object path) {
         return path instanceof QName ? (QName) path : verifyNotNull(((SchemaPath) path).getLastComponent());
     }
@@ -54,6 +64,8 @@ public abstract class SchemaPathSupport implements Immutable {
         return path instanceof SchemaPath ? (SchemaPath) path : SchemaNodeDefaults.throwUnsupported(impl);
     }
 
+    abstract boolean equalPaths(@Nullable SchemaPath first, @Nullable SchemaPath second);
+
     abstract @NonNull Object effectivePath(@NonNull SchemaPath path);
 
     abstract @Nullable SchemaPath optionalPath(@Nullable SchemaPath path);