private MethodSpec createBindingViewDelegateConstructor() { return MethodSpec.constructorBuilder() .addJavadoc("@deprecated Use {@link #$T($T, $T)} for direct creation.\n " + "Only present for runtime invocation through {@code ButterKnife.bind()}.\n", bindingClassName, targetTypeName, CONTEXT) .addAnnotation(Deprecated.class) .addAnnotation(UI_THREAD) .addModifiers(PUBLIC) .addParameter(targetTypeName, "target") .addParameter(VIEW, "source") .addStatement(("this(target, source.getContext())")) .build(); }
@Override public CodeBlock render(int sdk) { return CodeBlock.of("target.$L = $T.loadAnimation(context, $L)", name, ANIMATION_UTILS, id.code); } }
@Override public String toString() { return bindingClassName.toString(); }
private static MethodSpec getService(String implClass, String serviceInstanceName) { return MethodSpec.methodBuilder("getService") .addAnnotation(Override.class) .addModifiers(Modifier.PROTECTED) .returns(TypeName.OBJECT) .addParameter(ParameterSpec.builder(SectionClassNames.SECTION, "section").build()) .addStatement("return (($L) section).$L", implClass, serviceInstanceName) .build(); } }
JavaFile brewJava(int sdk, boolean debuggable) { TypeSpec bindingConfiguration = createType(sdk, debuggable); return JavaFile.builder(bindingClassName.packageName(), bindingConfiguration) .addFileComment("Generated code from Butter Knife. Do not modify!") .build(); }
public static Builder anonymousClassBuilder(String typeArgumentsFormat, Object... args) { return anonymousClassBuilder(CodeBlock.builder() .add(typeArgumentsFormat, args) .build()); }
private FieldSpec(Builder builder) { this.type = checkNotNull(builder.type, "type == null"); this.name = checkNotNull(builder.name, "name == null"); this.javadoc = builder.javadoc.build(); this.annotations = Util.immutableList(builder.annotations); this.modifiers = Util.immutableSet(builder.modifiers); this.initializer = (builder.initializer == null) ? CodeBlock.builder().build() : builder.initializer; }
private JavaFile(Builder builder) { this.fileComment = builder.fileComment.build(); this.packageName = builder.packageName; this.typeSpec = builder.typeSpec; this.skipJavaLangImports = builder.skipJavaLangImports; this.staticImports = Util.immutableSet(builder.staticImports); this.indent = builder.indent; }
void emit(CodeWriter codeWriter, boolean varargs) throws IOException { codeWriter.emitAnnotations(annotations, true); codeWriter.emitModifiers(modifiers); if (varargs) { TypeName.asArray(type).emit(codeWriter, true); } else { type.emit(codeWriter); } codeWriter.emit(" $L", name); }
private CodeWriter emitBrackets(CodeWriter out, boolean varargs) throws IOException { if (isAnnotated()) { out.emit(" "); emitAnnotations(out); } if (TypeName.asArray(componentType) == null) { // Last bracket. return out.emit(varargs ? "..." : "[]"); } out.emit("[]"); return TypeName.asArray(componentType) .emitBrackets(out, varargs); }
private CodeWriter emitLeafType(CodeWriter out) throws IOException { if (TypeName.asArray(componentType) != null) { return TypeName.asArray(componentType).emitLeafType(out); } return componentType.emit(out); }
private MethodSpec createBindingConstructorForView() { MethodSpec.Builder builder = MethodSpec.constructorBuilder() .addAnnotation(UI_THREAD) .addModifiers(PUBLIC) .addParameter(targetTypeName, "target"); if (constructorNeedsView()) { builder.addStatement("this(target, target)"); } else { builder.addStatement("this(target, target.getContext())"); } return builder.build(); }
private static MethodSpec createService(String serviceInstanceName) { return MethodSpec.methodBuilder("createService") .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(ParameterSpec.builder(SectionClassNames.SECTION_CONTEXT, "context").build()) .addStatement( "$L = onCreateService(context)", serviceInstanceName) .build(); }
@Override public CodeBlock render(int sdk) { if (tintAttributeId.value != NO_RES_ID) { return CodeBlock.of("target.$L = $T.getTintedDrawable(context, $L, $L)", name, UTILS, id.code, tintAttributeId.code); } if (sdk >= 21) { return CodeBlock.of("target.$L = context.getDrawable($L)", name, id.code); } return CodeBlock.of("target.$L = $T.getDrawable(context, $L)", name, CONTEXT_COMPAT, id.code); } }
private MethodSpec createBindingConstructorForDialog() { MethodSpec.Builder builder = MethodSpec.constructorBuilder() .addAnnotation(UI_THREAD) .addModifiers(PUBLIC) .addParameter(targetTypeName, "target"); if (constructorNeedsView()) { builder.addStatement("this(target, target.getWindow().getDecorView())"); } else { builder.addStatement("this(target, target.getContext())"); } return builder.build(); }
@Override public CodeBlock render(int sdk) { CodeBlock typeface = sdk >= 26 ? CodeBlock.of("res.getFont($L)", id.code) : CodeBlock.of("$T.getFont(context, $L)", RESOURCES_COMPAT, id.code); if (style != TypefaceStyles.NORMAL) { typeface = CodeBlock.of("$1T.create($2L, $1T.$3L)", TYPEFACE, typeface, style); } return CodeBlock.of("target.$L = $L", name, typeface); } }
private MethodSpec createBindingConstructorForActivity() { MethodSpec.Builder builder = MethodSpec.constructorBuilder() .addAnnotation(UI_THREAD) .addModifiers(PUBLIC) .addParameter(targetTypeName, "target"); if (constructorNeedsView()) { builder.addStatement("this(target, target.getWindow().getDecorView())"); } else { builder.addStatement("this(target, target)"); } return builder.build(); }