import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface BitStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus {
+public interface BitStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus, ConditionalFeature {
@Nonnull
String getName();
*/
package org.opendaylight.yangtools.yang.model.api.stmt;
+import com.google.common.collect.ImmutableList;
import java.util.Collection;
import javax.annotation.Nonnull;
@Rfc6020AbnfRule("*(if-feature-stmt)")
public interface ConditionalFeature {
- @Nonnull Collection<? extends IfFeatureStatement> getIfFeatures();
+ /**
+ * All implementations should override this method.
+ * The default definition of this method is used only in YANG 1.0 (RFC6020) implementations of
+ * BitStatement, EnumStatement, IdentityStatement and RefineStatement which do not allow if-feature statements.
+ * These YANG statements have been changed in YANG 1.1 (RFC7950) and can now contain if-feature statements.
+ *
+ * @return collection of if-feature statements
+ */
+ // FIXME: version 2.0.0: make this method non-default
+ @Nonnull default Collection<? extends IfFeatureStatement> getIfFeatures() {
+ return ImmutableList.of();
+ }
}
import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface EnumStatement extends DeclaredStatement<String>, DocumentationGroup.WithStatus {
+public interface EnumStatement extends DeclaredStatement<String>, DocumentationGroup.WithStatus, ConditionalFeature {
@Nonnull
String getName();
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface IdentityStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus {
+public interface IdentityStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus, ConditionalFeature {
@Nonnull QName getName();
import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface RefineStatement extends DeclaredStatement<SchemaNodeIdentifier>, DocumentationGroup {
+public interface RefineStatement extends DeclaredStatement<SchemaNodeIdentifier>, DocumentationGroup, ConditionalFeature {
String getTargetNode();
interface RefineContainerStatement extends RefineStatement {