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 theMemoizedcontract.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.auto.value.extension.AutoValueExtension
AutoValueExtension.Context
-
-
Constructor Summary
Constructors Constructor Description MemoizeExtension()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanapplicable(AutoValueExtension.Context context)Determines whether this Extension applies to the given context.StringgenerateClass(AutoValueExtension.Context context, String className, String classToExtend, boolean isFinal)Returns the generated source code of the class namedclassNameto extendclassToExtend, ornullif this extension does not generate a class in the hierarchy.-
Methods inherited from class com.google.auto.value.extension.AutoValueExtension
consumeMethods, consumeProperties, mustBeFinal
-
-
-
-
Method Detail
-
applicable
public boolean applicable(AutoValueExtension.Context context)
Description copied from class:AutoValueExtensionDetermines whether this Extension applies to the given context.- Overrides:
applicablein 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:AutoValueExtensionReturns the generated source code of the class namedclassNameto extendclassToExtend, ornullif this extension does not generate a class in the hierarchy. If there is a generated class, it should be final ifisFinalis true; otherwise it should be abstract. The returned string should be a complete Java class definition of the classclassNamein 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 keywordfinalifisFinalis true orabstractotherwise; and<className>and<classToExtend>are the values of this method's parameters of the same name.- Specified by:
generateClassin classAutoValueExtension- Parameters:
context- TheAutoValueExtension.Contextof 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
nullif this extension does not generate a class in the hierarchy.
-
-