List of usage examples for com.google.gwt.core.ext.typeinfo JMethod isConstructor
JConstructor isConstructor();
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();
}