Refine search
private void generate(Set<String> viewClassSet) throws IllegalAccessException, IOException { mMessager.printMessage(Diagnostic.Kind.NOTE, "生成 " + viewClassSet.size() + " 个"); for (String clazz : viewClassSet) { int lastDotIndex = clazz.lastIndexOf("."); String superPackageName = clazz.substring(0, lastDotIndex); String superClassName = clazz.substring(lastDotIndex + 1); String className = CLASS_PREFIX + superClassName; mMessager.printMessage(Diagnostic.Kind.NOTE, clazz + " ====> " + className); TypeSpec.Builder typeBuilder = TypeSpec.classBuilder(className) .addJavadoc(CLASS_JAVA_DOC) .addModifiers(Modifier.PUBLIC) .superclass(ClassName.get(superPackageName, superClassName)) .addSuperinterface(ClassName.get(PACKAGE_NAME, "BGABadgeable")) .addField(ClassName.get(PACKAGE_NAME, "BGABadgeViewHelper"), "mBadgeViewHelper", Modifier.PRIVATE); generateMethod(typeBuilder, clazz); JavaFile javaFile = JavaFile.builder(PACKAGE_NAME, typeBuilder.build()).build(); javaFile.writeTo(mFileUtils); } }
void write(String packageName, TypeSpec typeSpec, String destinationDir) throws IOException { JavaFile javaFile = JavaFile.builder(packageName, typeSpec) .indent(" ") .skipJavaLangImports(true) .build(); javaFile.writeTo(new File(destinationDir)); }
/** * Write a companion class for {@code type} that extends {@link StaticInjection}. */ private void generateStaticInjection(TypeElement type, List<Element> fields) throws IOException { ClassName typeName = ClassName.get(type); ClassName adapterClassName = adapterName(ClassName.get(type), STATIC_INJECTION_SUFFIX); TypeSpec.Builder result = TypeSpec.classBuilder(adapterClassName.simpleName()) .addOriginatingElement(type) .addJavadoc(AdapterJavadocs.STATIC_INJECTION_TYPE, type) .addModifiers(PUBLIC, FINAL) .superclass(StaticInjection.class); for (Element field : fields) { result.addField(memberBindingField(false, field)); } result.addMethod(attachMethod(null, fields, false, typeName, null, true)); result.addMethod(staticInjectMethod(fields, typeName)); String packageName = getPackage(type).getQualifiedName().toString(); JavaFile javaFile = JavaFile.builder(packageName, result.build()) .addFileComment(AdapterJavadocs.GENERATED_BY_DAGGER) .build(); javaFile.writeTo(processingEnv.getFiler()); }
private void writeJavaFile(ClassName javaTypeName, TypeSpec typeSpec, Location location) throws IOException { JavaFile.Builder builder = JavaFile.builder(javaTypeName.packageName(), typeSpec) .addFileComment("$L", "Code generated by Wire protocol buffer compiler, do not edit."); if (location != null) { builder.addFileComment("\nSource file: $L", location); } JavaFile javaFile = builder.build(); try { javaFile.writeTo(new File(generatedSourceDirectory)); } catch (IOException e) { throw new IOException("Failed to write " + javaFile.packageName + "." + javaFile.typeSpec.name + " to " + generatedSourceDirectory, e); } } }
private void createRegister(Map<String, List<String>> adapterMap) { TypeName listTypeName = ParameterizedTypeName.get(ClassName.get(List.class), mAdapter); TypeName typeName = ParameterizedTypeName.get(ClassName.get(Map.class), mString, listTypeName); FieldSpec mapField = FieldSpec.builder(typeName, "mMap", Modifier.PRIVATE).build(); .addStatement("List<$T> $LList = new $T<>()", mAdapter, group, ArrayList.class); for (String adapterName : adapterList) { ClassName className = ClassName.bestGuess(adapterName); groupCode.addStatement("$LList.add(new $T())", group, className); String className = "AdapterRegister"; TypeSpec handlerClass = TypeSpec.classBuilder(className) .addJavadoc(Constants.DOC_EDIT_WARN) .addModifiers(Modifier.PUBLIC, Modifier.FINAL) .addSuperinterface(mOnRegisterType) .addField(mapField) .addMethod(rootMethod) .build(); JavaFile javaFile = JavaFile.builder(packageName, handlerClass).build(); try { javaFile.writeTo(mFiler); } catch (IOException e) { throw new RuntimeException(e);
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(); }
@Override public void exitRule(Rule rule) { // create fields for each used function classFile.addFields(functionMembers); // create fields for hoisted constant expressions classFile.addFields(hoistedExpressionMembers); // TODO these can be shared and should potentially created by an AnnotationProcessor for each defined function instead of every rule classFile.addTypes(functionArgsHolderTypes); // resolve functions (but only do so once for each function) constructorBuilder.addStatement("// resolve used functions"); functionReferences.forEach(block -> constructorBuilder.addStatement("$L", block)); // add initializers for fields that depend on the functions being set constructorBuilder.addStatement("// function parameters"); constructorBuilder.addCode(lateConstructorBlock.build()); // all the expressions/statements that are constant at compile time constructorBuilder.addStatement("// constant expressions"); constructorBuilder.addCode(hoistedConstantExpressions.build()); classFile.addMethod(constructorBuilder.build()); generatedFile = JavaFile.builder("org.graylog.plugins.pipelineprocessor.$dynamic.rules", classFile.build()) .build(); }
ClassName moduleClassName = ClassName.get(type); ClassName adapterClassName = Util.adapterName(moduleClassName, MODULE_ADAPTER_SUFFIX); TypeSpec.Builder adapterBuilder = TypeSpec.classBuilder(adapterClassName.simpleName()) .addOriginatingElement(type) .addJavadoc(AdapterJavadocs.MODULE_TYPE, Provides.class) .superclass(ParameterizedTypeName.get(ClassName.get(ModuleAdapter.class), moduleClassName)) .addModifiers(PUBLIC, FINAL); return JavaFile.builder(adapterClassName.packageName(), adapterBuilder.build()) .addFileComment(AdapterJavadocs.GENERATED_BY_DAGGER) .build();
@Override public String brewJava() { TypeSpec.Builder classBuilder = TypeSpec.classBuilder(registryInjectionTarget.registryName) .addModifiers(Modifier.PUBLIC, Modifier.FINAL) .superclass(ClassName.get(registryInjectionTarget.superClass)); emitMapField(classBuilder); emitConstructor(classBuilder); emitRegisterMethods(classBuilder); emitPublicGetterMethod(classBuilder); emitGetFromThisRegistryMethod(classBuilder); emitGetFromGroupMethods(classBuilder); JavaFile javaFile = JavaFile.builder(registryInjectionTarget.packageName, classBuilder.build()) .addFileComment("Generated code from Toothpick. Do not modify!") .build(); return javaFile.toString(); }
public String generateCode(String typeName, String profile) throws IOException { Schema schema = schema(); JavaGenerator javaGenerator = JavaGenerator.get(schema); if (profile != null) { javaGenerator = javaGenerator.withProfile(profile(profile)); } Type type = schema.getType(typeName); TypeSpec typeSpec = javaGenerator.generateType(type); ClassName typeName1 = javaGenerator.generatedTypeName(type); return JavaFile.builder(typeName1.packageName(), typeSpec).build().toString(); }
JavaFile brewJava() { TypeName targetType = TypeVariableName.get("T"); TypeSpec.Builder builder = TypeSpec.classBuilder(injectingClassName.simpleName()) .addModifiers(Modifier.PUBLIC) .addTypeVariable(TypeVariableName.get("T", targetTypeName)) .addSuperinterface(PARAMETERS_INJECTOR) .addMethod(createInjectMethod(targetType)); // for (FiledInjecting filed : filedInjectingList) { // builder.addField(TypeName.get(filed.getTypeMirror()), filed.getName()); // } return JavaFile.builder(injectingClassName.packageName(), builder.build()) .addFileComment("Generated code from Router. Do not modify!") .build(); }
private void writeJavaFile(ClassName javaTypeName, TypeSpec typeSpec, Location location, Stopwatch stopwatch) throws IOException { JavaFile.Builder builder = JavaFile.builder(javaTypeName.packageName(), typeSpec) .addFileComment("Code generated by $L, do not edit.", CodegenSample.class.getName()); if (location != null) { builder.addFileComment("\nSource file: $L", location.path()); } JavaFile javaFile = builder.build(); try { javaFile.writeTo(new File(generatedSourceDirectory)); } catch (IOException e) { throw new IOException("Failed to write " + javaFile.packageName + "." + javaFile.typeSpec.name + " to " + generatedSourceDirectory, e); } log.info("Generated %s in %s", javaTypeName, stopwatch); }
ClassName listClassName = ClassName.get("java.util", "List"); ClassName entityClassName = ClassName.bestGuess(helperAnno.entity()); ParameterizedTypeName entityList = ParameterizedTypeName.get(listClassName, entityClassName); .addAnnotation(ClassName.bestGuess("com.crazysunj.multitypeadapter.helper.RecyclerViewAdapterHelper.RefreshMode")) .build(); .superclass(ParameterizedTypeName.get(ClassName.bestGuess(helperAnno.superObj()), entityClassName)) .addModifiers(Modifier.PUBLIC) .addMethod(ctorFirst) .addMethod(ctorSecond) .addMethod(ctorThird) TypeSpec adapterHelper = adapterHelperBuilder.build(); JavaFile.Builder javaFileBuilder = JavaFile.builder(getPackageName(typeElement), adapterHelper); javaFileBuilder.addFileComment("/**\n" + " * Copyright 2017 Sun Jian\n" + " * <p>\n" + " * limitations under the License.\n" + " */"); JavaFile javaFile = javaFileBuilder.build(); try { javaFile.writeTo(processingEnv.getFiler()); } catch (IOException e) { e.printStackTrace();
JavaFile from(ProvidersClass providersClass) throws IOException { List<MethodSpec> methodSpecs = new ArrayList<>(); for (ProvidersClass.Method method : providersClass.methods) { methodSpecs.add(getActionProvider(providersClass.className, method)); } TypeSpec typeSpec = classProviders(providersClass.className, methodSpecs); return JavaFile.builder(providersClass.className.packageName(), typeSpec) .build(); }
@Override public String brewJava() { TypeSpec.Builder binderTypeSpec = TypeSpec.classBuilder(binderClassName()).addModifiers(Modifier.PUBLIC); emitBind(binderTypeSpec); JavaFile javaFile = JavaFile.builder(target.classPackage, binderTypeSpec.build()) .addFileComment("Generated code from Dart. Do not modify!") .build(); return javaFile.toString(); }
private void writeTypeSpecToFile(@NotNull TypeSpec typeSpec, @NotNull String packageName) throws IOException { // Create the Java file JavaFile javaFile = JavaFile.builder(packageName, typeSpec).indent(" ").build(); Filer filer = processingEnv.getFiler(); // Write the Java file to disk FileGenUtils.writeToFile(javaFile, filer); }
@Override public String brewJava() { TypeSpec.Builder registryTypeSpec = TypeSpec.classBuilder(registryInjectionTarget.registryName) .addModifiers(Modifier.PUBLIC, Modifier.FINAL) .superclass(ClassName.get(registryInjectionTarget.superClass)); emitConstructor(registryTypeSpec); emitGetFactoryMethod(registryTypeSpec); JavaFile javaFile = JavaFile.builder(registryInjectionTarget.packageName, registryTypeSpec.build()) .addFileComment("Generated code from Toothpick. Do not modify!") .build(); return javaFile.toString(); }
ParameterizedTypeName mapTypeName = ParameterizedTypeName.get(ClassName.get(Map.class), ClassName.get(String.class), ParameterizedTypeName.get(ClassName.get(Class.class), WildcardTypeName.subtypeOf(Object.class))); ParameterSpec mapParameterSpec = ParameterSpec.builder(mapTypeName, "map").build(); .addSuperinterface(ClassName.get(interfaceType)) .addModifiers(Modifier.PUBLIC) .addMethod(methodHandle.build()) .addJavadoc(CLASS_JAVA_DOC) .build(); try { JavaFile.builder(APT_PACKAGE_NAME, type).build().writeTo(processingEnv.getFiler()); } catch (IOException e) { e.printStackTrace();
public void build() { MethodSpec methodSpec = MethodSpec.methodBuilder(Const.INIT_METHOD) .addModifiers(Modifier.PUBLIC, Modifier.STATIC) .returns(TypeName.VOID) .addCode(this.builder.build()) .build(); TypeSpec typeSpec = TypeSpec.classBuilder(this.className) .addModifiers(Modifier.PUBLIC) .addMethod(methodSpec) .build(); try { JavaFile.builder(Const.GEN_PKG_SERVICE, typeSpec) .build() .writeTo(filer); } catch (IOException e) { throw new RuntimeException(e); } } }