2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
\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
8 package org.opendaylight.controller.sal.java.api.generator;
\r
10 import static org.opendaylight.controller.sal.java.api.generator.Constants.NL;
\r
11 import static org.opendaylight.controller.sal.java.api.generator.Constants.RCB;
\r
12 import static org.opendaylight.controller.sal.java.api.generator.Constants.TAB;
\r
14 import java.io.IOException;
\r
15 import java.io.StringWriter;
\r
16 import java.io.Writer;
\r
17 import java.util.List;
\r
19 import org.opendaylight.controller.sal.binding.model.api.CodeGenerator;
\r
20 import org.opendaylight.controller.sal.binding.model.api.GeneratedProperty;
\r
21 import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;
\r
22 import org.opendaylight.controller.sal.binding.model.api.Type;
\r
24 public class CompositeKeyGenerator implements CodeGenerator {
\r
27 public Writer generate(Type type) throws IOException {
\r
28 final Writer writer = new StringWriter();
\r
29 if (type instanceof GeneratedTransferObject) {
\r
30 GeneratedTransferObject genTO = (GeneratedTransferObject)type;
\r
31 final List<GeneratedProperty> fields = genTO.getProperties();
\r
33 writer.write(GeneratorUtil.createClassDeclarationWithPkgName(
\r
34 type.getPackageName(), type.getName(), ""));
\r
38 if (fields != null) {
\r
39 for (GeneratedProperty field : fields) {
\r
40 writer.write(GeneratorUtil.createField(field, TAB) + NL);
\r
43 writer.write(GeneratorUtil.createConstructor(genTO, TAB) + NL);
\r
45 for (GeneratedProperty field : fields) {
\r
46 writer.write(GeneratorUtil.createGetter(field, TAB) + NL);
\r
50 writer.write(GeneratorUtil.createHashCode(genTO.getHashCodeIdentifiers(), TAB) + NL);
\r
51 writer.write(GeneratorUtil.createEquals(genTO, genTO.getEqualsIdentifiers(), TAB) + NL);
\r
52 writer.write(GeneratorUtil.createToString(genTO, genTO.getToStringIdentifiers(), TAB) + NL);
\r