Example usage for com.google.gwt.uibinder.rebind MortalLogger die

List of usage examples for com.google.gwt.uibinder.rebind MortalLogger die

Introduction

In this page you can find the example usage for com.google.gwt.uibinder.rebind MortalLogger die.

Prototype

public void die(String message, Object... params) throws UnableToCompleteException 

Source Link

Document

Post an error message and halt processing.

Usage

From source file:com.jhickman.web.gwt.gxtuibinder.rebind.GxtHandlerEvaluator.java

License:Apache License

public void run(IndentedWriter writer, FieldManager fieldManager, String uiOwner, OwnerClass ownerClass,
        MortalLogger logger, TypeOracle oracle) throws UnableToCompleteException {

    for (JMethod method : getUiHandlers(ownerClass.getOwnerType())) {
        String boundMethod = method.getName();
        if (method.isPrivate()) {
            logger.die("Method '%s' cannot be private.", boundMethod);
        }/*w w  w . j  a v a  2 s.c o  m*/

        // Retrieves both event and handler types.
        JParameter[] parameters = method.getParameters();
        if (parameters.length != 1) {
            logger.die("Method '%s' must have a single event parameter defined.", boundMethod);
        }
        JClassType eventType = parameters[0].getType().isClass();

        GxtUiHandler annotation = method.getAnnotation(GxtUiHandler.class);
        String eventTypeName = annotation.eventType().toString();
        if (eventTypeName == null) {
            logger.die("Parameter '%s' cannot be null.", "eventType");
        }

        String handlerVarName = HANDLER_BASE_NAME + (++varCounter);
        writeHandler(writer, uiOwner, handlerVarName, eventType, boundMethod, oracle);

        JClassType events = oracle.findType(GxtClassnameConstants.EVENTS);
        for (String objectName : annotation.uiField()) {
            writer.write("%s.addListener(%s.%s, %s);", objectName, events.getQualifiedSourceName(),
                    eventTypeName, handlerVarName);
        }
    }
}