a9859f76304a6c4953bf7e17adb4619f5164ece8
[controller.git] / opendaylight / sal / yang-prototype / code-generator / binding-generator-api / src / main / java / org / opendaylight / controller / sal / binding / generator / api / BindingGenerator.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.generator.api;\r
9 \r
10 import org.opendaylight.controller.sal.binding.model.api.Type;\r
11 import org.opendaylight.controller.yang.model.api.Module;\r
12 import org.opendaylight.controller.yang.model.api.SchemaContext;\r
13 \r
14 import java.util.List;\r
15 import java.util.Set;\r
16 \r
17 /**\r
18  *\r
19  *\r
20  */\r
21 public interface BindingGenerator {\r
22 \r
23     /**\r
24      * Generate Types from whole Schema Context.\r
25      * <br>\r
26      * The method will return List of All Generated Types that could be\r
27      * Generated from Schema Context.\r
28      *\r
29      *\r
30      * @param context Schema Context\r
31      * @return List of Generated Types\r
32      *\r
33      * @see SchemaContext\r
34      */\r
35     public List<Type> generateTypes(final SchemaContext context);\r
36 \r
37     /**\r
38      * Generate Types from Schema Context restricted by sub set of specified\r
39      * Modules. The Schema Context MUST contain all of the sub modules\r
40      * otherwise the there is no guarantee that result List of Generated\r
41      * Types will contain correct Generated Types.\r
42      *\r
43      * @param context Schema Context\r
44      * @param modules Sub Set of Modules\r
45      * @return List of Generated Types restricted by sub set of Modules\r
46      *\r
47      * @see Module\r
48      * @see SchemaContext\r
49      *\r
50      */\r
51     public List<Type> generateTypes(final SchemaContext context,\r
52                                     final Set<Module> modules);\r
53 }\r