Class MemoizeExtension.Generator.MethodOverrider

  • Enclosing class:
    MemoizeExtension.Generator

    private final class MemoizeExtension.Generator.MethodOverrider
    extends java.lang.Object
    Determines the required fields and overriding method for a @Memoized method.
    • Field Detail

      • method

        private final javax.lang.model.element.ExecutableElement method
      • override

        private final com.squareup.javapoet.MethodSpec.Builder override
      • cacheField

        private final com.squareup.javapoet.FieldSpec cacheField
      • fields

        private final com.google.common.collect.ImmutableList.Builder<com.squareup.javapoet.FieldSpec> fields
    • Constructor Detail

      • MethodOverrider

        MethodOverrider​(javax.lang.model.element.ExecutableElement method)
    • Method Detail

      • fields

        java.lang.Iterable<com.squareup.javapoet.FieldSpec> fields()
        The fields that should be added to the subclass.
      • method

        com.squareup.javapoet.MethodSpec method()
        The overriding method that should be added to the subclass.
      • validate

        private void validate()
      • checkIllegalModifier

        private void checkIllegalModifier​(javax.lang.model.element.Modifier modifier)
      • printMessage

        private void printMessage​(javax.tools.Diagnostic.Kind kind,
                                  java.lang.String format,
                                  java.lang.Object... args)
      • overridesObjectMethod

        private boolean overridesObjectMethod​(java.lang.String methodName)
      • objectMethod

        private javax.lang.model.element.ExecutableElement objectMethod​(java.lang.String methodName)
      • pullDownMethodAnnotation

        private boolean pullDownMethodAnnotation​(javax.lang.model.element.AnnotationMirror annotation)
      • buildCacheField

        private com.squareup.javapoet.FieldSpec buildCacheField​(com.squareup.javapoet.TypeName type,
                                                                java.lang.String name)
        Builds a FieldSpec for use in property caching. Field will be private volatile and have the given type and name. If the @LazyInit annotation is available it is added as well.