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 org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
12 import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
13 import org.opendaylight.yangtools.yang.model.api.stmt.BodyGroup;
14 import org.opendaylight.yangtools.yang.model.api.stmt.ContactStatement;
15 import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
16 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
17 import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
18 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
19 import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
20 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
21 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
22 import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
23 import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
24 import org.opendaylight.yangtools.yang.model.api.stmt.LinkageGroup;
25 import org.opendaylight.yangtools.yang.model.api.stmt.MetaGroup;
26 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
27 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
28 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
29 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionGroup;
30 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
31 import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
32 import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
33 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
34 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
36 public abstract class AbstractRootStatement<T extends DeclaredStatement<String>> extends AbstractDeclaredStatement<String>
37 implements LinkageGroup, MetaGroup, RevisionGroup, BodyGroup {
39 protected AbstractRootStatement(StmtContext<String, T,?> context) {
44 public final Collection<? extends ImportStatement> getImports() {
45 return allDeclared(ImportStatement.class);
49 public final Collection<? extends IncludeStatement> getIncludes() {
50 return allDeclared(IncludeStatement.class);
54 public DescriptionStatement getDescription() {
55 return firstDeclared(DescriptionStatement.class);
59 public ReferenceStatement getReference() {
60 return firstDeclared(ReferenceStatement.class);
64 public final OrganizationStatement getOrganization() {
65 return firstDeclared(OrganizationStatement.class);
69 public final ContactStatement getContact() {
70 return firstDeclared(ContactStatement.class);
74 public final Collection<? extends RevisionStatement> getRevisions() {
75 return allDeclared(RevisionStatement.class);
79 public final Collection<? extends ExtensionStatement> getExtensions() {
80 return allDeclared(ExtensionStatement.class);
84 public final Collection<? extends FeatureStatement> getFeatures() {
85 return allDeclared(FeatureStatement.class);
89 public final Collection<? extends IdentityStatement> getIdentities() {
90 return allDeclared(IdentityStatement.class);
94 public Collection<? extends TypedefStatement> getTypedefs() {
95 return allDeclared(TypedefStatement.class);
99 public Collection<? extends GroupingStatement> getGroupings() {
100 return allDeclared(GroupingStatement.class);
104 public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
105 return allDeclared(DataDefinitionStatement.class);
109 public final Collection<? extends AugmentStatement> getAugments() {
110 return allDeclared(AugmentStatement.class);
114 public final Collection<? extends RpcStatement> getRpcs() {
115 return allDeclared(RpcStatement.class);
119 public final Collection<? extends NotificationStatement> getNotifications() {
120 return allDeclared(NotificationStatement.class);
124 public final Collection<? extends DeviationStatement> getDeviations() {
125 return allDeclared(DeviationStatement.class);