use of com.squareup.javapoet.ParameterSpec in project web3sdk by FISCO-BCOS.
the class SolidityFunctionWrapper method createMappedParameterTypes.
private String createMappedParameterTypes(AbiDefinition.NamedType namedType) {
String name = namedType.getName();
String type = namedType.getType();
AbiDefinition.NamedType.Type innerType = new AbiDefinition.NamedType.Type(type);
ParameterSpec parameterSpec = ParameterSpec.builder(buildTypeName(type), name).build();
if (parameterSpec.type instanceof ParameterizedTypeName) {
List<TypeName> typeNames = ((ParameterizedTypeName) parameterSpec.type).typeArguments;
if (typeNames.size() != 1) {
throw new UnsupportedOperationException("Only a single parameterized type is supported");
} else {
String parameterSpecType = parameterSpec.type.toString();
TypeName typeName = typeNames.get(0);
String typeMapInput = typeName + ".class";
if (typeName instanceof ParameterizedTypeName) {
List<TypeName> typeArguments = ((ParameterizedTypeName) typeName).typeArguments;
if (typeArguments.size() != 1) {
throw new UnsupportedOperationException("Only a single parameterized type is supported");
}
TypeName innerTypeName = typeArguments.get(0);
parameterSpecType = ((ParameterizedTypeName) parameterSpec.type).rawType.toString();
typeMapInput = ((ParameterizedTypeName) typeName).rawType + ".class, " + innerTypeName + ".class";
}
if (innerType.dynamicArray()) {
// dynamic array
return parameterSpec.name + ".isEmpty()?org.fisco.bcos.web3j.abi.datatypes.DynamicArray.empty" + "(\"" + type + "\"):" + "new " + parameterSpecType + "(\n" + " org.fisco.bcos.web3j.abi.Utils.typeMap(" + parameterSpec.name + ", " + typeMapInput + "))";
} else {
// static array
return "new " + parameterSpecType + "(\n" + " org.fisco.bcos.web3j.abi.Utils.typeMap(" + parameterSpec.name + ", " + typeMapInput + "))";
}
}
} else {
return "new " + parameterSpec.type + "(" + parameterSpec.name + ")";
}
}
use of com.squareup.javapoet.ParameterSpec in project epoxy by airbnb.
the class ClassToGenerateInfo method buildParamList.
private List<ParameterSpec> buildParamList(List<? extends VariableElement> params) {
List<ParameterSpec> result = new ArrayList<>();
for (VariableElement param : params) {
Builder builder = ParameterSpec.builder(TypeName.get(param.asType()), param.getSimpleName().toString());
for (AnnotationMirror annotation : param.getAnnotationMirrors()) {
builder.addAnnotation(AnnotationSpec.get(annotation));
}
result.add(builder.build());
}
return result;
}
use of com.squareup.javapoet.ParameterSpec in project epoxy by airbnb.
the class EpoxyProcessor method generateParams.
private void generateParams(StringBuilder statementBuilder, List<ParameterSpec> params) {
boolean first = true;
for (ParameterSpec param : params) {
if (!first) {
statementBuilder.append(", ");
}
first = false;
statementBuilder.append(param.name);
}
statementBuilder.append(")");
}
use of com.squareup.javapoet.ParameterSpec in project glide by bumptech.
the class RequestOptionsGenerator method generateMethodsForRequestOptionsExtensionDeprecated.
private List<MethodAndStaticVar> generateMethodsForRequestOptionsExtensionDeprecated(ExecutableElement element) {
int overrideType = processorUtil.getOverrideType(element);
String methodName = element.getSimpleName().toString();
MethodSpec.Builder builder = MethodSpec.methodBuilder(methodName).addModifiers(Modifier.PUBLIC).addJavadoc(processorUtil.generateSeeMethodJavadoc(element)).varargs(element.isVarArgs()).returns(glideOptionsName);
// The 0th element is expected to be a RequestOptions object.
List<? extends VariableElement> paramElements = element.getParameters().subList(1, element.getParameters().size());
List<ParameterSpec> parameters = ProcessorUtil.getParameters(paramElements);
builder.addParameters(parameters);
// Generates the String and list of arguments to pass in when calling this method or super.
// IE centerCrop(context) creates methodLiterals="%L" and methodArgs=[centerCrop, context].
List<Object> methodArgs = new ArrayList<>();
methodArgs.add(element.getSimpleName().toString());
StringBuilder methodLiterals = new StringBuilder();
if (!parameters.isEmpty()) {
for (ParameterSpec parameter : parameters) {
methodLiterals.append("$L, ");
methodArgs.add(parameter.name);
}
methodLiterals = new StringBuilder(methodLiterals.substring(0, methodLiterals.length() - 2));
}
builder.beginControlFlow("if (isAutoCloneEnabled())").addStatement("return clone().$N(" + methodLiterals + ")", methodArgs.toArray(new Object[0])).endControlFlow();
// Add the correct super() call.
if (overrideType == OVERRIDE_EXTEND) {
String callSuper = "super.$L(" + methodLiterals + ")";
builder.addStatement(callSuper, methodArgs.toArray(new Object[0])).addJavadoc(processorUtil.generateSeeMethodJavadoc(requestOptionsName, methodName, paramElements)).addAnnotation(Override.class);
}
// Adds: <AnnotatedClass>.<thisMethodName>(RequestOptions<?>, <arg1>, <arg2>, <argN>);
List<Object> args = new ArrayList<>();
StringBuilder code = new StringBuilder("$T.$L($L, ");
args.add(ClassName.get(element.getEnclosingElement().asType()));
args.add(element.getSimpleName().toString());
args.add("this");
if (!parameters.isEmpty()) {
for (ParameterSpec parameter : parameters) {
code.append("$L, ");
args.add(parameter.name);
}
}
code = new StringBuilder(code.substring(0, code.length() - 2));
code.append(")");
builder.addStatement(code.toString(), args.toArray(new Object[0]));
builder.addStatement("return this").addAnnotation(AnnotationSpec.builder(CHECK_RESULT_CLASS_NAME).build()).addAnnotation(nonNull());
List<MethodAndStaticVar> result = new ArrayList<>();
result.add(new MethodAndStaticVar(builder.build()));
MethodAndStaticVar methodAndVar = generateStaticMethodEquivalentForExtensionMethod(element);
if (methodAndVar != null) {
result.add(methodAndVar);
}
return result;
}
use of com.squareup.javapoet.ParameterSpec in project glide by bumptech.
the class RequestOptionsGenerator method generateRequestOptionOverride.
private MethodSpec generateRequestOptionOverride(ExecutableElement methodToOverride) {
MethodSpec.Builder result = ProcessorUtil.overriding(methodToOverride).returns(glideOptionsName).addModifiers(Modifier.FINAL);
result.addCode(CodeBlock.builder().add("return ($T) super.$N(", glideOptionsName, methodToOverride.getSimpleName()).add(FluentIterable.from(result.build().parameters).transform(new Function<ParameterSpec, String>() {
@Override
public String apply(ParameterSpec input) {
return input.name;
}
}).join(Joiner.on(", "))).add(");\n").build());
if (methodToOverride.getSimpleName().toString().equals("transforms")) {
result.addAnnotation(SafeVarargs.class).addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "$S", "varargs").build());
}
for (AnnotationMirror mirror : methodToOverride.getAnnotationMirrors()) {
result.addAnnotation(AnnotationSpec.get(mirror));
}
return result.build();
}
Aggregations