Bug 6859 #2 Binding generator v1 refactoring
[mdsal.git] / binding / mdsal-binding-generator-impl / src / main / java / org / opendaylight / mdsal / binding / generator / util / SourceCodeGenerator.java
1 /*
2  * Copyright (c) 2014 Brocade Communications 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.generator.util;
10
11 import javassist.CtClass;
12 import javassist.CtField;
13 import javassist.CtMethod;
14
15 /**
16  * Interface for a class that that generates readable source code for a runtime generated class.
17  * The appendField/appendMethod methods append source code to a temporary output. When outputGeneratedSource
18  * is called, the entire class source code is generated and outputted.
19  *
20  * @author Thomas Pantelis
21  */
22 public interface SourceCodeGenerator {
23
24     /**
25      * Appends the given class field and value to the temporary output.
26      */
27     void appendField(CtField field, String value);
28
29     /**
30      * Appends the given method and source code body to the temporary output.
31      */
32     void appendMethod(CtMethod method, String code);
33
34     /**
35      * Generates the full source code for the given class and outputs it.
36      */
37     void outputGeneratedSource(CtClass ctClass);
38 }