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(); }
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 MethodSpec generateConstructor(SpecModel specModel) { return MethodSpec.constructorBuilder() .addModifiers(Modifier.PUBLIC) .addParameter(ANDROID_CONTEXT_CLASS_NAME, "context") .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(); }
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 static MethodSpec buildConstructor(Class authType, String authName, boolean withGasProvider) { MethodSpec.Builder toReturn = MethodSpec.constructorBuilder() .addModifiers(Modifier.PROTECTED) .addParameter(String.class, CONTRACT_ADDRESS) .addParameter(Web3j.class, WEB3J) .addParameter(authType, authName); if (withGasProvider) { toReturn.addParameter(ContractGasProvider.class, CONTRACT_GAS_PROVIDER) .addStatement("super($N, $N, $N, $N, $N)", BINARY, CONTRACT_ADDRESS, WEB3J, authName, CONTRACT_GAS_PROVIDER); } else { toReturn.addParameter(BigInteger.class, GAS_PRICE) .addParameter(BigInteger.class, GAS_LIMIT) .addStatement("super($N, $N, $N, $N, $N, $N)", BINARY, CONTRACT_ADDRESS, WEB3J, authName, GAS_PRICE, GAS_LIMIT) .addAnnotation(Deprecated.class); } return toReturn.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()); }
private TypeSpec enumAdapter(ClassName javaType, ClassName adapterJavaType) { return TypeSpec.classBuilder(adapterJavaType.simpleName()) .superclass(enumAdapterOf(javaType)) .addModifiers(PRIVATE, STATIC, FINAL) .addMethod(MethodSpec.constructorBuilder() .addStatement("super($T.class)", javaType) .build()) .addMethod(MethodSpec.methodBuilder("fromValue") .addAnnotation(Override.class) .addModifiers(PROTECTED) .returns(javaType) .addParameter(int.class, "value") .addStatement("return $T.fromValue(value)", javaType) .build()) .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 MethodSpec builderNoArgsConstructor(NameAllocator nameAllocator, MessageType type) { MethodSpec.Builder result = MethodSpec.constructorBuilder().addModifiers(PUBLIC); for (Field field : type.fieldsAndOneOfFields()) { String fieldName = nameAllocator.get(field); CodeBlock initialValue = initialValue(field); if (initialValue != null) { result.addStatement("$L = $L", fieldName, initialValue); } } return result.build(); }
@Override public void enterRule(Rule rule) { // generates a new ephemeral unique class name for each generated rule. Only valid for the runtime of the jvm classFile = TypeSpec.classBuilder("rule$" + rule.id()) .addSuperinterface(GeneratedRule.class) .addModifiers(Modifier.FINAL, Modifier.PUBLIC) .addAnnotation(AnnotationSpec.builder(SuppressWarnings.class) .addMember("value", "$S", "unchecked") .build() ) .addMethod(MethodSpec.methodBuilder("name") .returns(String.class) .addAnnotation(Override.class) .addModifiers(Modifier.PUBLIC) .addStatement("return $S", rule.name()) .build() ); constructorBuilder = MethodSpec.constructorBuilder() .addModifiers(Modifier.PUBLIC) .addParameter(FunctionRegistry.class, "functionRegistry"); lateConstructorBlock = CodeBlock.builder(); hoistedConstantExpressions = CodeBlock.builder(); }
private MethodSpec createBindingConstructor(int sdk, boolean debuggable) { MethodSpec.Builder constructor = MethodSpec.constructorBuilder() .addAnnotation(UI_THREAD) .addModifiers(PUBLIC);
final TypeName baseAnnotation = TypeName.get(this.baseAnnotation.asType()); Strings.addClassJavadoc(classBuilder, baseAnnotation); final MethodSpec.Builder constructor = MethodSpec.constructorBuilder() .addParameter(ParameterSpec.builder(Types.CONTEXT, PARAM_0).addAnnotation(Types.NON_NULL).build()) .addJavadoc("@param $L object annotated with {@link $T}\n", PARAM_0, baseAnnotation)
public ViewBinderClassStructure addConstructor() { Layout layout = getClassDetail().getTypeElement().getAnnotation(Layout.class); NonReusable nonReusable = getClassDetail().getTypeElement().getAnnotation(NonReusable.class); boolean nullable = nonReusable != null; getClassBuilder() .addMethod(MethodSpec.constructorBuilder() .addModifiers(Modifier.PUBLIC) .addParameter(getClassDetail().getClassName(), NameStore.Variable.RESOLVER) .addStatement("super($N, $T.$L, $L)", NameStore.Variable.RESOLVER, getRClassBuilder().getLayoutClassName(), getRClassBuilder().addLayoutId(getClassDetail().getTypeElement(), layout.value()), nullable) .build()); return this; }
private MethodSpec messageFieldsConstructor(NameAllocator nameAllocator, MessageType type) { MethodSpec.Builder result = MethodSpec.constructorBuilder(); result.addModifiers(PUBLIC); result.addCode("this("); for (Field field : type.fieldsAndOneOfFields()) { TypeName javaType = fieldType(field); String fieldName = nameAllocator.get(field); ParameterSpec.Builder param = ParameterSpec.builder(javaType, fieldName); if (emitAndroidAnnotations && field.isOptional()) { param.addAnnotation(NULLABLE); } result.addParameter(param.build()); result.addCode("$L, ", fieldName); } result.addCode("$T.EMPTY);\n", BYTE_STRING); return result.build(); }
MethodSpec.constructorBuilder() .addParameter(specModel.getContextClass(), "c") .addStatement("$L = new $T(c)", RESOURCE_RESOLVER, ClassNames.RESOURCE_RESOLVER)
MethodSpec.constructorBuilder().addStatement("super($S)", specModel.getComponentName());
@Test public void testGenerateConstructorWithDependencyInjection() { final MethodSpec constructor = MethodSpec.constructorBuilder() .addModifiers(Modifier.PUBLIC) .addStatement("final Object testObject = new TestObject()") .build(); when(mDependencyInjectionHelper.generateConstructor(mSpecModelWithDI)) .thenReturn(constructor); TypeSpecDataHolder typeSpecDataHolder = generateConstructor(mSpecModelWithDI); assertThat(typeSpecDataHolder.getFieldSpecs()).isEmpty(); assertThat(typeSpecDataHolder.getMethodSpecs()).hasSize(1); assertThat(typeSpecDataHolder.getTypeSpecs()).isEmpty(); assertThat(typeSpecDataHolder.getMethodSpecs().get(0).toString()) .isEqualTo( "public Constructor() {\n" + " super(\"Test\");\n final Object testObject = new TestObject();\n" + "}\n"); } }