Search in sources :

Example 71 with ClassName

use of com.squareup.javapoet.ClassName in project requery by requery.

the class ModelGenerator method generate.

@Override
public void generate() throws IOException {
    ClassName typeName = ClassName.get(packageName, "Models");
    TypeSpec.Builder type = TypeSpec.classBuilder(typeName).addModifiers(Modifier.PUBLIC).addMethod(MethodSpec.constructorBuilder().addModifiers(Modifier.PRIVATE).build());
    CodeGeneration.addGeneratedAnnotation(processingEnvironment, type);
    Map<String, Set<EntityDescriptor>> models = new HashMap<>();
    entities.forEach(entity -> models.computeIfAbsent(entity.modelName(), key -> new HashSet<>()).add(entity));
    for (String model : models.keySet()) {
        Set<EntityDescriptor> types = models.get(model);
        FieldSpec.Builder field = FieldSpec.builder(ClassName.get(EntityModel.class), model.toUpperCase(), Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL);
        CodeBlock.Builder fieldType = CodeBlock.builder();
        fieldType.add("new $T($S)\n", ClassName.get(EntityModelBuilder.class), model);
        types.forEach(e -> fieldType.add(".addType($T.$L)\n", ClassName.bestGuess(e.typeName().toString()), EntityGenerator.TYPE_NAME));
        fieldType.add(".build()");
        field.initializer("$L", fieldType.build());
        type.addField(field.build());
    }
    CodeGeneration.writeType(processingEnvironment, typeName.packageName(), type.build());
}
Also used : EntityModelBuilder(io.requery.meta.EntityModelBuilder) Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) EntityModel(io.requery.meta.EntityModel) CodeBlock(com.squareup.javapoet.CodeBlock) FieldSpec(com.squareup.javapoet.FieldSpec) ClassName(com.squareup.javapoet.ClassName) TypeSpec(com.squareup.javapoet.TypeSpec)

Example 72 with ClassName

use of com.squareup.javapoet.ClassName in project storio by pushtorefresh.

the class GetResolverGenerator method generateJavaFile.

@NotNull
public JavaFile generateJavaFile(@NotNull final StorIOContentResolverTypeMeta storIOContentResolverTypeMeta) {
    final ClassName storIOContentResolverTypeClassName = ClassName.get(storIOContentResolverTypeMeta.packageName, storIOContentResolverTypeMeta.simpleName);
    final TypeSpec getResolver = TypeSpec.classBuilder(generateName(storIOContentResolverTypeMeta)).addJavadoc("Generated resolver for Get Operation\n").addModifiers(PUBLIC).superclass(ParameterizedTypeName.get(ClassName.get("com.pushtorefresh.storio.contentresolver.operations.get", "DefaultGetResolver"), storIOContentResolverTypeClassName)).addMethod(storIOContentResolverTypeMeta.needCreator ? createMapFromCursorWithCreatorMethodSpec(storIOContentResolverTypeMeta, storIOContentResolverTypeClassName) : createMapFromCursorMethodSpec(storIOContentResolverTypeMeta, storIOContentResolverTypeClassName)).build();
    return JavaFile.builder(storIOContentResolverTypeMeta.packageName, getResolver).indent(INDENT).build();
}
Also used : ClassName(com.squareup.javapoet.ClassName) TypeSpec(com.squareup.javapoet.TypeSpec) NotNull(org.jetbrains.annotations.NotNull)

Example 73 with ClassName

use of com.squareup.javapoet.ClassName in project storio by pushtorefresh.

the class PutResolverGenerator method generateJavaFile.

@NotNull
public JavaFile generateJavaFile(@NotNull final StorIOContentResolverTypeMeta storIOContentResolverTypeMeta) {
    final ClassName storIOContentResolverTypeClassName = ClassName.get(storIOContentResolverTypeMeta.packageName, storIOContentResolverTypeMeta.simpleName);
    final TypeSpec putResolver = TypeSpec.classBuilder(generateName(storIOContentResolverTypeMeta)).addJavadoc("Generated resolver for Put Operation\n").addModifiers(PUBLIC).superclass(ParameterizedTypeName.get(ClassName.get("com.pushtorefresh.storio.contentresolver.operations.put", "DefaultPutResolver"), storIOContentResolverTypeClassName)).addMethod(createMapToInsertQueryMethodSpec(storIOContentResolverTypeMeta, storIOContentResolverTypeClassName)).addMethod(createMapToUpdateQueryMethodSpec(storIOContentResolverTypeMeta, storIOContentResolverTypeClassName)).addMethod(createMapToContentValuesMethodSpec(storIOContentResolverTypeMeta, storIOContentResolverTypeClassName)).build();
    return JavaFile.builder(storIOContentResolverTypeMeta.packageName, putResolver).indent(INDENT).build();
}
Also used : ClassName(com.squareup.javapoet.ClassName) TypeSpec(com.squareup.javapoet.TypeSpec) NotNull(org.jetbrains.annotations.NotNull)

Example 74 with ClassName

use of com.squareup.javapoet.ClassName in project storio by pushtorefresh.

the class GetResolverGenerator method generateJavaFile.

@NotNull
public JavaFile generateJavaFile(@NotNull StorIOSQLiteTypeMeta storIOSQLiteTypeMeta) {
    final ClassName storIOSQLiteTypeClassName = ClassName.get(storIOSQLiteTypeMeta.packageName, storIOSQLiteTypeMeta.simpleName);
    final TypeSpec getResolver = TypeSpec.classBuilder(generateName(storIOSQLiteTypeMeta)).addJavadoc("Generated resolver for Get Operation.\n").addModifiers(PUBLIC).superclass(ParameterizedTypeName.get(ClassName.get("com.pushtorefresh.storio.sqlite.operations.get", "DefaultGetResolver"), storIOSQLiteTypeClassName)).addMethod(storIOSQLiteTypeMeta.needCreator ? createMapFromCursorWithCreatorMethodSpec(storIOSQLiteTypeMeta, storIOSQLiteTypeClassName) : createMapFromCursorMethodSpec(storIOSQLiteTypeMeta, storIOSQLiteTypeClassName)).build();
    return JavaFile.builder(storIOSQLiteTypeMeta.packageName, getResolver).indent(INDENT).build();
}
Also used : ClassName(com.squareup.javapoet.ClassName) TypeSpec(com.squareup.javapoet.TypeSpec) NotNull(org.jetbrains.annotations.NotNull)

Example 75 with ClassName

use of com.squareup.javapoet.ClassName in project storio by pushtorefresh.

the class PutResolverGenerator method generateJavaFile.

@NotNull
public JavaFile generateJavaFile(@NotNull StorIOSQLiteTypeMeta storIOSQLiteTypeMeta) {
    final ClassName storIOSQLiteTypeClassName = ClassName.get(storIOSQLiteTypeMeta.packageName, storIOSQLiteTypeMeta.simpleName);
    final TypeSpec putResolver = TypeSpec.classBuilder(generateName(storIOSQLiteTypeMeta)).addJavadoc("Generated resolver for Put Operation.\n").addModifiers(PUBLIC).superclass(ParameterizedTypeName.get(ClassName.get("com.pushtorefresh.storio.sqlite.operations.put", "DefaultPutResolver"), storIOSQLiteTypeClassName)).addMethod(createMapToInsertQueryMethodSpec(storIOSQLiteTypeMeta, storIOSQLiteTypeClassName)).addMethod(createMapToUpdateQueryMethodSpec(storIOSQLiteTypeMeta, storIOSQLiteTypeClassName)).addMethod(createMapToContentValuesMethodSpec(storIOSQLiteTypeMeta, storIOSQLiteTypeClassName)).build();
    return JavaFile.builder(storIOSQLiteTypeMeta.packageName, putResolver).indent(INDENT).build();
}
Also used : ClassName(com.squareup.javapoet.ClassName) TypeSpec(com.squareup.javapoet.TypeSpec) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

ClassName (com.squareup.javapoet.ClassName)89 TypeSpec (com.squareup.javapoet.TypeSpec)56 MethodSpec (com.squareup.javapoet.MethodSpec)37 TypeElement (javax.lang.model.element.TypeElement)32 ParameterizedTypeName (com.squareup.javapoet.ParameterizedTypeName)30 TypeName (com.squareup.javapoet.TypeName)25 Builder (com.squareup.javapoet.TypeSpec.Builder)16 TypeMirror (javax.lang.model.type.TypeMirror)15 Element (javax.lang.model.element.Element)12 ExecutableElement (javax.lang.model.element.ExecutableElement)11 NotNull (org.jetbrains.annotations.NotNull)10 CodeBlock (com.squareup.javapoet.CodeBlock)9 FieldSpec (com.squareup.javapoet.FieldSpec)9 ArrayList (java.util.ArrayList)9 VariableElement (javax.lang.model.element.VariableElement)9 Map (java.util.Map)8 JavaFile (com.squareup.javapoet.JavaFile)7 WildcardTypeName (com.squareup.javapoet.WildcardTypeName)7 IOException (java.io.IOException)7 ProtoType (com.squareup.wire.schema.ProtoType)6