Initial opendaylight infrastructure commit!!
[controller.git] / opendaylight / sal / yang-prototype / code-generator / binding-java-api-generator / src / main / java / org / opendaylight / controller / sal / java / api / generator / InterfaceGenerator.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.java.api.generator;\r
9 \r
10 import static org.opendaylight.controller.sal.java.api.generator.Constants.*;\r
11 \r
12 import java.io.IOException;\r
13 import java.io.StringWriter;\r
14 import java.io.Writer;\r
15 import java.util.List;\r
16 \r
17 import org.opendaylight.controller.sal.binding.model.api.CodeGenerator;\r
18 import org.opendaylight.controller.sal.binding.model.api.Constant;\r
19 import org.opendaylight.controller.sal.binding.model.api.Enumeration;\r
20 import org.opendaylight.controller.sal.binding.model.api.GeneratedType;\r
21 import org.opendaylight.controller.sal.binding.model.api.MethodSignature;\r
22 \r
23 public class InterfaceGenerator implements CodeGenerator {\r
24 \r
25     public Writer generate(GeneratedType type) throws IOException {\r
26         Writer writer = new StringWriter();\r
27         final List<Constant> constants = type.getConstantDefinitions();\r
28         final List<MethodSignature> methods = type.getMethodDefinitions();\r
29         final List<Enumeration> enums = type.getEnumDefintions();\r
30 \r
31         writer.write(GeneratorUtil.createIfcDeclarationWithPkgName(\r
32                 type.getPackageName(), type.getName(), ""));\r
33         writer.write(NL);\r
34 \r
35         if (constants != null) {\r
36             for (Constant c : constants) {\r
37                 writer.write(GeneratorUtil.createConstant(c, TAB) + NL);\r
38             }\r
39             writer.write(NL);\r
40         }\r
41 \r
42         if (methods != null) {\r
43             for (MethodSignature m : methods) {\r
44                 writer.write(GeneratorUtil.createMethodDeclaration(m, TAB) + NL);\r
45             }\r
46             writer.write(NL);\r
47         }\r
48 \r
49         if (enums != null) {\r
50             for (Enumeration e : enums) {\r
51                 writer.write(GeneratorUtil.createEnum(e, TAB) + NL);\r
52             }\r
53             writer.write(NL);\r
54         }\r
55 \r
56         writer.write(RCB);\r
57 \r
58         return writer;\r
59     }\r
60 \r
61 }\r