Class HigherKindProcessor
java.lang.Object
javax.annotation.processing.AbstractProcessor
com.github.tonivade.purefun.processor.HigherKindProcessor
- All Implemented Interfaces:
Processor
@SupportedAnnotationTypes("com.github.tonivade.purefun.HigherKind")
public class HigherKindProcessor
extends AbstractProcessor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate static final StringFields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static Stringbounds(TypeParameterElement typeParameterElement) private JavaFileObjectcreateFile(String packageName, String className) private voidgenerate(TypeElement element) private voidgenerate1(PrintWriter writer, String packageName, String className, String typeOfName, List<? extends TypeParameterElement> list) private voidgenerate2(PrintWriter writer, String packageName, String className, String typeOfName, List<? extends TypeParameterElement> list) private voidgenerate3(PrintWriter writer, String packageName, String className, String typeOfName, List<? extends TypeParameterElement> list) private Stringprivate static StringimportClass(String className) private Stringname(TypeParameterElement typeParameterElement) private static voidprivate static voidprivate static voidnarrowK2(PrintWriter writer, String className, String params, String aType, String bType, String hkt) private static voidnarrowK3(PrintWriter writer, String className, String params, String aType, String bType, String cType, String hkt) private static StringpackageName(String packageName) booleanprocess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) private static Stringtype(TypeParameterElement type1) private static StringtypeOfClass(String typeName, String typeOfName, String type) private voidwriteTypeOf(String packageName, String className, String typeOfName, List<? extends TypeParameterElement> types) Methods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, getSupportedOptions, init, isInitialized
-
Field Details
-
GENERATED
- See Also:
-
JAVAX_ANNOTATION_GENERATED
- See Also:
-
JAVAX_ANNOTATION_PROCESSING_GENERATED
- See Also:
-
KIND
- See Also:
-
END
- See Also:
-
-
Constructor Details
-
HigherKindProcessor
public HigherKindProcessor()
-
-
Method Details
-
getSupportedSourceVersion
- Specified by:
getSupportedSourceVersionin interfaceProcessor- Overrides:
getSupportedSourceVersionin classAbstractProcessor
-
process
- Specified by:
processin interfaceProcessor- Specified by:
processin classAbstractProcessor
-
generate
- Throws:
IOException
-
writeTypeOf
private void writeTypeOf(@Nullable String packageName, String className, String typeOfName, List<? extends TypeParameterElement> types) throws IOException - Throws:
IOException
-
generate1
private void generate1(PrintWriter writer, @Nullable String packageName, String className, String typeOfName, List<? extends TypeParameterElement> list) -
name
-
generate2
private void generate2(PrintWriter writer, @Nullable String packageName, String className, String typeOfName, List<? extends TypeParameterElement> list) -
generate3
private void generate3(PrintWriter writer, @Nullable String packageName, String className, String typeOfName, List<? extends TypeParameterElement> list) -
createFile
private JavaFileObject createFile(@Nullable String packageName, String className) throws IOException - Throws:
IOException
-
generated
-
narrowK1
private static void narrowK1(PrintWriter writer, String className, String params, String aType, String hkt) -
narrowK2
-
narrowK3
-
narrowK
private static void narrowK(PrintWriter writer, String className, String types, String returnType, String param) -
typeOfClass
-
type
-
bounds
-
packageName
-
importClass
-