blob: 705ff9711495f6d631bcb452073a45f912b5c1b2 [file] [log] [blame]
/*
* 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);
}