Bug 4662: Introduce a SemanticVersion concept - import processing
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / RpcDefinition.java
1 /*
2  * Copyright (c) 2013 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.model.api;
9
10 import java.util.Set;
11
12 /**
13  * Interface describing YANG 'rpc' statement.
14  * <p>
15  * The rpc statement defines an rpc node in the schema tree. Under the rpc node,
16  * a schema node with the name 'input', and a schema node with the name 'output'
17  * are also defined.
18  * </p>
19  */
20 public interface RpcDefinition extends SchemaNode {
21
22     /**
23      * @return Set of type definitions declared under this rpc statement.
24      */
25     Set<TypeDefinition<?>> getTypeDefinitions();
26
27     /**
28      * @return Set of grouping statements declared under this rpc statement.
29      */
30     Set<GroupingDefinition> getGroupings();
31
32     /**
33      * @return Definition of input parameters to the RPC operation. The
34      *         substatements of input define nodes under the RPC's input node.
35      */
36     ContainerSchemaNode getInput();
37
38     /**
39      * @return Definition of output parameters to the RPC operation. The
40      *         substatements of output define nodes under the RPC's output node.
41      */
42     ContainerSchemaNode getOutput();
43
44 }