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.GeneratedProperty;
21 import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;
22 import org.opendaylight.controller.sal.binding.model.api.Type;
24 public class ClassCodeGenerator implements CodeGenerator {
27 public Writer generate(Type type) throws IOException {
28 final Writer writer = new StringWriter();
29 if (type instanceof GeneratedTransferObject) {
30 GeneratedTransferObject genTO = (GeneratedTransferObject) type;
31 final List<GeneratedProperty> fields = genTO.getProperties();
33 writer.write(GeneratorUtil.createClassDeclarationWithPkgName(genTO,
39 for (GeneratedProperty field : fields) {
40 writer.write(GeneratorUtil.createField(field, TAB) + NL);
43 writer.write(GeneratorUtil.createConstructor(genTO, TAB) + NL);
45 for (GeneratedProperty field : fields) {
46 writer.write(GeneratorUtil.createGetter(field, TAB) + NL);
47 if (!field.isReadOnly()) {
48 writer.write(GeneratorUtil.createSetter(field, TAB) + NL);
53 if (!genTO.getHashCodeIdentifiers().isEmpty()) {
54 writer.write(GeneratorUtil.createHashCode(
55 genTO.getHashCodeIdentifiers(), TAB)
59 if (!genTO.getEqualsIdentifiers().isEmpty()) {
60 writer.write(GeneratorUtil.createEquals(genTO,
61 genTO.getEqualsIdentifiers(), TAB)
65 if (!genTO.getToStringIdentifiers().isEmpty()) {
66 writer.write(GeneratorUtil.createToString(genTO,
67 genTO.getToStringIdentifiers(), TAB)