public abstract class org.springframework.cache.interceptor.CacheOperation$Builder
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.cache.interceptor.CacheOperation$Builder
  super_class: java.lang.Object
{
  private java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<java.lang.String> cacheNames;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private java.lang.String key;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyGenerator;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String cacheManager;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String cacheResolver;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String condition;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
         0: .line 133
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 135
            aload 0 /* this */
            ldc ""
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.name:Ljava/lang/String;
         2: .line 137
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheNames:Ljava/util/Set;
         3: .line 139
            aload 0 /* this */
            ldc ""
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.key:Ljava/lang/String;
         4: .line 141
            aload 0 /* this */
            ldc ""
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.keyGenerator:Ljava/lang/String;
         5: .line 143
            aload 0 /* this */
            ldc ""
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheManager:Ljava/lang/String;
         6: .line 145
            aload 0 /* this */
            ldc ""
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheResolver:Ljava/lang/String;
         7: .line 147
            aload 0 /* this */
            ldc ""
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.condition:Ljava/lang/String;
         8: .line 133
            return
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;

  public void setName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
        start local 1 // java.lang.String name
         0: .line 150
            aload 1 /* name */
            ldc "Name must not be empty"
            invokestatic org.springframework.util.Assert.hasText:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 151
            aload 0 /* this */
            aload 1 /* name */
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.name:Ljava/lang/String;
         2: .line 152
            return
        end local 1 // java.lang.String name
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void setCacheName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
        start local 1 // java.lang.String cacheName
         0: .line 155
            aload 1 /* cacheName */
            ldc "Cache name must not be empty"
            invokestatic org.springframework.util.Assert.hasText:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 156
            aload 0 /* this */
            aload 1 /* cacheName */
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheNames:Ljava/util/Set;
         2: .line 157
            return
        end local 1 // java.lang.String cacheName
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            0    3     1  cacheName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      cacheName  

  public void setCacheNames(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
        start local 1 // java.lang.String[] cacheNames
         0: .line 160
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            aload 1 /* cacheNames */
            arraylength
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheNames:Ljava/util/Set;
         1: .line 161
            aload 1 /* cacheNames */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: org.springframework.cache.interceptor.CacheOperation$Builder java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* cacheName */
        start local 2 // java.lang.String cacheName
         3: .line 162
            aload 2 /* cacheName */
            ldc "Cache name must be non-empty if specified"
            invokestatic org.springframework.util.Assert.hasText:(Ljava/lang/String;Ljava/lang/String;)V
         4: .line 163
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheNames:Ljava/util/Set;
            aload 2 /* cacheName */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String cacheName
         5: .line 161
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 165
            return
        end local 1 // java.lang.String[] cacheNames
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            0    8     1  cacheNames  [Ljava/lang/String;
            3    5     2   cacheName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      cacheNames  

  public java.util.Set<java.lang.String> getCacheNames();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
         0: .line 168
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheNames:Ljava/util/Set;
            areturn
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public void setKey(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
        start local 1 // java.lang.String key
         0: .line 172
            aload 1 /* key */
            ldc "Key must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 173
            aload 0 /* this */
            aload 1 /* key */
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.key:Ljava/lang/String;
         2: .line 174
            return
        end local 1 // java.lang.String key
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            0    3     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  public java.lang.String getKey();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
         0: .line 177
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.key:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;

  public java.lang.String getKeyGenerator();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
         0: .line 181
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.keyGenerator:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;

  public java.lang.String getCacheManager();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
         0: .line 185
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheManager:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;

  public java.lang.String getCacheResolver();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
         0: .line 189
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheResolver:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;

  public void setKeyGenerator(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
        start local 1 // java.lang.String keyGenerator
         0: .line 193
            aload 1 /* keyGenerator */
            ldc "KeyGenerator name must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 194
            aload 0 /* this */
            aload 1 /* keyGenerator */
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.keyGenerator:Ljava/lang/String;
         2: .line 195
            return
        end local 1 // java.lang.String keyGenerator
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            0    3     1  keyGenerator  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      keyGenerator  

  public void setCacheManager(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
        start local 1 // java.lang.String cacheManager
         0: .line 198
            aload 1 /* cacheManager */
            ldc "CacheManager name must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 199
            aload 0 /* this */
            aload 1 /* cacheManager */
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheManager:Ljava/lang/String;
         2: .line 200
            return
        end local 1 // java.lang.String cacheManager
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            0    3     1  cacheManager  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      cacheManager  

  public void setCacheResolver(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
        start local 1 // java.lang.String cacheResolver
         0: .line 203
            aload 1 /* cacheResolver */
            ldc "CacheResolver name must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 204
            aload 0 /* this */
            aload 1 /* cacheResolver */
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheResolver:Ljava/lang/String;
         2: .line 205
            return
        end local 1 // java.lang.String cacheResolver
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            0    3     1  cacheResolver  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      cacheResolver  

  public void setCondition(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
        start local 1 // java.lang.String condition
         0: .line 208
            aload 1 /* condition */
            ldc "Condition must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 209
            aload 0 /* this */
            aload 1 /* condition */
            putfield org.springframework.cache.interceptor.CacheOperation$Builder.condition:Ljava/lang/String;
         2: .line 210
            return
        end local 1 // java.lang.String condition
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            0    3     1  condition  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      condition  

  protected java.lang.StringBuilder getOperationDescription();
    descriptor: ()Ljava/lang/StringBuilder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
         0: .line 217
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* result */
        start local 1 // java.lang.StringBuilder result
         1: .line 218
            aload 1 /* result */
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 219
            aload 1 /* result */
            ldc "] caches="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheNames:Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         3: .line 220
            aload 1 /* result */
            ldc " | key='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.key:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 221
            aload 1 /* result */
            ldc "' | keyGenerator='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.keyGenerator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 222
            aload 1 /* result */
            ldc "' | cacheManager='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheManager:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 223
            aload 1 /* result */
            ldc "' | cacheResolver='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.cacheResolver:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 224
            aload 1 /* result */
            ldc "' | condition='"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.cache.interceptor.CacheOperation$Builder.condition:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 225
            aload 1 /* result */
            areturn
        end local 1 // java.lang.StringBuilder result
        end local 0 // org.springframework.cache.interceptor.CacheOperation$Builder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/springframework/cache/interceptor/CacheOperation$Builder;
            1    9     1  result  Ljava/lang/StringBuilder;

  public abstract org.springframework.cache.interceptor.CacheOperation build();
    descriptor: ()Lorg/springframework/cache/interceptor/CacheOperation;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
}
SourceFile: "CacheOperation.java"
NestHost: org.springframework.cache.interceptor.CacheOperation
InnerClasses:
  public abstract Builder = org.springframework.cache.interceptor.CacheOperation$Builder of org.springframework.cache.interceptor.CacheOperation