Initial opendaylight infrastructure commit!!
[controller.git] / opendaylight / sal / yang-prototype / code-generator / binding-model-api / src / main / java / org / opendaylight / controller / sal / binding / model / api / GeneratedType.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.controller.sal.binding.model.api;\r
9 \r
10 import java.util.List;\r
11 \r
12 /**\r
13  * Every Java interface has to be specified with:\r
14  * <ul>\r
15  * <li><code>package</code> that belongs into</li>\r
16  * <li><code>interface</code> name (with commentary that <b>SHOULD</b> be\r
17  * present to proper define interface and base <i>contracts</i> specified for\r
18  * interface)</li>\r
19  * <li><code>enum</code> and <code>constant</code> definitions (i.e. each\r
20  * constant definition is by default defined as <code>public static final</code>\r
21  * + type (either primitive or object) and constant name</li>\r
22  * <li><code>method definitions</code> with specified input parameters (with\r
23  * types) and return values</li>\r
24  * </ul>\r
25  * \r
26  * By the definition of the interface constant, enum and method definitions MUST\r
27  * be public, so there is no need to specify the scope of visibility.\r
28  * \r
29  * \r
30  */\r
31 public interface GeneratedType extends Type {\r
32 \r
33     public Type getParentType();\r
34 \r
35     /**\r
36      * Returns Set of all Enumerator definitions associated with interface.\r
37      * \r
38      * @return Set of all Enumerator definitions associated with interface.\r
39      */\r
40     public List<Enumeration> getEnumDefintions();\r
41 \r
42     /**\r
43      * \r
44      * \r
45      * @return\r
46      */\r
47     public List<Constant> getConstantDefinitions();\r
48 \r
49     /**\r
50      * \r
51      * \r
52      * @return\r
53      */\r
54     public List<MethodSignature> getMethodDefinitions();\r
55 \r
56 }\r