2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.parser.stmt.rfc6020;
10 import java.util.Collection;
11 import javax.annotation.Nonnull;
12 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
13 import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
14 import org.opendaylight.yangtools.yang.model.api.stmt.BodyGroup;
15 import org.opendaylight.yangtools.yang.model.api.stmt.ContactStatement;
16 import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
17 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
18 import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
19 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
20 import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
21 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
22 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
23 import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
24 import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
25 import org.opendaylight.yangtools.yang.model.api.stmt.LinkageGroup;
26 import org.opendaylight.yangtools.yang.model.api.stmt.MetaGroup;
27 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
28 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
29 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
30 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionGroup;
31 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
32 import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
33 import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
34 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
35 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
37 public abstract class AbstractRootStatement<T extends DeclaredStatement<String>> extends AbstractDeclaredStatement<String>
38 implements LinkageGroup, MetaGroup, RevisionGroup, BodyGroup {
40 protected AbstractRootStatement(StmtContext<String, T,?> context) {
46 public final Collection<? extends ImportStatement> getImports() {
47 return allDeclared(ImportStatement.class);
52 public final Collection<? extends IncludeStatement> getIncludes() {
53 return allDeclared(IncludeStatement.class);
57 public DescriptionStatement getDescription() {
58 return firstDeclared(DescriptionStatement.class);
62 public ReferenceStatement getReference() {
63 return firstDeclared(ReferenceStatement.class);
67 public final OrganizationStatement getOrganization() {
68 return firstDeclared(OrganizationStatement.class);
72 public final ContactStatement getContact() {
73 return firstDeclared(ContactStatement.class);
78 public final Collection<? extends RevisionStatement> getRevisions() {
79 return allDeclared(RevisionStatement.class);
84 public final Collection<? extends ExtensionStatement> getExtensions() {
85 return allDeclared(ExtensionStatement.class);
90 public final Collection<? extends FeatureStatement> getFeatures() {
91 return allDeclared(FeatureStatement.class);
96 public final Collection<? extends IdentityStatement> getIdentities() {
97 return allDeclared(IdentityStatement.class);
102 public Collection<? extends TypedefStatement> getTypedefs() {
103 return allDeclared(TypedefStatement.class);
108 public Collection<? extends GroupingStatement> getGroupings() {
109 return allDeclared(GroupingStatement.class);
114 public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
115 return allDeclared(DataDefinitionStatement.class);
120 public final Collection<? extends AugmentStatement> getAugments() {
121 return allDeclared(AugmentStatement.class);
126 public final Collection<? extends RpcStatement> getRpcs() {
127 return allDeclared(RpcStatement.class);
132 public final Collection<? extends NotificationStatement> getNotifications() {
133 return allDeclared(NotificationStatement.class);
138 public final Collection<? extends DeviationStatement> getDeviations() {
139 return allDeclared(DeviationStatement.class);