b0a5f1e025b2c6f820293940aeefd1eada0671a9
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / rpc / RpcStatementImpl.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc;
9
10 import java.util.Collection;
11 import javax.annotation.Nonnull;
12 import javax.annotation.Nullable;
13 import org.opendaylight.yangtools.yang.common.QName;
14 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
15 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
16 import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
17 import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
18 import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
19 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
20 import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
21 import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
22 import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
23 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
24 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
25
26 final class RpcStatementImpl extends AbstractDeclaredStatement<QName> implements RpcStatement {
27     RpcStatementImpl(final StmtContext<QName, RpcStatement, ?> context) {
28         super(context);
29     }
30
31     @Override
32     public QName getName() {
33         return argument();
34     }
35
36     @Nonnull
37     @Override
38     public Collection<? extends TypedefStatement> getTypedefs() {
39         return allDeclared(TypedefStatement.class);
40     }
41
42     @Nonnull
43     @Override
44     public Collection<? extends GroupingStatement> getGroupings() {
45         return allDeclared(GroupingStatement.class);
46     }
47
48     @Nullable
49     @Override
50     public StatusStatement getStatus() {
51         return firstDeclared(StatusStatement.class);
52     }
53
54     @Nullable
55     @Override
56     public DescriptionStatement getDescription() {
57         return firstDeclared(DescriptionStatement.class);
58     }
59
60     @Nullable
61     @Override
62     public ReferenceStatement getReference() {
63         return firstDeclared(ReferenceStatement.class);
64     }
65
66     @Override
67     public InputStatement getInput() {
68         return firstDeclared(InputStatement.class);
69     }
70
71     @Override
72     public OutputStatement getOutput() {
73         return firstDeclared(OutputStatement.class);
74     }
75
76     @Nonnull
77     @Override
78     public Collection<? extends IfFeatureStatement> getIfFeatures() {
79         return allDeclared(IfFeatureStatement.class);
80     }
81 }