Binding generator v2 - uses statement - support choice
[mdsal.git] / binding2 / mdsal-binding2-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / javav2 / java / api / generator / EnumGenerator.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.EnumRenderer;
13 import org.opendaylight.mdsal.binding.javav2.model.api.CodeGenerator;
14 import org.opendaylight.mdsal.binding.javav2.model.api.Enumeration;
15 import org.opendaylight.mdsal.binding.javav2.model.api.Type;
16 import org.opendaylight.mdsal.binding.javav2.model.api.UnitName;
17 import org.opendaylight.yangtools.concepts.Identifier;
18
19 /**
20  * Transformer of the data from the virtual form to JAVA source code. The
21  * result source code represents JAVA enumeration. For generation of the source
22  * code is used the template written in Twirl (Scala based) language.
23  */
24 @Beta
25 public class EnumGenerator implements CodeGenerator {
26
27     @Override
28     public String generate(Type type) {
29         if (type instanceof Enumeration) {
30             final Enumeration enums = (Enumeration) type;
31             return new EnumRenderer(enums).generateTemplate();
32         }
33         return "";
34     }
35
36     @Override
37     public boolean isAcceptable(Type type) {
38         return type instanceof Enumeration;
39     }
40
41     @Override
42     public Identifier getUnitName(Type type) {
43         return new UnitName(type.getName());
44     }
45 }