Do not generate prime when not needed
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / java / api / generator / InterfaceGenerator.java
1 /*
2  * Copyright (c) 2013 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 package org.opendaylight.mdsal.binding.java.api.generator;
9
10 import org.opendaylight.mdsal.binding.model.api.CodeGenerator;
11 import org.opendaylight.mdsal.binding.model.api.Enumeration;
12 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
13 import org.opendaylight.mdsal.binding.model.api.GeneratedType;
14 import org.opendaylight.mdsal.binding.model.api.Type;
15
16 public final class InterfaceGenerator implements CodeGenerator {
17
18     @Override
19     public boolean isAcceptable(final Type type) {
20         return type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)
21                 && !(type instanceof Enumeration);
22     }
23
24     /**
25      * Generates JAVA source code for generated type <code>Type</code>. The code
26      * is generated according to the template source code template which is
27      * written in XTEND language.
28      */
29     @Override
30     public String generate(final Type type) {
31         if (type instanceof GeneratedType genType && !(type instanceof GeneratedTransferObject)) {
32             final InterfaceTemplate interfaceTemplate = new InterfaceTemplate(genType);
33             return interfaceTemplate.generate();
34         }
35         return "";
36     }
37
38     @Override
39     public String getUnitName(final Type type) {
40         return type.getName();
41     }
42 }