All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.dominokit.domino.apt.commons.DominoTypeBuilder Maven / Gradle / Ivy

package org.dominokit.domino.apt.commons;

import com.squareup.javapoet.AnnotationSpec;
import com.squareup.javapoet.TypeSpec;

import javax.annotation.Generated;
import javax.annotation.processing.Processor;
import javax.lang.model.element.Modifier;

public class DominoTypeBuilder {

    public static TypeSpec.Builder classBuilder(String name, Class processorClass) {
        return TypeSpec.classBuilder(name)
                .addAnnotation(generatedAnnotation(processorClass))
                .addModifiers(Modifier.PUBLIC)
                .addJavadoc("This is generated class, please don't modify\n");
    }

    public static TypeSpec.Builder interfaceBuilder(String name, Class processorClass) {
        return TypeSpec.interfaceBuilder(name)
                .addAnnotation(generatedAnnotation(processorClass))
                .addModifiers(Modifier.PUBLIC)
                .addJavadoc("This is generated class, please don't modify\n");
    }

    public static TypeSpec.Builder enumBuilder(String name, Class processorClass) {
        return TypeSpec.enumBuilder(name)
                .addAnnotation(generatedAnnotation(processorClass))
                .addModifiers(Modifier.PUBLIC)
                .addJavadoc("This is generated class, please don't modify\n");
    }

    private static AnnotationSpec generatedAnnotation(Class processorClass) {
        return AnnotationSpec.builder(Generated.class)
                .addMember("value", "\"" + processorClass.getCanonicalName() + "\"")
                .build();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy