| /* |
| * Copyright 2011 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.codegen.server; |
| |
| /** |
| * Context for code generators. |
| * <p> |
| * Experimental API - subject to change. |
| */ |
| public interface CodeGenContext { |
| |
| /** |
| * An exception which can be thrown by a code generator to abort - callers of |
| * code generators should catch this exception. |
| */ |
| class AbortCodeGenException extends RuntimeException { |
| public AbortCodeGenException() { |
| super(); |
| } |
| |
| public AbortCodeGenException(String msg) { |
| super(msg); |
| } |
| |
| public AbortCodeGenException(String msg, Throwable cause) { |
| super(msg, cause); |
| } |
| |
| public AbortCodeGenException(Throwable cause) { |
| super(cause); |
| } |
| } |
| |
| /** |
| * Begin generating a new class. |
| * |
| * @param pkgName |
| * @param className |
| * @return a {@link JavaSourceWriterBuilder} for the requested class or null if it |
| * could not be created, such as if it already exists |
| */ |
| JavaSourceWriterBuilder addClass(String pkgName, String className); |
| |
| /** |
| * Begin generating a new class, possibly using GWT super-source. |
| * |
| * @param superPath super-source prefix, or null if a regular class |
| * @param pkgName |
| * @param className |
| * @return a {@link JavaSourceWriterBuilder} for the requested class or null if it |
| * could not be created, such as if it already exists |
| */ |
| JavaSourceWriterBuilder addClass(String superPath, String pkgName, String className); |
| |
| /** |
| * Log a fatal error during code generation. |
| * |
| * @param msg |
| */ |
| void error(String msg); |
| |
| /** |
| * Log a fatal error during code generation. |
| * |
| * @param msg |
| * @param cause |
| */ |
| void error(String msg, Throwable cause); |
| |
| /** |
| * Log a fatal error during code generation. |
| * |
| * @param cause |
| */ |
| void error(Throwable cause); |
| |
| /** |
| * Log a non-fatal warning during code generation. |
| * |
| * @param msg |
| */ |
| void warn(String msg); |
| |
| /** |
| * Log a non-fatal warning during code generation. |
| * |
| * @param msg |
| * @param cause |
| */ |
| void warn(String msg, Throwable cause); |
| |
| /** |
| * Log a non-fatal warning during code generation. |
| * |
| * @param cause |
| */ |
| void warn(Throwable cause); |
| } |