2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.controller.sal.java.api.generator;
10 import static org.opendaylight.controller.sal.java.api.generator.Constants.NL;
11 import static org.opendaylight.controller.sal.java.api.generator.Constants.RCB;
12 import static org.opendaylight.controller.sal.java.api.generator.Constants.TAB;
14 import java.io.IOException;
15 import java.io.StringWriter;
16 import java.io.Writer;
17 import java.util.List;
19 import org.opendaylight.controller.sal.binding.model.api.CodeGenerator;
20 import org.opendaylight.controller.sal.binding.model.api.Constant;
21 import org.opendaylight.controller.sal.binding.model.api.Enumeration;
22 import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;
23 import org.opendaylight.controller.sal.binding.model.api.GeneratedType;
24 import org.opendaylight.controller.sal.binding.model.api.MethodSignature;
25 import org.opendaylight.controller.sal.binding.model.api.Type;
27 public class InterfaceGenerator implements CodeGenerator {
29 public Writer generate(Type type) throws IOException {
30 Writer writer = new StringWriter();
31 if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
32 GeneratedType genType = (GeneratedType) type;
34 final List<Constant> constants = genType.getConstantDefinitions();
35 final List<MethodSignature> methods = genType
36 .getMethodDefinitions();
37 final List<Enumeration> enums = genType.getEnumDefintions();
39 writer.write(GeneratorUtil.createIfcDeclarationWithPkgName(genType,
43 if (constants != null) {
44 for (Constant c : constants) {
45 writer.write(GeneratorUtil.createConstant(c, TAB) + NL);
50 if (methods != null) {
51 for (MethodSignature m : methods) {
52 writer.write(GeneratorUtil.createMethodDeclaration(m, TAB)
59 for (Enumeration e : enums) {
60 writer.write(GeneratorUtil.createEnum(e, TAB) + NL);