2 * Copyright (c) 2014 Brocade Communications Systems, Inc. and others. All rights reserved.
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
9 package org.opendaylight.mdsal.binding.generator.util;
11 import javassist.CtClass;
12 import javassist.CtField;
13 import javassist.CtMethod;
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.
20 * @author Thomas Pantelis
22 public interface SourceCodeGenerator {
25 * Appends the given class field and value to the temporary output.
27 void appendField(CtField field, String value);
30 * Appends the given method and source code body to the temporary output.
32 void appendMethod(CtMethod method, String code);
35 * Generates the full source code for the given class and outputs it.
37 void outputGeneratedSource(CtClass ctClass);