* detailed action information. The argument is the name of the action.
*/
@Beta
-public interface ActionStatement extends DeclaredStatement<QName>, OperationGroup, ConditionalFeature {
+public interface ActionStatement extends DeclaredStatement<QName>, OperationGroup {
}
*/
package org.opendaylight.yangtools.yang.model.api.stmt;
+import java.util.Collection;
import javax.annotation.Nonnull;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface AugmentStatement extends DeclaredStatement<SchemaNodeIdentifier>, DataDefinitionContainer,
- NotificationStatementContainer, ActionStatementContainer {
+public interface AugmentStatement
+ extends DeclaredStatement<SchemaNodeIdentifier>, DataDefinitionContainer, NotificationStatementContainer,
+ ActionStatementContainer, DocumentationGroup.WithStatus, ConditionalDataDefinition, ConditionalFeature {
- @Nonnull SchemaNodeIdentifier getTargetNode();
+ @Nonnull
+ SchemaNodeIdentifier getTargetNode();
+
+ @Nonnull
+ Collection<? extends CaseStatement> getCases();
}
*/
package org.opendaylight.yangtools.yang.model.api.stmt;
+import java.util.Collection;
import javax.annotation.Nonnull;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface DeviationStatement extends DeclaredStatement<SchemaNodeIdentifier> {
+public interface DeviationStatement extends DeclaredStatement<SchemaNodeIdentifier>, DocumentationGroup {
@Nonnull SchemaNodeIdentifier getTargetNode();
+
+ @Nonnull Collection<? extends DeviateStatement> getDeviateStatements();
}
@Nonnull String getModule();
- @Nonnull PrefixStatement getPrefix();
-
@Nullable RevisionDateStatement getRevisionDate();
}
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
public interface NotificationStatement extends DeclaredStatement<QName>,
- DataDefinitionContainer.WithReusableDefinitions, DocumentationGroup.WithStatus {
+ DataDefinitionContainer.WithReusableDefinitions, DocumentationGroup.WithStatus, ConditionalFeature {
@Nonnull QName getName();
import com.google.common.annotations.Beta;
import java.util.Collection;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.common.QName;
/**
* Common interface for action and rpc statements.
*/
@Beta
-public interface OperationGroup extends DocumentationGroup.WithStatus {
+public interface OperationGroup extends DocumentationGroup.WithStatus, ConditionalFeature {
- QName getName();
+ @Nonnull QName getName();
@Nonnull Collection<? extends TypedefStatement> getTypedefs();
@Nonnull Collection<? extends GroupingStatement> getGroupings();
- InputStatement getInput();
+ @Nullable InputStatement getInput();
- OutputStatement getOutput();
+ @Nullable OutputStatement getOutput();
}
import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface RefineStatement extends DeclaredStatement<SchemaNodeIdentifier>, DocumentationGroup,
- ConditionalFeature {
+public interface RefineStatement
+ extends DeclaredStatement<SchemaNodeIdentifier>, DocumentationGroup, ConditionalFeature {
String getTargetNode();
- interface RefineContainerStatement extends RefineStatement {
+ @Nonnull
+ Collection<? extends MustStatement> getMusts();
- @Nonnull Collection<? extends MustStatement> getMusts();
+ @Nonnull
+ Collection<? extends DefaultStatement> getDefaults();
- @Nullable ConfigStatement getConfig();
+ @Nullable
+ ConfigStatement getConfig();
- @Nullable PresenceStatement getPresence();
- }
+ @Nullable
+ PresenceStatement getPresence();
- interface RefineLeafStatement extends RefineStatement {
+ @Nullable
+ MandatoryStatement getMandatory();
- @Nonnull Collection<? extends MustStatement> getMusts();
+ @Nullable
+ MinElementsStatement getMinElements();
- @Nullable DefaultStatement getDefault();
-
- @Nullable ConfigStatement getConfig();
-
- @Nullable PresenceStatement getPresence();
- }
+ @Nullable
+ MaxElementsStatement getMaxElements();
}
-
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface RpcStatement extends DeclaredStatement<QName>, OperationGroup, ConditionalFeature {
+public interface RpcStatement extends DeclaredStatement<QName>, OperationGroup {
}
package org.opendaylight.yangtools.yang.model.api.stmt;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
public interface TypedefStatement extends DeclaredStatement<QName>,DocumentationGroup.WithStatus, TypeGroup {
@Nonnull QName getName();
+
+ @Nullable DefaultStatement getDefault();
}
import java.util.Set;
import java.util.regex.Pattern;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.YangVersion;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
return allDeclared(ActionStatement.class);
}
+ @Nonnull
@Override
public final Collection<? extends NotificationStatement> getNotifications() {
return allDeclared(NotificationStatement.class);
}
+
+ @Nullable
+ @Override
+ public ReferenceStatement getReference() {
+ return firstDeclared(ReferenceStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public DescriptionStatement getDescription() {
+ return firstDeclared(DescriptionStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public StatusStatement getStatus() {
+ return firstDeclared(StatusStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public WhenStatement getWhenStatement() {
+ return firstDeclared(WhenStatement.class);
+ }
+
+ @Nonnull
+ @Override
+ public Collection<? extends CaseStatement> getCases() {
+ return allDeclared(CaseStatement.class);
+ }
+
+ @Nonnull
+ @Override
+ public Collection<? extends IfFeatureStatement> getIfFeatures() {
+ return allDeclared(IfFeatureStatement.class);
+ }
}
*/
package org.opendaylight.yangtools.yang.parser.stmt.rfc6020;
+import java.util.Collection;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
public SchemaNodeIdentifier getTargetNode() {
return argument();
}
+
+ @Nullable
+ @Override
+ public DescriptionStatement getDescription() {
+ return firstDeclared(DescriptionStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public ReferenceStatement getReference() {
+ return firstDeclared(ReferenceStatement.class);
+ }
+
+ @Nonnull
+ @Override
+ public Collection<? extends DeviateStatement> getDeviateStatements() {
+ return allDeclared(DeviateStatement.class);
+ }
}
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
import org.opendaylight.yangtools.yang.model.util.ModuleIdentifierImpl;
return argument();
}
- @Nonnull
- @Override
- public PrefixStatement getPrefix() {
- return firstDeclared(PrefixStatement.class);
- }
-
@Override
public RevisionDateStatement getRevisionDate() {
return firstDeclared(RevisionDateStatement.class);
import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
public ReferenceStatement getReference() {
return firstDeclared(ReferenceStatement.class);
}
+
+ @Nonnull
+ @Override
+ public Collection<? extends IfFeatureStatement> getIfFeatures() {
+ return allDeclared(IfFeatureStatement.class);
+ }
}
import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
public ReferenceStatement getReference() {
return firstDeclared(ReferenceStatement.class);
}
+
+ @Nonnull
+ @Override
+ public Collection<? extends MustStatement> getMusts() {
+ return allDeclared(MustStatement.class);
+ }
+
+ @Nonnull
+ @Override
+ public Collection<? extends DefaultStatement> getDefaults() {
+ return allDeclared(DefaultStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public ConfigStatement getConfig() {
+ return firstDeclared(ConfigStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public PresenceStatement getPresence() {
+ return firstDeclared(PresenceStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public MandatoryStatement getMandatory() {
+ return firstDeclared(MandatoryStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public MinElementsStatement getMinElements() {
+ return firstDeclared(MinElementsStatement.class);
+ }
+
+ @Nullable
+ @Override
+ public MaxElementsStatement getMaxElements() {
+ return firstDeclared(MaxElementsStatement.class);
+ }
}
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
return argument();
}
+ @Nullable
+ @Override
+ public DefaultStatement getDefault() {
+ return firstDeclared(DefaultStatement.class);
+ }
}
package org.opendaylight.yangtools.yang.parser.spi.meta;
+import com.google.common.base.Optional;
import com.google.common.base.Predicates;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
}
protected final <S extends DeclaredStatement<?>> S firstDeclared(final Class<S> type) {
- return type.cast(Iterables.find(substatements, Predicates.instanceOf(type)));
+ final Optional<? extends DeclaredStatement<?>> declaredSubstmt = Iterables.tryFind(substatements,
+ Predicates.instanceOf(type));
+ return declaredSubstmt.isPresent() ? type.cast(declaredSubstmt.get()) : null;
}
@Override