Fix checkstyle in mdsal-binding2-java-api-generator
[mdsal.git] / binding2 / mdsal-binding2-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / javav2 / java / api / generator / TOGenerator.java
1 /*
2  * Copyright (c) 2017 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.mdsal.binding.javav2.java.api.generator;
10
11 import com.google.common.annotations.Beta;
12 import org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.ClassRenderer;
13 import org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.UnionBuilderRenderer;
14 import org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.UnionRenderer;
15 import org.opendaylight.mdsal.binding.javav2.model.api.CodeGenerator;
16 import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTransferObject;
17 import org.opendaylight.mdsal.binding.javav2.model.api.Type;
18 import org.opendaylight.mdsal.binding.javav2.model.api.UnitName;
19 import org.opendaylight.yangtools.concepts.Identifier;
20
21 /**
22  * Transformer of the data from the virtual form to JAVA source code. The
23  * result source code represents JAVA class. For generating of the source code
24  * is used the template written in Twirl (Scala based) language.
25  */
26 @Beta
27 public class TOGenerator implements CodeGenerator {
28
29     @Override
30     public String generate(Type type) {
31         if (type instanceof GeneratedTransferObject) {
32             final GeneratedTransferObject genTO = (GeneratedTransferObject) type;
33             if (genTO.isUnionType()) {
34                 return new UnionRenderer(genTO).generateTemplate();
35             } else if (genTO.isUnionTypeBuilder()) {
36                 return new UnionBuilderRenderer(genTO).generateTemplate();
37             } else {
38                 return new ClassRenderer(genTO).generateTemplate();
39             }
40         }
41         return "";
42     }
43
44     @Override
45     public boolean isAcceptable(Type type) {
46         return type instanceof GeneratedTransferObject;
47     }
48
49     @Override
50     public Identifier getUnitName(Type type) {
51         return new UnitName(type.getName());
52     }
53 }