2 * Copyright (c) 2022 PANTHEON.tech, s.r.o. 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.model.api.stmt;
10 import com.google.common.annotations.Beta;
11 import java.util.Collection;
12 import java.util.Optional;
13 import org.eclipse.jdt.annotation.NonNull;
14 import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
17 * Common interface capturing general layout of a top-level YANG declared statement -- either a {@link ModuleStatement}
18 * or a {@link SubmoduleStatement}.
21 public sealed interface RootDeclaredStatement
22 extends DocumentedDeclaredStatement<Unqualified>, NotificationStatementAwareDeclaredStatement<Unqualified>,
23 DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<Unqualified>
24 permits ModuleStatement, SubmoduleStatement {
25 default Optional<OrganizationStatement> getOrganization() {
26 return findFirstDeclaredSubstatement(OrganizationStatement.class);
29 default Optional<ContactStatement> getContact() {
30 return findFirstDeclaredSubstatement(ContactStatement.class);
33 default @NonNull Collection<? extends ImportStatement> getImports() {
34 return declaredSubstatements(ImportStatement.class);
37 default @NonNull Collection<? extends IncludeStatement> getIncludes() {
38 return declaredSubstatements(IncludeStatement.class);
41 default @NonNull Collection<? extends RevisionStatement> getRevisions() {
42 return declaredSubstatements(RevisionStatement.class);
45 default @NonNull Collection<? extends ExtensionStatement> getExtensions() {
46 return declaredSubstatements(ExtensionStatement.class);
49 default @NonNull Collection<? extends FeatureStatement> getFeatures() {
50 return declaredSubstatements(FeatureStatement.class);
53 default @NonNull Collection<? extends IdentityStatement> getIdentities() {
54 return declaredSubstatements(IdentityStatement.class);
57 default @NonNull Collection<? extends AugmentStatement> getAugments() {
58 return declaredSubstatements(AugmentStatement.class);
61 default @NonNull Collection<? extends RpcStatement> getRpcs() {
62 return declaredSubstatements(RpcStatement.class);
65 default @NonNull Collection<? extends DeviationStatement> getDeviations() {
66 return declaredSubstatements(DeviationStatement.class);