*/
@Override
@Deprecated
- public Optional<SchemaPath> schemaPath() {
+ public SchemaPath schemaPath() {
return substatementGetSchemaPath();
}
// Exists only to support {SubstatementContext,InferredStatementContext}.schemaPath()
@Deprecated
- final @NonNull Optional<SchemaPath> substatementGetSchemaPath() {
+ final @Nullable SchemaPath substatementGetSchemaPath() {
SchemaPath local = schemaPath;
if (local == null) {
synchronized (this) {
}
}
- return Optional.ofNullable(local);
+ return local;
}
@Deprecated
private SchemaPath createSchemaPath(final StatementContextBase<?, ?, ?> parent) {
- final Optional<SchemaPath> maybeParentPath = parent.schemaPath();
- verify(maybeParentPath.isPresent(), "Parent %s does not have a SchemaPath", parent);
- final SchemaPath parentPath = maybeParentPath.get();
-
+ final SchemaPath parentPath = parent.getSchemaPath();
if (StmtContextUtils.isUnknownStatement(this)) {
return parentPath.createChild(publicDefinition().getStatementName());
}
if (argument instanceof QName) {
final QName qname = (QName) argument;
if (producesDeclared(UsesStatement.class)) {
- return maybeParentPath.orElse(null);
+ return parentPath;
}
return parentPath.createChild(qname);
return parentPath.createChild(((SchemaNodeIdentifier) argument).getNodeIdentifiers());
}
- // FIXME: this does not look right
- return maybeParentPath.orElse(null);
+ // FIXME: this does not look right, investigate more?
+ return parentPath;
}
private @NonNull QName interpretAsQName(final String argument) {
*/
@Override
@Deprecated
- public Optional<SchemaPath> schemaPath() {
+ public SchemaPath schemaPath() {
return substatementGetSchemaPath();
}
import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
@Override
@Deprecated
- public Optional<SchemaPath> schemaPath() {
- return Optional.of(SchemaPath.ROOT);
+ public SchemaPath schemaPath() {
+ return SchemaPath.ROOT;
}
@Override
import static java.util.Objects.requireNonNull;
-import java.util.Optional;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
*/
@Override
@Deprecated
- public Optional<SchemaPath> schemaPath() {
+ public SchemaPath schemaPath() {
return substatementGetSchemaPath();
}
SchemaPath maybePath;
try {
- maybePath = stmt.getEffectiveParent().schemaPath()
- .map(parentPath -> parentPath.createChild(maybeQNameArgument)).orElse(null);
+ final SchemaPath parentPath = stmt.getEffectiveParent().schemaPath();
+ maybePath = parentPath == null ? null : parentPath.createChild(maybeQNameArgument);
} catch (IllegalArgumentException | SourceException e) {
LOG.debug("Cannot construct path for {}, attempting to recover", stmt, e);
maybePath = null;
import com.google.common.annotations.Beta;
import com.google.common.base.VerifyException;
-import java.util.Objects;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
*/
// FIXME: 7.0.0: this needs to be a tri-state present/absent/disabled
@Deprecated
- @NonNull Optional<SchemaPath> schemaPath();
+ @Nullable SchemaPath schemaPath();
@Deprecated
default @NonNull SchemaPath getSchemaPath() {
- return schemaPath().orElseThrow();
+ return verifyNotNull(schemaPath(), "Missing path for %s", this);
}
}
final Parent ours = effectiveParent();
final Parent theirs = other.effectiveParent();
return ours == theirs
- || ours != null && theirs != null && Objects.equals(ours.schemaPath(), theirs.schemaPath());
+ || ours != null && theirs != null && SchemaPathSupport.effectivelyEqual(ours.schemaPath(),
+ theirs.schemaPath());
}
}
}
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;
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();
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());
}
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);