List of usage examples for com.google.gwt.core.ext.typeinfo JAbstractMethod getJsniSignature
String getJsniSignature();
From source file:com.github.nmorel.gwtjackson.rebind.BeanJsonDeserializerCreator.java
License:Apache License
private MethodSpec buildInstanceBuilderCreateMethod() { JAbstractMethod method = beanInfo.getCreatorMethod().get(); MethodSpec.Builder builder = MethodSpec.methodBuilder("create").addModifiers(Modifier.PRIVATE) .returns(typeName(beanInfo.getType())); StringBuilder parametersNameBuilder = new StringBuilder(); int index = 0; for (Map.Entry<String, JParameter> parameterEntry : beanInfo.getCreatorParameters().entrySet()) { if (index > 0) { parametersNameBuilder.append(", "); }/*from w w w. j av a 2s .c om*/ PropertyInfo property = properties.get(parameterEntry.getKey()); String variableName = String.format(INSTANCE_BUILDER_VARIABLE_FORMAT, index++); builder.addParameter(typeName(property.getType()), variableName); parametersNameBuilder.append(variableName); } String parametersName = parametersNameBuilder.toString(); if (method.isPrivate() || (!method.isPublic() && !mapperInfo.isSamePackage())) { // private method, we use jsni builder.addModifiers(Modifier.NATIVE); builder.addCode(JsniCodeBlockBuilder.builder() .addStatement("return $L($L)", method.getJsniSignature(), parametersName).build()); } else { if (null != method.isConstructor()) { builder.addStatement("return new $T($L)", typeName(beanInfo.getType()), parametersName); } else { builder.addStatement("return $T.$L($L)", typeName(beanInfo.getType()), method.getName(), parametersName); } } return builder.build(); }