CodeBlock.Builder loadersInitializer = CodeBlock.builder() .add("super($T.asList(\n", ClassName.get(Arrays.class)) .indent(); int totalElements = loaderClasses.size(); for (int i = 0; i < totalElements; i++) {
paramsBlock.indent(); paramsBlock.add("c,\n");
private static MethodSpec generateRecordRenderDataMethod(SpecModel specModel) { final TypeName renderInfoTypeName = ClassName.bestGuess(getRenderDataImplClassName(specModel)); final CodeBlock code = CodeBlock.builder() .add("$T $L = $L != null ?\n", renderInfoTypeName, "renderInfo", "toRecycle") .indent() .add("($T) $L :\n", renderInfoTypeName, "toRecycle") .add("new $T();\n", renderInfoTypeName) .unindent() .addStatement("$L.record(this)", "renderInfo") .addStatement("return $L", "renderInfo") .build(); return MethodSpec.methodBuilder("recordRenderData") .addAnnotation(Override.class) .addModifiers(Modifier.PROTECTED) .addParameter(ClassNames.RENDER_DATA, "toRecycle") .returns(ClassNames.RENDER_DATA) .addCode(code) .build(); }
CodeBlock.builder() .add("$T $L = acquireDiff(\n", methodParamModel.getTypeName(), diffName) .indent() .add( "$L == null ? null : $L.$L,\n",
CodeBlock.Builder initializer = CodeBlock.builder() .add("$T.unmodifiableList($T.asList(\n", CLASS_COLLECTIONS, CLASS_ARRAYS) .indent(); Collections.sort(elements, new Comparator<DeepLinkAnnotatedElement>() { @Override
registerRangesModel.name); registerDelegation.indent(); for (int i = 0, size = registerRangesModel.methodParams.size(); i < size; i++) { final MethodParamModel methodParamModel = registerRangesModel.methodParams.get(i);
delegation.indent(); for (int i = 0, size = eventMethodModel.methodParams.size(); i < size; i++) { final MethodParamModel methodParamModel = eventMethodModel.methodParams.get(i);
delegation.indent(); for (int i = 0, size = eventMethodModel.methodParams.size(); i < size; i++) { final MethodParamModel methodParamModel = eventMethodModel.methodParams.get(i);
CodeBlock.builder().indent().add("\n$L", "eventTrigger.mTriggerTarget");
CodeBlock.builder().indent().add("\n$L", "eventHandler.mHasEventDispatcher");
private static MethodSpec generateCommonStaticTriggerMethodCode( ClassName contextClassName, SpecMethodModel<EventMethod, EventDeclarationModel> eventMethodModel, MethodSpec.Builder eventTriggerMethod) { EventDeclarationModel eventDeclaration = eventMethodModel.typeModel; eventTriggerMethod.addStatement( "$T _eventState = new $T()", eventDeclaration.name, // need to make these into types eventDeclaration.name); final CodeBlock.Builder paramsBlock = CodeBlock.builder(); paramsBlock.add("new Object[] {\n"); paramsBlock.indent(); addParametersToStaticTriggerMethods(contextClassName, eventMethodModel, eventTriggerMethod); addTriggerParams(contextClassName, eventMethodModel, eventTriggerMethod, paramsBlock); paramsBlock.unindent(); paramsBlock.add("}"); if (eventDeclaration.returnType == null || eventDeclaration.returnType.equals(TypeName.VOID)) { eventTriggerMethod.addStatement( "trigger.dispatchOnTrigger(_eventState, $L)", paramsBlock.build()); } else { eventTriggerMethod .addStatement( "return ($L) trigger.dispatchOnTrigger(_eventState, $L)", eventDeclaration.returnType, paramsBlock.build()) .returns(eventDeclaration.returnType); } return eventTriggerMethod.build(); }
private static CodeBlock getDelegationMethod( SpecModel specModel, CharSequence methodName, TypeName returnType, ImmutableList<ParamTypeAndName> methodParams) { final CodeBlock.Builder delegation = CodeBlock.builder(); final String sourceDelegateAccessor = SpecModelUtils.getSpecAccessor(specModel); if (returnType.equals(TypeName.VOID)) { delegation.add("$L.$L(\n", sourceDelegateAccessor, methodName); } else { delegation.add("_result = ($T) $L.$L(\n", returnType, sourceDelegateAccessor, methodName); } delegation.indent(); for (int i = 0; i < methodParams.size(); i++) { delegation.add("($T) $L", methodParams.get(i).type, methodParams.get(i).name); if (i < methodParams.size() - 1) { delegation.add(",\n"); } } delegation.add(");\n"); delegation.unindent(); return delegation.build(); }
/** Generate a delegate to the Spec that defines this onTrigger method. */ private static MethodSpec generateWorkingRangeMethodDelegate( SpecModel specModel, SpecMethodModel<EventMethod, WorkingRangeDeclarationModel> methodModel) { final MethodSpec.Builder methodSpec = MethodSpec.methodBuilder(methodModel.name.toString()) .addModifiers(Modifier.PRIVATE) .returns(TypeName.VOID) .addParameter(ClassNames.COMPONENT_CONTEXT, "c"); final CodeBlock.Builder delegation = CodeBlock.builder(); final String sourceDelegateAccessor = SpecModelUtils.getSpecAccessor(specModel); delegation.add("$L.$L(\n", sourceDelegateAccessor, methodModel.name); delegation.indent(); for (int i = 0, size = methodModel.methodParams.size(); i < size; i++) { final MethodParamModel methodParamModel = methodModel.methodParams.get(i); delegation.add( "($T) $L", methodParamModel.getTypeName(), getImplAccessor(specModel, methodParamModel)); delegation.add((i < methodModel.methodParams.size() - 1) ? ",\n" : ");\n"); } delegation.unindent(); methodSpec.addCode(delegation.build()); return methodSpec.build(); }
/** * @param controlFlow the control flow construct and its code, such as "if (foo == 5)". * Shouldn't contain braces or newline characters. */ public Builder beginControlFlow(String controlFlow, Object... args) { add(controlFlow + " {\n", args); indent(); return this; }
public Builder addInitializerBlock(CodeBlock block) { if ((kind != Kind.CLASS && kind != Kind.ENUM)) { throw new UnsupportedOperationException(kind + " can't have initializer blocks"); } initializerBlock.add("{\n") .indent() .add(block) .unindent() .add("}\n"); return this; }
/** * @param controlFlow the control flow construct and its code, such as "else if (foo == 10)". * Shouldn't contain braces or newline characters. */ public Builder nextControlFlow(String controlFlow, Object... args) { unindent(); add("} " + controlFlow + " {\n", args); indent(); return this; }