A number of FIXMEs will not be addressed in 6.0.0, push them out
to 7.0.0.
Change-Id: I6cd2b9b661cd60ae3c3a81b8d341d7ca46092bf7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
27 files changed:
* @author Robert Varga
*/
@Beta
* @author Robert Varga
*/
@Beta
-// FIXME: 6.0.0: consider moving this class to api to keep related stuff together
+// FIXME: 7.0.0: consider moving this class to api to keep related stuff together
public final class NormalizedMetadataWriter implements Closeable, Flushable {
private final NormalizedNodeStreamWriter writer;
private final boolean orderKeyLeaves;
public final class NormalizedMetadataWriter implements Closeable, Flushable {
private final NormalizedNodeStreamWriter writer;
private final boolean orderKeyLeaves;
* Abstract base class for dynamic resolvers.
*/
@Beta
* Abstract base class for dynamic resolvers.
*/
@Beta
-// FIXME: 6.0.0: consider integrating into AbstractMountPointContextFactory
+// FIXME: 7.0.0: consider integrating into AbstractMountPointContextFactory
public abstract class AbstractDynamicMountPointContextFactory extends AbstractIdentifiable<MountPointIdentifier>
implements MountPointContextFactory {
private static final Logger LOG = LoggerFactory.getLogger(AbstractDynamicMountPointContextFactory.class);
public abstract class AbstractDynamicMountPointContextFactory extends AbstractIdentifiable<MountPointIdentifier>
implements MountPointContextFactory {
private static final Logger LOG = LoggerFactory.getLogger(AbstractDynamicMountPointContextFactory.class);
*
* @see <a href="http://tools.ietf.org/html/rfc6020#section-9.13">RFC6020</a>
*/
*
* @see <a href="http://tools.ietf.org/html/rfc6020#section-9.13">RFC6020</a>
*/
-// FIXME: 6.0.0: this concept needs to be moved to yang-common, as parser components need the ability to refer
+// FIXME: 7.0.0: this concept needs to be moved to yang-common, as parser components need the ability to refer
// to data nodes -- most notably XPath expressions and {@code default} statement arguments need to be able
// to represent these.
public abstract class YangInstanceIdentifier implements Path<YangInstanceIdentifier>, Immutable, Serializable {
// to data nodes -- most notably XPath expressions and {@code default} statement arguments need to be able
// to represent these.
public abstract class YangInstanceIdentifier implements Path<YangInstanceIdentifier>, Immutable, Serializable {
*
* @return Number of child nodes in this container.
*/
*
* @return Number of child nodes in this container.
*/
- // FIXME: 6.0.0: consider making this method non-default
+ // FIXME: 7.0.0: consider making this method non-default, but then it will conflict in OrderedLeafSet
default int size() {
return getValue().size();
}
default int size() {
return getValue().size();
}
* implementation does not allow resetting the value.
* @throws IOException if an underlying IO error occurs
*/
* implementation does not allow resetting the value.
* @throws IOException if an underlying IO error occurs
*/
- // FIXME: 6.0.0: this probably should integrated with scalarValue()
+ // FIXME: 7.0.0: this probably should integrated with scalarValue()
void domSourceValue(DOMSource value) throws IOException;
/**
void domSourceValue(DOMSource value) throws IOException;
/**
* <a href="https://tools.ietf.org/html/rfc6020#section-7.19.1">RFC7950</a> data combinations based on {@code config}
* statement.
*/
* <a href="https://tools.ietf.org/html/rfc6020#section-7.19.1">RFC7950</a> data combinations based on {@code config}
* statement.
*/
-// FIXME: 6.0.0: Consider defining a 'config false'-only type
-// FIXME: 6.0.0: Consider renaming this enum
+// FIXME: 7.0.0: Consider defining a 'config false'-only type
+// FIXME: 7.0.0: Consider renaming this enum
@Beta
public enum TreeType {
/**
@Beta
public enum TreeType {
/**
// Returns a one-off factory for the purposes of normalizing an anydata tree.
//
// Returns a one-off factory for the purposes of normalizing an anydata tree.
//
- // FIXME: 6.0.0: this is really ugly, as we should be able to tell if the new context is the same as ours and
+ // FIXME: 7.0.0: this is really ugly, as we should be able to tell if the new context is the same as ours and
// whether our cache is thread-safe -- in which case we should just return this.
// The supplier/cache/factory layout needs to be reworked so that this call ends up being equivalent
// to JSONCodecFactorySupplier.getShared() in case this factory is not thread safe.
// whether our cache is thread-safe -- in which case we should just return this.
// The supplier/cache/factory layout needs to be reworked so that this call ends up being equivalent
// to JSONCodecFactorySupplier.getShared() in case this factory is not thread safe.
switch (in.nextTag()) {
case XMLStreamConstants.START_ELEMENT:
switch (in.nextTag()) {
case XMLStreamConstants.START_ELEMENT:
- // FIXME: 6.0.0: why do we even need this tracker? either document it or remove it.
+ // FIXME: 7.0.0: why do we even need this tracker? either document it or remove it.
// it looks like it is a crude duplicate finder, which should really be handled via
// ChildReusePolicy.REJECT
final Set<Entry<String, String>> namesakes = new HashSet<>();
// it looks like it is a crude duplicate finder, which should really be handled via
// ChildReusePolicy.REJECT
final Set<Entry<String, String>> namesakes = new HashSet<>();
import com.google.common.annotations.Beta;
import org.opendaylight.yangtools.concepts.AbstractIllegalArgumentCodec;
import com.google.common.annotations.Beta;
import org.opendaylight.yangtools.concepts.AbstractIllegalArgumentCodec;
-// FIXME: 6.0.0: yang-data-api is tied to yang-model-api, hence it should be opinionated to export exceptions
+// FIXME: 7.0.0: yang-data-api is tied to yang-model-api, hence it should be opinionated to export exceptions
// encapsulating YANG-based error information.
@Beta
public abstract class AbstractDataStringCodec<T> extends AbstractIllegalArgumentCodec<String, T>
// encapsulating YANG-based error information.
@Beta
public abstract class AbstractDataStringCodec<T> extends AbstractIllegalArgumentCodec<String, T>
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.IllegalArgumentCodec;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.IllegalArgumentCodec;
-// FIXME: 6.0.0: yang-data-api is tied to yang-model-api, hence it should be opinionated to export exceptions
+// FIXME: 7.0.0: yang-data-api is tied to yang-model-api, hence it should be opinionated to export exceptions
// encapsulating YANG-based error information.
public interface DataStringCodec<T> extends IllegalArgumentCodec<String, T> {
// encapsulating YANG-based error information.
public interface DataStringCodec<T> extends IllegalArgumentCodec<String, T> {
- // FIXME: 6.0.0: this should be impossible to hit
+ // FIXME: 7.0.0: this should be impossible to hit
@Override
CaseNodeDataWithSchema addCompositeChild(final DataSchemaNode schema, final ChildReusePolicy policy) {
verify(schema instanceof CaseSchemaNode, "Unexpected schema %s", schema);
@Override
CaseNodeDataWithSchema addCompositeChild(final DataSchemaNode schema, final ChildReusePolicy policy) {
verify(schema instanceof CaseSchemaNode, "Unexpected schema %s", schema);
- // FIXME: 6.0.0: use policy once we have removed addChild() visibility
+ // FIXME: 7.0.0: use policy to determine if we should reuse or replace the child
if (augSchema != null) {
augmentationsToChild.put(augSchema, newChild);
if (augSchema != null) {
augmentationsToChild.put(augSchema, newChild);
*
* @author Robert Varga
*/
*
* @author Robert Varga
*/
-// FIXME: 6.0.0: @NonNullByDefault
public final class DataSchemaContextTree {
private static final LoadingCache<EffectiveModelContext, DataSchemaContextTree> TREES = CacheBuilder.newBuilder()
.weakKeys().weakValues().build(new CacheLoader<EffectiveModelContext, DataSchemaContextTree>() {
public final class DataSchemaContextTree {
private static final LoadingCache<EffectiveModelContext, DataSchemaContextTree> TREES = CacheBuilder.newBuilder()
.weakKeys().weakValues().build(new CacheLoader<EffectiveModelContext, DataSchemaContextTree>() {
return getRoot().findChild(path);
}
return getRoot().findChild(path);
}
- public DataSchemaContextNode<?> getRoot() {
+ public @NonNull DataSchemaContextNode<?> getRoot() {
* @author Robert Varga
*/
@Beta
* @author Robert Varga
*/
@Beta
-// FIXME: 6.0.0: evaluate if we still need to extend SchemaContext here
+// FIXME: 7.0.0: evaluate if we still need to extend SchemaContext here
public interface EffectiveModelContext extends SchemaContext {
Map<QNameModule, ModuleEffectiveStatement> getModuleStatements();
public interface EffectiveModelContext extends SchemaContext {
Map<QNameModule, ModuleEffectiveStatement> getModuleStatements();
* Interface describing YANG 'import' statement. The import statement makes definitions from one module available inside
* another module or submodule.
*/
* Interface describing YANG 'import' statement. The import statement makes definitions from one module available inside
* another module or submodule.
*/
-// FIXME: 6.0.0: this class is a leak of the declared world into the effective one. In effective world, all nodes form
+// FIXME: 7.0.0: this class is a leak of the declared world into the effective one. In effective world, all nodes form
// a tree, which consists of multiple (mostly) QName-navigated namespaces. As such module imports
// contribute only a prefix/QNameModule mapping to the effective world and hence should be mapped that
// way:
// a tree, which consists of multiple (mostly) QName-navigated namespaces. As such module imports
// contribute only a prefix/QNameModule mapping to the effective world and hence should be mapped that
// way:
@Beta
public interface LengthEffectiveStatement extends EffectiveStatement<List<ValueRange>, LengthStatement>,
@Beta
public interface LengthEffectiveStatement extends EffectiveStatement<List<ValueRange>, LengthStatement>,
- // FIXME: 6.0.0: reconsider this interface extension
- // FIXME: 6.0.0: if we are keeping it, consider a default implementation (shared with others effective
+ // FIXME: 7.0.0: reconsider this interface extension
+ // FIXME: 7.0.0: if we are keeping it, consider a default implementation (shared with others effective
// statements)
ConstraintMetaDefinition {
@Override
// statements)
ConstraintMetaDefinition {
@Override
@Beta
public interface RangeEffectiveStatement extends EffectiveStatement<List<ValueRange>, RangeStatement>,
@Beta
public interface RangeEffectiveStatement extends EffectiveStatement<List<ValueRange>, RangeStatement>,
- // FIXME: 6.0.0: reconsider this interface extension
- // FIXME: 6.0.0: if we are keeping it, consider a default implementation (shared with others effective
+ // FIXME: 7.0.0: reconsider this interface extension
+ // FIXME: 7.0.0: if we are keeping it, consider a default implementation (shared with others effective
// statements)
ConstraintMetaDefinition {
@Override
// statements)
ConstraintMetaDefinition {
@Override
}
@Rfc6020AbnfRule("numerical-restrictions")
}
@Rfc6020AbnfRule("numerical-restrictions")
- // FIXME: 6.0.0: this interface does not have an implementation
+ // FIXME: 7.0.0: this interface does not have an implementation
interface NumericalRestrictions extends TypeStatement {
default @Nullable RangeStatement getRange() {
return findFirstDeclaredSubstatement(RangeStatement.class).orElse(null);
interface NumericalRestrictions extends TypeStatement {
default @Nullable RangeStatement getRange() {
return findFirstDeclaredSubstatement(RangeStatement.class).orElse(null);
}
@Rfc6020AbnfRule("string-restrictions")
}
@Rfc6020AbnfRule("string-restrictions")
- // FIXME: 6.0.0: this interface does not have an implementation
+ // FIXME: 7.0.0: this interface does not have an implementation
interface StringRestrictions extends TypeStatement {
default @Nullable LengthStatement getLength() {
final Optional<LengthStatement> opt = findFirstDeclaredSubstatement(LengthStatement.class);
interface StringRestrictions extends TypeStatement {
default @Nullable LengthStatement getLength() {
final Optional<LengthStatement> opt = findFirstDeclaredSubstatement(LengthStatement.class);
.addValidationBundle(ValidationBundleType.SUPPORTED_AUGMENT_TARGETS,
YangValidationBundles.SUPPORTED_AUGMENT_TARGETS)
.addValidationBundle(ValidationBundleType.SUPPORTED_AUGMENT_TARGETS,
YangValidationBundles.SUPPORTED_AUGMENT_TARGETS)
- // FIXME: 6.0.0: we do not seem to need this validation bundle
+ // FIXME: 7.0.0: we do not seem to need this validation bundle
.addValidationBundle(ValidationBundleType.SUPPORTED_CASE_SHORTHANDS,
YangValidationBundles.SUPPORTED_CASE_SHORTHANDS)
.addValidationBundle(ValidationBundleType.SUPPORTED_CASE_SHORTHANDS,
YangValidationBundles.SUPPORTED_CASE_SHORTHANDS)
*
* @deprecated This is an implementation leak from statement support and will be removed in next major version.
*/
*
* @deprecated This is an implementation leak from statement support and will be removed in next major version.
*/
- // FIXME: 6.0.0: move this to AbstractDeviateStatementSupport. This is not resolved from validation bundles at all,
+ // FIXME: 7.0.0: move this to AbstractDeviateStatementSupport. This is not resolved from validation bundles at all,
// hence it makes sense to co-locate this with its user.
@Deprecated
public static final Table<YangVersion, StatementDefinition, Set<StatementDefinition>> SUPPORTED_DEVIATION_TARGETS =
// hence it makes sense to co-locate this with its user.
@Deprecated
public static final Table<YangVersion, StatementDefinition, Set<StatementDefinition>> SUPPORTED_DEVIATION_TARGETS =
YangStmtMapping.CONTAINER, YangStmtMapping.LIST, YangStmtMapping.CASE, YangStmtMapping.INPUT,
YangStmtMapping.OUTPUT, YangStmtMapping.NOTIFICATION, YangStmtMapping.CHOICE, YangStmtMapping.RPC);
YangStmtMapping.CONTAINER, YangStmtMapping.LIST, YangStmtMapping.CASE, YangStmtMapping.INPUT,
YangStmtMapping.OUTPUT, YangStmtMapping.NOTIFICATION, YangStmtMapping.CHOICE, YangStmtMapping.RPC);
- // FIXME: 6.0.0: consider hiding this list, as choice nodes are handling creation of implied shorthands themselves.
+ // FIXME: 7.0.0: consider hiding this list, as choice nodes are handling creation of implied shorthands themselves.
// This has implications on other members of this class, as they really seem like something which
// should live in corresponding StatementSupport classes.
public static final Set<StatementDefinition> SUPPORTED_CASE_SHORTHANDS = ImmutableSet.of(
// This has implications on other members of this class, as they really seem like something which
// should live in corresponding StatementSupport classes.
public static final Set<StatementDefinition> SUPPORTED_CASE_SHORTHANDS = ImmutableSet.of(
* The reactor would first inline 'uses baz' as that definition is the first one completely resolved and then
* inline 'uses bar'. Here we are iterating in declaration order re-inline the statements.
*
* The reactor would first inline 'uses baz' as that definition is the first one completely resolved and then
* inline 'uses bar'. Here we are iterating in declaration order re-inline the statements.
*
- * FIXME: 6.0.0: this really should be handled by UsesStatementSupport such that 'uses baz' would have a
+ * FIXME: 7.0.0: this really should be handled by UsesStatementSupport such that 'uses baz' would have a
* prerequisite of a resolved 'uses bar'.
*/
final List<StmtContext<?, ?, ?>> substatementsInit = new ArrayList<>();
* prerequisite of a resolved 'uses bar'.
*/
final List<StmtContext<?, ?, ?>> substatementsInit = new ArrayList<>();
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.DocumentedNodeMixin;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.DocumentedNodeMixin;
-// FIXME: 6.0.0: hide this class
+// FIXME: 7.0.0: hide this class
// FIXME: 6.0.0: do not implement SchemaNode
public final class RefineEffectiveStatementImpl extends WithSubstatements<Descendant, RefineStatement>
implements RefineEffectiveStatement, SchemaNode, DocumentedNodeMixin<Descendant, RefineStatement> {
// FIXME: 6.0.0: do not implement SchemaNode
public final class RefineEffectiveStatementImpl extends WithSubstatements<Descendant, RefineStatement>
implements RefineEffectiveStatement, SchemaNode, DocumentedNodeMixin<Descendant, RefineStatement> {
@Override
public final <K, V, N extends IdentifierNamespace<K, V>> Optional<? extends V> get(final Class<N> namespace,
final K identifier) {
@Override
public final <K, V, N extends IdentifierNamespace<K, V>> Optional<? extends V> get(final Class<N> namespace,
final K identifier) {
- // FIXME: 6.0.0: implement this
+ // FIXME: 7.0.0: implement this
return Optional.empty();
}
@Override
public final <K, V, N extends IdentifierNamespace<K, V>> Map<K, V> getAll(final Class<N> namespace) {
return Optional.empty();
}
@Override
public final <K, V, N extends IdentifierNamespace<K, V>> Map<K, V> getAll(final Class<N> namespace) {
- // FIXME: 6.0.0: implement this
+ // FIXME: 7.0.0: implement this
return ImmutableMap.of();
}
return ImmutableMap.of();
}
/**
* Storage of the root statement of a particular source and any sources it is importing.
*/
/**
* Storage of the root statement of a particular source and any sources it is importing.
*/
- // FIXME: 6.0.0: this is a misnomer and should be renamed
+ // FIXME: 7.0.0: this is a misnomer and should be renamed
SOURCE_LOCAL_SPECIAL,
/**
* Storage of a single statement.
SOURCE_LOCAL_SPECIAL,
/**
* Storage of a single statement.
* build full declared statement model of source.</li>
* </ol>
*/
* build full declared statement model of source.</li>
* </ol>
*/
-// FIXME: 6.0.0: this is a push parser, essentially traversing the same tree multiple times. Perhaps we should create
+// FIXME: 7.0.0: this is a push parser, essentially traversing the same tree multiple times. Perhaps we should create
// a visitor/filter or perform some explicit argument binding?
public interface StatementStreamSource extends Identifiable<SourceIdentifier> {
/**
// a visitor/filter or perform some explicit argument binding?
public interface StatementStreamSource extends Identifiable<SourceIdentifier> {
/**
* Whether a <a href="https://tools.ietf.org/html/rfc6020#section-7.9.2">case shorthand</a> can be created for a
* node.
*/
* Whether a <a href="https://tools.ietf.org/html/rfc6020#section-7.9.2">case shorthand</a> can be created for a
* node.
*/
- // FIXME: 6.0.0: consider removing this constant, this functionality is part of statement support.
+ // FIXME: 7.0.0: consider removing this constant, this functionality is part of statement support.
SUPPORTED_CASE_SHORTHANDS,
/**
SUPPORTED_CASE_SHORTHANDS,
/**
EXACT(BigDecimalXPathMathSupport.INSTANCE);
/*
EXACT(BigDecimalXPathMathSupport.INSTANCE);
/*
- * FIXME: 6.0.0: specify and implement this:
+ * FIXME: 7.0.0: specify and implement this:
*
* All number expressions are treated either as {@code org.opendaylight.yangtools.yang.common} types with
* precision required to hold them. Decimal types are mapped to {@link Decimal64} with all range restrictions
*
* All number expressions are treated either as {@code org.opendaylight.yangtools.yang.common} types with
* precision required to hold them. Decimal types are mapped to {@link Decimal64} with all range restrictions