Example usage for com.google.gwt.core.ext.typeinfo JTypeParameter getFirstBound

List of usage examples for com.google.gwt.core.ext.typeinfo JTypeParameter getFirstBound

Introduction

In this page you can find the example usage for com.google.gwt.core.ext.typeinfo JTypeParameter getFirstBound.

Prototype

JClassType getFirstBound();

Source Link

Usage

From source file:com.cgxlib.xq.rebind.LazyGenerator.java

License:Apache License

public void generateMethod(SourceWriter sw, JMethod method, String nonLazyClass, String genClass,
        TreeLogger logger) throws UnableToCompleteException {

    JParameter[] params = method.getParameters();
    JTypeParameter gType = method.getReturnType().isTypeParameter();

    String retType = method.getReturnType().getParameterizedQualifiedSourceName();
    if (gType != null) {
        retType = "<" + gType.getParameterizedQualifiedSourceName() + " extends "
                + gType.getFirstBound().getQualifiedSourceName() + "> " + retType;
    }/*  w  w w.j  a  v a 2  s  .c o  m*/
    sw.print("public final native " + retType + " " + method.getName());
    sw.print("(");
    int argNum = 0;
    for (JParameter param : params) {
        sw.print((argNum == 0 ? "" : ", ") + param.getType().getParameterizedQualifiedSourceName() + " arg"
                + argNum);
        argNum++;
    }
    sw.println(") /*-{");

    sw.indent();
    sw.println("var self=this;");
    sw.println("this.@" + genClass + "::closures.push(");
    sw.indent();
    sw.println("function() {");
    sw.indent();
    sw.print("self.@" + genClass + "::ctx=self.@" + genClass + "::ctx.@" + nonLazyClass + "::"
            + method.getName());
    sw.print(getJSNIParams(method));
    sw.print("(");
    for (int i = 0; i < argNum; i++) {
        sw.print("arg" + i + (i < argNum - 1 ? "," : ""));
    }

    sw.print(")");
    // special case, as() needs to invoke createLazy()
    if ("as".equals(method.getName())) {
        sw.print(".createLazy()");
    }
    sw.println(";");
    sw.outdent();
    sw.println("}");
    sw.outdent();
    sw.println(");");
    sw.println("return this;");
    sw.outdent();
    sw.println("}-*/;");
}

From source file:org.fusesource.restygwt.rebind.DirectRestBaseSourceCreator.java

License:Apache License

private String createClassDeclarationGenericType() {
    String parameters = "";
    if (source instanceof JGenericType) {
        JGenericType genericType = (JGenericType) source;
        StringBuilder builder = new StringBuilder();
        builder.append("<");
        boolean first = true;
        for (JTypeParameter arg : genericType.getTypeParameters()) {
            if (!first)
                builder.append(",");
            builder.append(arg.getName());
            builder.append(" extends ");
            builder.append(arg.getFirstBound().getParameterizedQualifiedSourceName());
            first = false;/* ww  w . ja  v  a 2s . c  o  m*/
        }
        builder.append(">");
        parameters = builder.toString();
    }
    return parameters;
}