Example usage for com.google.gwt.core.ext.typeinfo JMethod isConstructor

List of usage examples for com.google.gwt.core.ext.typeinfo JMethod isConstructor

Introduction

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

Prototype

JConstructor isConstructor();

Source Link

Usage

From source file:com.github.nmorel.gwtjackson.rebind.property.PropertyParser.java

License:Apache License

private static void parseMethods(TreeLogger logger, JClassType type,
        Map<String, PropertyAccessorsBuilder> propertiesMap, boolean mixin) {
    for (JMethod method : type.getMethods()) {
        if (null != method.isConstructor() || method.isStatic()
                || (type.getQualifiedSourceName().equals("java.lang.Object")
                        && method.getName().equals("getClass"))) {
            continue;
        }/*from  ww  w . j  a  v  a 2s.  c  o m*/

        if (method.getParameters().length == 0) {
            // might be a getter
            String fieldName = extractFieldNameFromGetterSetterMethodName(method.getName());
            PropertyAccessorsBuilder property = propertiesMap.get(fieldName);
            if (null == property) {
                property = new PropertyAccessorsBuilder(fieldName);
                propertiesMap.put(fieldName, property);
            }
            property.addGetter(method, mixin);
        } else if (method.getParameters().length == 1
                || (method.getParameters().length == 2 && method.isAnnotationPresent(JsonAnySetter.class))) {
            // might be a setter
            String fieldName = extractFieldNameFromGetterSetterMethodName(method.getName());
            PropertyAccessorsBuilder property = propertiesMap.get(fieldName);
            if (null == property) {
                property = new PropertyAccessorsBuilder(fieldName);
                propertiesMap.put(fieldName, property);
            }
            property.addSetter(method, mixin);
        }
    }
}

From source file:org.pentaho.mantle.rebind.CommandExecGenerator.java

License:Open Source License

private void generateMethods(SourceWriter sourceWriter) {
    sourceWriter.println();//from   ww w . j a v  a  2 s  .  c o  m
    sourceWriter.println(
            "public native String getParameterString(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println(
            "public native Integer getParameterInteger(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println(
            "public native Boolean getParameterBoolean(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println("public native Float getParameterFloat(final String paramName,"
            + "final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println("public native Double getParameterDouble(final String paramName, "
            + "final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println(
            "public native Long getParameterLong(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println("public native Short getParameterShort(final String paramName,"
            + "final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter
            .println("public void execute(final String commandName, final JavaScriptObject parameterMap) { ");
    sourceWriter.indent();

    try {
        // find Command implementors
        ArrayList<JClassType> implementingTypes = new ArrayList<JClassType>();
        JPackage pack = typeOracle.getPackage(CommandExec.class.getPackage().getName());
        JClassType commandSourceType = typeOracle.getType(Command.class.getName());

        for (JClassType type : pack.getTypes()) {
            if (type.isAssignableTo(commandSourceType)) {
                implementingTypes.add(type);
            }
        }

        sourceWriter.println("if(false){}"); // placeholder
        for (JClassType implementingType : implementingTypes) {
            if (implementingType.isAbstract()) {
                continue;
            }
            sourceWriter.println(
                    "else if(commandName.equals(\"" + implementingType.getSimpleSourceName() + "\")){");
            sourceWriter.indent();
            sourceWriter.println(
                    implementingType.getName() + " command = new " + implementingType.getName() + "();");
            for (JMethod eventMethod : implementingType.getMethods()) {
                if (eventMethod.isPublic() && !eventMethod.isStatic() && eventMethod.isConstructor() == null
                        && eventMethod.getName().startsWith("set")) {
                    String propertyName = eventMethod.getName().substring(3);
                    propertyName = propertyName.substring(0, 1).toLowerCase() + propertyName.substring(1);
                    String simpleType = implementingType.getField(propertyName).getType().getSimpleSourceName();
                    if ("string".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("command." + eventMethod.getName() + "(getParameterString(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("integer".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("command." + eventMethod.getName() + "(getParameterInteger(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("float".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("command." + eventMethod.getName() + "(getParameterFloat(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("double".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("command." + eventMethod.getName() + "(getParameterDouble(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("long".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("command." + eventMethod.getName() + "(getParameterLong(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("short".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("command." + eventMethod.getName() + "(getParameterShort(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("boolean".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("command." + eventMethod.getName() + "(getParameterBoolean(\""
                                + propertyName + "\", parameterMap));");
                    }
                }
            }

            sourceWriter.println("command.execute();");
            sourceWriter.outdent();
            sourceWriter.println("}");
        }

    } catch (Exception e) {
        // record to logger that Map generation threw an exception
        logger.log(TreeLogger.ERROR, "Error generating BindingContext!!!", e);
    }
    sourceWriter.outdent();
    sourceWriter.println("}");
}

From source file:org.pentaho.mantle.rebind.EventBusUtilGenerator.java

License:Open Source License

private void generateMethods(SourceWriter sourceWriter) {

    sourceWriter.println(/*  ww  w . j  a  va 2  s  .co m*/
            "public native void invokeEventBusJSO(final JavaScriptObject jso, final String parameterJSON)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    // unfortunately, we can obtain pairs like {"a":"undefined"} or even {"a":undefined}
    // the latter will crash the procedure, so let's try to clean up the string
    // by removing pairs with 'undefined'
    sourceWriter.println("var tmp = parameterJSON"
            // replace ("a":undefined) and ("a":"undefined") with empty space
            + ".replace(/\\\"[\\w]+\\\"\\:[ ]*(\\\")?undefined(\\\")?(,)?/g, '')"
            // remove doubled commas
            + ".replace(/,[ ]*,/, ',')"
            // remove leading and trailing commas
            + ".replace(/\\{[ ]*,/, '{')" + ".replace(/,[ ]*\\}/, '}');");
    sourceWriter.println("var p = JSON.parse(tmp);");
    sourceWriter.println("jso.call(this, p)");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println(
            "public native String getParameterString(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println(
            "public native Integer getParameterInteger(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println(
            "public native Boolean getParameterBoolean(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println("public native Float getParameterFloat(final String paramName, "
            + "final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println(
            "public native Double getParameterDouble(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println(
            "public native Long getParameterLong(final String paramName, final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    sourceWriter.println();
    sourceWriter.println("public native Short getParameterShort(final String paramName, "
            + "final JavaScriptObject parameterMap)");
    sourceWriter.println("/*-{");
    sourceWriter.indent();
    sourceWriter.println("return parameterMap[paramName];");
    sourceWriter.outdent();
    sourceWriter.println("}-*/;");

    // *********************
    // FIRE EVENT
    // *********************
    sourceWriter.println();
    sourceWriter
            .println("public void fireEvent(final String eventType, final JavaScriptObject parameterMap) { ");
    sourceWriter.indent();
    try {
        // find Command implementors
        ArrayList<JClassType> implementingTypes = new ArrayList<JClassType>();
        JPackage pack = typeOracle.getPackage(EventBusUtil.class.getPackage().getName());
        JClassType eventSourceType = typeOracle.getType(GwtEvent.class.getName());

        for (JClassType type : pack.getTypes()) {
            if (type.isAssignableTo(eventSourceType)) {
                implementingTypes.add(type);
            }
        }

        sourceWriter.println("if(false){}"); // placeholder
        for (JClassType implementingType : implementingTypes) {
            sourceWriter
                    .println("else if(eventType.equals(\"" + implementingType.getSimpleSourceName() + "\")){");
            sourceWriter.indent();
            sourceWriter
                    .println(implementingType.getName() + " event = new " + implementingType.getName() + "();");
            for (JMethod eventMethod : implementingType.getMethods()) {
                if (eventMethod.isPublic() && !eventMethod.isStatic() && eventMethod.isConstructor() == null
                        && eventMethod.getName().startsWith("set")) {
                    String propertyName = eventMethod.getName().substring(3);
                    propertyName = propertyName.substring(0, 1).toLowerCase() + propertyName.substring(1);
                    String simpleType = implementingType.getField(propertyName).getType().getSimpleSourceName();
                    if ("string".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("event." + eventMethod.getName() + "(getParameterString(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("integer".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("event." + eventMethod.getName() + "(getParameterInteger(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("float".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("event." + eventMethod.getName() + "(getParameterFloat(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("double".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("event." + eventMethod.getName() + "(getParameterDouble(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("long".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("event." + eventMethod.getName() + "(getParameterLong(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("short".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("event." + eventMethod.getName() + "(getParameterShort(\""
                                + propertyName + "\", parameterMap));");
                    } else if ("boolean".equalsIgnoreCase(simpleType)) {
                        sourceWriter.println("event." + eventMethod.getName() + "(getParameterBoolean(\""
                                + propertyName + "\", parameterMap));");
                    }
                }
            }

            sourceWriter.println("EVENT_BUS.fireEvent(event);");
            sourceWriter.outdent();
            sourceWriter.println("}");
        }

    } catch (Exception e) {
        // record to logger that Map generation threw an exception
        logger.log(TreeLogger.ERROR, "Error generating BindingContext!!!", e);
    }
    sourceWriter.outdent();
    sourceWriter.println("}");

    // *********************
    // ADD HANDLER
    // *********************
    sourceWriter.println();
    sourceWriter.println(
            "public HandlerRegistration addHandler(final String eventType, final JavaScriptObject handler) { ");
    sourceWriter.indent();
    try {
        // find Command implementors
        JPackage pack = typeOracle.getPackage(EventBusUtil.class.getPackage().getName());
        JClassType eventSourceType = typeOracle.getType(GwtEvent.class.getName());

        sourceWriter.println("if(false){return null;}"); // placeholder
        for (JClassType type : pack.getTypes()) {
            if (type.isAssignableTo(eventSourceType)) {
                addHandlerElseCondition(sourceWriter, type);
            }
        }
    } catch (Exception e) {
        // record to logger that Map generation threw an exception
        logger.log(TreeLogger.ERROR, "Error generating BindingContext!!!", e);
    }

    sourceWriter.indent();
    sourceWriter.println("return null;");

    sourceWriter.outdent();
    sourceWriter.println("}");
}

From source file:org.pentaho.mantle.rebind.EventBusUtilGenerator.java

License:Open Source License

String addHandlerParamJson(JClassType type) {
    StringBuilder json = new StringBuilder(128);
    json.append('"').append('{');
    JMethod[] methods = type.getMethods();
    for (JMethod eventMethod : methods) {

        if (eventMethod.isPublic() && !eventMethod.isStatic() && (eventMethod.isConstructor() == null)
                && !"void".equalsIgnoreCase(eventMethod.getReturnType().getSimpleSourceName())
                && !eventMethod.getName().equals("getAssociatedType")) {
            // let's add the property to JSON object
            String propertyName = StringUtils.uncapitalize(eventMethod.getName().substring(3));
            String simpleType = type.getField(propertyName).getType().getSimpleSourceName();
            if ("string".equalsIgnoreCase(simpleType)) {
                json.append(/*  www . jav a 2s .c  om*/
                        "\\\"" + propertyName + "\\\":\\\"\" + event." + eventMethod.getName() + "() + \"\\\"");
            } else {
                json.append("\\\"" + propertyName + "\\\":\" + event." + eventMethod.getName() + "() + \"");
            }
            json.append(',');
        }
    }

    int lastIndex = json.lastIndexOf(",");
    if (lastIndex == -1) {
        json.append('}');
    } else {
        json.setCharAt(lastIndex, '}');
    }
    return json.append('"').toString();
}