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(); }
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 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(); }
static MethodSpec generateStateContainerGetter(TypeName stateContainerClassName) { return MethodSpec.methodBuilder("getStateContainer") .addModifiers(Modifier.PROTECTED) .addAnnotation(Override.class) .returns(stateContainerClassName) .addStatement("return $N", STATE_CONTAINER_FIELD_NAME) .build(); }
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(); }
private MethodSpec buildConstructor(ControllerClassInfo controllerInfo) { ParameterSpec controllerParam = ParameterSpec .builder(controllerInfo.getControllerClassType(), "controller") .build(); return MethodSpec.constructorBuilder() .addParameter(controllerParam) .addModifiers(Modifier.PUBLIC) .addStatement("this.controller = controller") .build(); }
private MethodSpec writeInjectAdapterConstructor(ExecutableElement constructor, TypeElement type, ClassName strippedTypeName) { String key = (constructor != null) ? GeneratorKeys.get(type.asType()) : null; String membersKey = GeneratorKeys.rawMembersKey(type.asType()); boolean singleton = type.getAnnotation(Singleton.class) != null; return MethodSpec.constructorBuilder() .addModifiers(PUBLIC) .addStatement("super($S, $S, $N, $T.class)", key, membersKey, (singleton ? "IS_SINGLETON" : "NOT_SINGLETON"), strippedTypeName) .build(); }
@Override public MethodSpec generateConstructor(SpecModel specModel) { return MethodSpec.constructorBuilder() .addModifiers(Modifier.PUBLIC) .addParameter(ANDROID_CONTEXT_CLASS_NAME, "context") .build(); }
private void createConfigClass(@NonNull List<Element> elements) throws IOException { final TypeSpec.Builder classBuilder = TypeSpec.classBuilder(configName) .addSuperinterface(Serializable.class) .addSuperinterface(org.acra.config.Configuration.class) .addModifiers(Modifier.PUBLIC, Modifier.FINAL); Strings.addClassJavadoc(classBuilder, ClassName.get(baseAnnotation.asType())); final MethodSpec.Builder constructor = MethodSpec.constructorBuilder().addModifiers(Modifier.PUBLIC) .addParameter(ParameterSpec.builder(ClassName.get(PACKAGE, builderName), PARAM_0).addAnnotation(Types.NON_NULL).build()); elements.stream().filter(ConfigElement.class::isInstance).map(ConfigElement.class::cast).forEach(element -> element.addToConfig(classBuilder, constructor)); classBuilder.addMethod(constructor.build()); Strings.writeClass(processingEnv.getFiler(), classBuilder.build()); }
@Override public void addToBuilderInterface(@NonNull TypeSpec.Builder builder, @NonNull ClassName builderName) { super.addToBuilderInterface(builder, builderName); final MethodSpec.Builder setter = baseResSetter(builderName).addModifiers(Modifier.ABSTRACT); configureSetter(setter); builder.addMethod(setter.build()); }
@Override public void addSetter(@NonNull TypeSpec.Builder builder, @NonNull ClassName builderName) { super.addSetter(builder, builderName); final MethodSpec.Builder setter = baseResSetter(builderName) .addStatement("this.$L = $L.getString($L)", getName(), Strings.FIELD_CONTEXT, Strings.PREFIX_RES + WordUtils.capitalize(getName())) .addStatement("return this"); configureSetter(setter); builder.addMethod(setter.build()); }
@Override public void exitWhen(Rule rule) { final CodeBlock result = codeSnippet.getOrDefault(rule.when(), CodeBlock.of("$$when")); when.addStatement("return $L", result); classFile.addMethod(when.build()); // sanity to catch errors earlier currentMethod = null; }
default void addSetter(@NonNull TypeSpec.Builder builder, @NonNull ClassName builderName) { final MethodSpec.Builder method = baseSetter(builderName) .addStatement("this.$1L = $1L", getName()) .addStatement("return this"); configureSetter(method); builder.addMethod(method.build()); }
@Override public void addToBuilder(@NonNull TypeSpec.Builder builder, @NonNull ClassName builderName, @NonNull CodeBlock.Builder constructorAlways, @NonNull CodeBlock.Builder constructorWhenAnnotationPresent, CodeBlock.Builder constructorWhenAnnotationMissing) { final MethodSpec.Builder method = baseMethod(builderName); if (getType().equals(TypeName.VOID)) { method.addStatement("$L.$L($L)", Strings.FIELD_DELEGATE, getName(), parameters.stream().map(p -> p.name).collect(Collectors.joining(", "))) .addStatement("return this"); } else { method.addStatement("return $L.$L($L)", Strings.FIELD_DELEGATE, getName(), parameters.stream().map(p -> p.name).collect(Collectors.joining(", "))); } builder.addMethod(method.build()); }
public LoadMoreViewBinderClassStructure addConstructor() { getClassBuilder().addMethod(MethodSpec.constructorBuilder() .addModifiers(Modifier.PUBLIC) .addParameter(getClassDetail().getClassName(), NameStore.Variable.RESOLVER) .addStatement("super($N)", NameStore.Variable.RESOLVER) .build()); return this; }
private static MethodSpec generateNeedsPreviousRenderDataMethod() { return MethodSpec.methodBuilder("needsPreviousRenderData") .addAnnotation(Override.class) .addModifiers(Modifier.PROTECTED) .returns(TypeName.BOOLEAN) .addStatement("return true") .build(); }
private static MethodSpec generateExtraBuilderMethod( SpecModel specModel, BuilderMethodModel builderMethodModel) { return MethodSpec.methodBuilder(builderMethodModel.paramName) .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(builderMethodModel.paramType, builderMethodModel.paramName) .addStatement( "return super.$L($L)", builderMethodModel.paramName, builderMethodModel.paramName) .returns(getBuilderType(specModel)) .build(); }
private void onTouchEvent(TypeSpec.Builder typeBuilder) { MethodSpec methodSpec = MethodSpec.methodBuilder("onTouchEvent") .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(ClassName.get("android.view", "MotionEvent"), "event") .addStatement("return mBadgeViewHelper.onTouchEvent(event)") .returns(boolean.class) .build(); typeBuilder.addMethod(methodSpec); }
private void callSuperOnTouchEvent(TypeSpec.Builder typeBuilder) { MethodSpec methodSpec = MethodSpec.methodBuilder("callSuperOnTouchEvent") .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addParameter(ClassName.get("android.view", "MotionEvent"), "event") .addStatement("return super.onTouchEvent(event)") .returns(boolean.class) .build(); typeBuilder.addMethod(methodSpec); }
private static MethodSpec generateGetThisMethod(SpecModel specModel) { return MethodSpec.methodBuilder("getThis") .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addStatement("return this") .returns(getBuilderType(specModel)) .build(); }