Class MemoizeExtension
java.lang.Object
com.google.auto.value.extension.AutoValueExtension
com.google.auto.value.extension.memoized.processor.MemoizeExtension
@AutoService(AutoValueExtension.class)
public final class MemoizeExtension
extends AutoValueExtension
An extension that implements the
Memoized
contract.-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class com.google.auto.value.extension.AutoValueExtension
AutoValueExtension.Context
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final com.google.common.collect.ImmutableSet<String>
private static final com.squareup.javapoet.ClassName
private static final com.squareup.javapoet.AnnotationSpec
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
applicable
(AutoValueExtension.Context context) Determines whether this Extension applies to the given context.generateClass
(AutoValueExtension.Context context, String className, String classToExtend, boolean isFinal) Returns the generated source code of the class namedclassName
to extendclassToExtend
, ornull
if this extension does not generate a class in the hierarchy.private static Optional<com.squareup.javapoet.AnnotationSpec>
getLazyInitAnnotation
(Elements elements) Returns the errorprone@LazyInit
annotation if it is found on the classpath.private static com.google.common.collect.ImmutableSet<ExecutableElement>
Methods inherited from class com.google.auto.value.extension.AutoValueExtension
consumeMethods, consumeProperties, mustBeFinal
-
Field Details
-
DO_NOT_PULL_DOWN_ANNOTATIONS
-
LAZY_INIT
private static final com.squareup.javapoet.ClassName LAZY_INIT -
SUPPRESS_WARNINGS
private static final com.squareup.javapoet.AnnotationSpec SUPPRESS_WARNINGS
-
-
Constructor Details
-
MemoizeExtension
public MemoizeExtension()
-
-
Method Details
-
applicable
Description copied from class:AutoValueExtension
Determines whether this Extension applies to the given context.- Overrides:
applicable
in classAutoValueExtension
- Parameters:
context
- The Context of the code generation for this class.- Returns:
- true if this Extension should be applied in the given context. If an Extension returns false for a given class, it will not be called again during the processing of that class.
-
generateClass
public String generateClass(AutoValueExtension.Context context, String className, String classToExtend, boolean isFinal) Description copied from class:AutoValueExtension
Returns the generated source code of the class namedclassName
to extendclassToExtend
, ornull
if this extension does not generate a class in the hierarchy. If there is a generated class, it should be final ifisFinal
is true; otherwise it should be abstract. The returned string should be a complete Java class definition of the classclassName
in the packagecontext.packageName()
.The returned string will typically look like this:
package <package>; ... <finalOrAbstract> class <className> extends <classToExtend> {...}
Here,
<package>
isAutoValueExtension.Context.packageName()
;<finalOrAbstract>
is the keywordfinal
ifisFinal
is true orabstract
otherwise; and<className>
and<classToExtend>
are the values of this method's parameters of the same name.- Specified by:
generateClass
in classAutoValueExtension
- Parameters:
context
- TheAutoValueExtension.Context
of the code generation for this class.className
- The simple name of the resulting class. The returned code will be written to a file named accordingly.classToExtend
- The simple name of the direct parent of the generated class. This could be the AutoValue generated class, or a class generated as the result of another Extension.isFinal
- True if this class is the last class in the chain, meaning it should be marked as final. Otherwise it should be marked as abstract.- Returns:
- The source code of the generated class, or
null
if this extension does not generate a class in the hierarchy.
-
memoizedMethods
private static com.google.common.collect.ImmutableSet<ExecutableElement> memoizedMethods(AutoValueExtension.Context context) -
getLazyInitAnnotation
private static Optional<com.squareup.javapoet.AnnotationSpec> getLazyInitAnnotation(Elements elements) Returns the errorprone@LazyInit
annotation if it is found on the classpath.
-