class org.ehcache.jsr107.ConfigurationMerger
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.ehcache.jsr107.ConfigurationMerger
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger LOG;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.ehcache.xml.XmlConfiguration xmlConfiguration;
    descriptor: Lorg/ehcache/xml/XmlConfiguration;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.ehcache.jsr107.Jsr107Service jsr107Service;
    descriptor: Lorg/ehcache/jsr107/Jsr107Service;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.ehcache.jsr107.Eh107CacheLoaderWriterProvider cacheLoaderWriterFactory;
    descriptor: Lorg/ehcache/jsr107/Eh107CacheLoaderWriterProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            ldc Lorg/ehcache/jsr107/ConfigurationMerger;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.ehcache.jsr107.ConfigurationMerger.LOG:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.ehcache.config.Configuration, org.ehcache.jsr107.Jsr107Service, org.ehcache.jsr107.Eh107CacheLoaderWriterProvider);
    descriptor: (Lorg/ehcache/config/Configuration;Lorg/ehcache/jsr107/Jsr107Service;Lorg/ehcache/jsr107/Eh107CacheLoaderWriterProvider;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.ehcache.jsr107.ConfigurationMerger this
        start local 1 // org.ehcache.config.Configuration ehConfig
        start local 2 // org.ehcache.jsr107.Jsr107Service jsr107Service
        start local 3 // org.ehcache.jsr107.Eh107CacheLoaderWriterProvider cacheLoaderWriterFactory
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 1 /* ehConfig */
            instanceof org.ehcache.xml.XmlConfiguration
            ifeq 4
         2: .line 66
            aload 0 /* this */
            aload 1 /* ehConfig */
            checkcast org.ehcache.xml.XmlConfiguration
            putfield org.ehcache.jsr107.ConfigurationMerger.xmlConfiguration:Lorg/ehcache/xml/XmlConfiguration;
         3: .line 67
            goto 5
         4: .line 68
      StackMap locals: org.ehcache.jsr107.ConfigurationMerger org.ehcache.config.Configuration org.ehcache.jsr107.Jsr107Service org.ehcache.jsr107.Eh107CacheLoaderWriterProvider
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.ehcache.jsr107.ConfigurationMerger.xmlConfiguration:Lorg/ehcache/xml/XmlConfiguration;
         5: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* jsr107Service */
            putfield org.ehcache.jsr107.ConfigurationMerger.jsr107Service:Lorg/ehcache/jsr107/Jsr107Service;
         6: .line 71
            aload 0 /* this */
            aload 3 /* cacheLoaderWriterFactory */
            putfield org.ehcache.jsr107.ConfigurationMerger.cacheLoaderWriterFactory:Lorg/ehcache/jsr107/Eh107CacheLoaderWriterProvider;
         7: .line 72
            return
        end local 3 // org.ehcache.jsr107.Eh107CacheLoaderWriterProvider cacheLoaderWriterFactory
        end local 2 // org.ehcache.jsr107.Jsr107Service jsr107Service
        end local 1 // org.ehcache.config.Configuration ehConfig
        end local 0 // org.ehcache.jsr107.ConfigurationMerger this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    8     0                      this  Lorg/ehcache/jsr107/ConfigurationMerger;
            0    8     1                  ehConfig  Lorg/ehcache/config/Configuration;
            0    8     2             jsr107Service  Lorg/ehcache/jsr107/Jsr107Service;
            0    8     3  cacheLoaderWriterFactory  Lorg/ehcache/jsr107/Eh107CacheLoaderWriterProvider;
    MethodParameters:
                          Name  Flags
      ehConfig                  
      jsr107Service             
      cacheLoaderWriterFactory  

  <K, V> org.ehcache.jsr107.ConfigurationMerger$ConfigHolder<K, V> mergeConfigurations(java.lang.String, Configuration<K, V>);
    descriptor: (Ljava/lang/String;LConfiguration;)Lorg/ehcache/jsr107/ConfigurationMerger$ConfigHolder;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.ehcache.jsr107.ConfigurationMerger this
         0: .line 74
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tConfiguration cannot be resolved to a type\n\tThe method initExpiryPolicy(CompleteConfiguration<K,V>) from the type ConfigurationMerger refers to the missing type CompleteConfiguration\n\tThe method initCacheLoaderWriter(CompleteConfiguration<K,V>) from the type ConfigurationMerger refers to the missing type CompleteConfiguration\n\tThe method initCacheEventListeners(CompleteConfiguration<K,V>) from the type ConfigurationMerger refers to the missing type CacheEntryListenerConfiguration\n\tCannot infer type arguments for Eh107CompleteConfiguration<>\n\tCacheException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.ehcache.jsr107.ConfigurationMerger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/jsr107/ConfigurationMerger;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;LConfiguration<TK;TV;>;)Lorg/ehcache/jsr107/ConfigurationMerger$ConfigHolder<TK;TV;>;
    MethodParameters:
               Name  Flags
      cacheName      
      configuration  

  private <K, V> org.ehcache.config.builders.CacheConfigurationBuilder<K, V> handleStoreByValue(org.ehcache.jsr107.Eh107CompleteConfiguration<K, V>, org.ehcache.config.builders.CacheConfigurationBuilder<K, V>, java.lang.String);
    descriptor: (Lorg/ehcache/jsr107/Eh107CompleteConfiguration;Lorg/ehcache/config/builders/CacheConfigurationBuilder;Ljava/lang/String;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.ehcache.jsr107.ConfigurationMerger this
        start local 1 // org.ehcache.jsr107.Eh107CompleteConfiguration jsr107Configuration
        start local 2 // org.ehcache.config.builders.CacheConfigurationBuilder builder
        start local 3 // java.lang.String cacheName
         0: .line 147
            aload 2 /* builder */
            ldc Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration;
            invokevirtual org.ehcache.config.builders.CacheConfigurationBuilder.getExistingServiceConfiguration:(Ljava/lang/Class;)Lorg/ehcache/spi/service/ServiceConfiguration;
            checkcast org.ehcache.impl.config.copy.DefaultCopierConfiguration
            astore 4 /* copierConfig */
        start local 4 // org.ehcache.impl.config.copy.DefaultCopierConfiguration copierConfig
         1: .line 148
            aload 4 /* copierConfig */
            ifnonnull 25
         2: .line 149
            aload 1 /* jsr107Configuration */
            invokevirtual org.ehcache.jsr107.Eh107CompleteConfiguration.isStoreByValue:()Z
            ifeq 26
         3: .line 150
            aload 0 /* this */
            getfield org.ehcache.jsr107.ConfigurationMerger.xmlConfiguration:Lorg/ehcache/xml/XmlConfiguration;
            ifnull 22
         4: .line 151
            ldc Lorg/ehcache/impl/config/copy/DefaultCopyProviderConfiguration;
         5: .line 152
            aload 0 /* this */
            getfield org.ehcache.jsr107.ConfigurationMerger.xmlConfiguration:Lorg/ehcache/xml/XmlConfiguration;
            invokevirtual org.ehcache.xml.XmlConfiguration.getServiceCreationConfigurations:()Ljava/util/Collection;
         6: .line 151
            invokestatic org.ehcache.core.spi.service.ServiceUtils.findSingletonAmongst:(Ljava/lang/Class;Ljava/util/Collection;)Ljava/lang/Object;
            checkcast org.ehcache.impl.config.copy.DefaultCopyProviderConfiguration
            astore 5 /* defaultCopyProviderConfiguration */
        start local 5 // org.ehcache.impl.config.copy.DefaultCopyProviderConfiguration defaultCopyProviderConfiguration
         7: .line 153
            aload 5 /* defaultCopyProviderConfiguration */
            ifnull 22
         8: .line 154
            aload 5 /* defaultCopyProviderConfiguration */
            invokevirtual org.ehcache.impl.config.copy.DefaultCopyProviderConfiguration.getDefaults:()Ljava/util/Map;
            astore 6 /* defaults */
        start local 6 // java.util.Map defaults
         9: .line 155
            aload 6 /* defaults */
            invokestatic org.ehcache.jsr107.ConfigurationMerger.handleCopierDefaultsforImmutableTypes:(Ljava/util/Map;)V
        10: .line 156
            iconst_0
            istore 7 /* matchingDefault */
        start local 7 // boolean matchingDefault
        11: .line 157
            aload 6 /* defaults */
            aload 1 /* jsr107Configuration */
            invokevirtual org.ehcache.jsr107.Eh107CompleteConfiguration.getKeyType:()Ljava/lang/Class;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 158
            iconst_1
            istore 7 /* matchingDefault */
        13: .line 159
            goto 15
        14: .line 160
      StackMap locals: org.ehcache.jsr107.ConfigurationMerger org.ehcache.jsr107.Eh107CompleteConfiguration org.ehcache.config.builders.CacheConfigurationBuilder java.lang.String org.ehcache.impl.config.copy.DefaultCopierConfiguration org.ehcache.impl.config.copy.DefaultCopyProviderConfiguration java.util.Map int
      StackMap stack:
            aload 2 /* builder */
            new org.ehcache.impl.config.copy.DefaultCopierConfiguration
            dup
            invokestatic org.ehcache.impl.copy.SerializingCopier.asCopierClass:()Ljava/lang/Class;
            getstatic org.ehcache.impl.config.copy.DefaultCopierConfiguration$Type.KEY:Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;
            invokespecial org.ehcache.impl.config.copy.DefaultCopierConfiguration.<init>:(Ljava/lang/Class;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;)V
            invokevirtual org.ehcache.config.builders.CacheConfigurationBuilder.add:(Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
            astore 2 /* builder */
        15: .line 162
      StackMap locals:
      StackMap stack:
            aload 6 /* defaults */
            aload 1 /* jsr107Configuration */
            invokevirtual org.ehcache.jsr107.Eh107CompleteConfiguration.getValueType:()Ljava/lang/Class;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 163
            iconst_1
            istore 7 /* matchingDefault */
        17: .line 164
            goto 19
        18: .line 165
      StackMap locals:
      StackMap stack:
            aload 2 /* builder */
            new org.ehcache.impl.config.copy.DefaultCopierConfiguration
            dup
            invokestatic org.ehcache.impl.copy.SerializingCopier.asCopierClass:()Ljava/lang/Class;
            getstatic org.ehcache.impl.config.copy.DefaultCopierConfiguration$Type.VALUE:Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;
            invokespecial org.ehcache.impl.config.copy.DefaultCopierConfiguration.<init>:(Ljava/lang/Class;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;)V
            invokevirtual org.ehcache.config.builders.CacheConfigurationBuilder.add:(Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
            astore 2 /* builder */
        19: .line 167
      StackMap locals:
      StackMap stack:
            iload 7 /* matchingDefault */
            ifeq 21
        20: .line 168
            getstatic org.ehcache.jsr107.ConfigurationMerger.LOG:Lorg/slf4j/Logger;
            ldc "CacheManager level copier configuration overwriting JSR-107 by-value semantics for cache {}"
            aload 3 /* cacheName */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        21: .line 170
      StackMap locals:
      StackMap stack:
            aload 2 /* builder */
            areturn
        end local 7 // boolean matchingDefault
        end local 6 // java.util.Map defaults
        end local 5 // org.ehcache.impl.config.copy.DefaultCopyProviderConfiguration defaultCopyProviderConfiguration
        22: .line 173
      StackMap locals:
      StackMap stack:
            aload 2 /* builder */
            aload 1 /* jsr107Configuration */
            invokevirtual org.ehcache.jsr107.Eh107CompleteConfiguration.getKeyType:()Ljava/lang/Class;
            aload 1 /* jsr107Configuration */
            invokevirtual org.ehcache.jsr107.Eh107CompleteConfiguration.getValueType:()Ljava/lang/Class;
            invokestatic org.ehcache.jsr107.ConfigurationMerger.addDefaultCopiers:(Lorg/ehcache/config/builders/CacheConfigurationBuilder;Ljava/lang/Class;Ljava/lang/Class;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
            astore 2 /* builder */
        23: .line 174
            getstatic org.ehcache.jsr107.ConfigurationMerger.LOG:Lorg/slf4j/Logger;
            ldc "Using default Copier for JSR-107 store-by-value cache {}"
            aload 3 /* cacheName */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        24: .line 176
            goto 26
        25: .line 177
      StackMap locals:
      StackMap stack:
            getstatic org.ehcache.jsr107.ConfigurationMerger.LOG:Lorg/slf4j/Logger;
            ldc "Cache level copier configuration overwriting JSR-107 by-value semantics for cache {}"
            aload 3 /* cacheName */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        26: .line 179
      StackMap locals:
      StackMap stack:
            aload 2 /* builder */
            areturn
        end local 4 // org.ehcache.impl.config.copy.DefaultCopierConfiguration copierConfig
        end local 3 // java.lang.String cacheName
        end local 2 // org.ehcache.config.builders.CacheConfigurationBuilder builder
        end local 1 // org.ehcache.jsr107.Eh107CompleteConfiguration jsr107Configuration
        end local 0 // org.ehcache.jsr107.ConfigurationMerger this
      LocalVariableTable:
        Start  End  Slot                              Name  Signature
            0   27     0                              this  Lorg/ehcache/jsr107/ConfigurationMerger;
            0   27     1               jsr107Configuration  Lorg/ehcache/jsr107/Eh107CompleteConfiguration<TK;TV;>;
            0   27     2                           builder  Lorg/ehcache/config/builders/CacheConfigurationBuilder<TK;TV;>;
            0   27     3                         cacheName  Ljava/lang/String;
            1   27     4                      copierConfig  Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration<*>;
            7   22     5  defaultCopyProviderConfiguration  Lorg/ehcache/impl/config/copy/DefaultCopyProviderConfiguration;
            9   22     6                          defaults  Ljava/util/Map<Ljava/lang/Class<*>;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration<*>;>;
           11   22     7                   matchingDefault  Z
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/jsr107/Eh107CompleteConfiguration<TK;TV;>;Lorg/ehcache/config/builders/CacheConfigurationBuilder<TK;TV;>;Ljava/lang/String;)Lorg/ehcache/config/builders/CacheConfigurationBuilder<TK;TV;>;
    MethodParameters:
                     Name  Flags
      jsr107Configuration  
      builder              
      cacheName            

  private static <K, V> org.ehcache.config.builders.CacheConfigurationBuilder<K, V> addDefaultCopiers(org.ehcache.config.builders.CacheConfigurationBuilder<K, V>, java.lang.Class<K>, java.lang.Class<V>);
    descriptor: (Lorg/ehcache/config/builders/CacheConfigurationBuilder;Ljava/lang/Class;Ljava/lang/Class;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.ehcache.config.builders.CacheConfigurationBuilder builder
        start local 1 // java.lang.Class keyType
        start local 2 // java.lang.Class valueType
         0: .line 184
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* immutableTypes */
        start local 3 // java.util.Set immutableTypes
         1: .line 185
            aload 3 /* immutableTypes */
            ldc Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 186
            aload 3 /* immutableTypes */
            ldc Ljava/lang/Long;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 187
            aload 3 /* immutableTypes */
            ldc Ljava/lang/Float;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 188
            aload 3 /* immutableTypes */
            ldc Ljava/lang/Double;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 189
            aload 3 /* immutableTypes */
            ldc Ljava/lang/Character;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 190
            aload 3 /* immutableTypes */
            ldc Ljava/lang/Integer;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 191
            aload 3 /* immutableTypes */
            aload 1 /* keyType */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 192
            aload 0 /* builder */
            new org.ehcache.impl.config.copy.DefaultCopierConfiguration
            dup
            ldc Lorg/ehcache/jsr107/Eh107IdentityCopier;
            getstatic org.ehcache.impl.config.copy.DefaultCopierConfiguration$Type.KEY:Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;
            invokespecial org.ehcache.impl.config.copy.DefaultCopierConfiguration.<init>:(Ljava/lang/Class;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;)V
            invokevirtual org.ehcache.config.builders.CacheConfigurationBuilder.add:(Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
            astore 0 /* builder */
         9: .line 193
            goto 11
        10: .line 194
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* builder */
            new org.ehcache.impl.config.copy.DefaultCopierConfiguration
            dup
            invokestatic org.ehcache.impl.copy.SerializingCopier.asCopierClass:()Ljava/lang/Class;
            getstatic org.ehcache.impl.config.copy.DefaultCopierConfiguration$Type.KEY:Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;
            invokespecial org.ehcache.impl.config.copy.DefaultCopierConfiguration.<init>:(Ljava/lang/Class;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;)V
            invokevirtual org.ehcache.config.builders.CacheConfigurationBuilder.add:(Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
            astore 0 /* builder */
        11: .line 197
      StackMap locals:
      StackMap stack:
            aload 3 /* immutableTypes */
            aload 2 /* valueType */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 198
            aload 0 /* builder */
            new org.ehcache.impl.config.copy.DefaultCopierConfiguration
            dup
            ldc Lorg/ehcache/jsr107/Eh107IdentityCopier;
            getstatic org.ehcache.impl.config.copy.DefaultCopierConfiguration$Type.VALUE:Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;
            invokespecial org.ehcache.impl.config.copy.DefaultCopierConfiguration.<init>:(Ljava/lang/Class;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;)V
            invokevirtual org.ehcache.config.builders.CacheConfigurationBuilder.add:(Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
            astore 0 /* builder */
        13: .line 199
            goto 15
        14: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* builder */
            new org.ehcache.impl.config.copy.DefaultCopierConfiguration
            dup
            invokestatic org.ehcache.impl.copy.SerializingCopier.asCopierClass:()Ljava/lang/Class;
            getstatic org.ehcache.impl.config.copy.DefaultCopierConfiguration$Type.VALUE:Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;
            invokespecial org.ehcache.impl.config.copy.DefaultCopierConfiguration.<init>:(Ljava/lang/Class;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;)V
            invokevirtual org.ehcache.config.builders.CacheConfigurationBuilder.add:(Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/config/builders/CacheConfigurationBuilder;
            astore 0 /* builder */
        15: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* builder */
            areturn
        end local 3 // java.util.Set immutableTypes
        end local 2 // java.lang.Class valueType
        end local 1 // java.lang.Class keyType
        end local 0 // org.ehcache.config.builders.CacheConfigurationBuilder builder
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0         builder  Lorg/ehcache/config/builders/CacheConfigurationBuilder<TK;TV;>;
            0   16     1         keyType  Ljava/lang/Class<TK;>;
            0   16     2       valueType  Ljava/lang/Class<TV;>;
            1   16     3  immutableTypes  Ljava/util/Set<Ljava/lang/Class<*>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/config/builders/CacheConfigurationBuilder<TK;TV;>;Ljava/lang/Class<TK;>;Ljava/lang/Class<TV;>;)Lorg/ehcache/config/builders/CacheConfigurationBuilder<TK;TV;>;
    MethodParameters:
           Name  Flags
      builder    
      keyType    
      valueType  

  private static void handleCopierDefaultsforImmutableTypes(java.util.Map<java.lang.Class<?>, org.ehcache.impl.config.copy.DefaultCopierConfiguration<?>>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Map defaults
         0: .line 206
            aload 0 /* defaults */
            ldc Ljava/lang/Long;
            invokestatic org.ehcache.jsr107.ConfigurationMerger.addIdentityCopierIfNoneRegistered:(Ljava/util/Map;Ljava/lang/Class;)V
         1: .line 207
            aload 0 /* defaults */
            ldc Ljava/lang/Integer;
            invokestatic org.ehcache.jsr107.ConfigurationMerger.addIdentityCopierIfNoneRegistered:(Ljava/util/Map;Ljava/lang/Class;)V
         2: .line 208
            aload 0 /* defaults */
            ldc Ljava/lang/String;
            invokestatic org.ehcache.jsr107.ConfigurationMerger.addIdentityCopierIfNoneRegistered:(Ljava/util/Map;Ljava/lang/Class;)V
         3: .line 209
            aload 0 /* defaults */
            ldc Ljava/lang/Float;
            invokestatic org.ehcache.jsr107.ConfigurationMerger.addIdentityCopierIfNoneRegistered:(Ljava/util/Map;Ljava/lang/Class;)V
         4: .line 210
            aload 0 /* defaults */
            ldc Ljava/lang/Double;
            invokestatic org.ehcache.jsr107.ConfigurationMerger.addIdentityCopierIfNoneRegistered:(Ljava/util/Map;Ljava/lang/Class;)V
         5: .line 211
            aload 0 /* defaults */
            ldc Ljava/lang/Character;
            invokestatic org.ehcache.jsr107.ConfigurationMerger.addIdentityCopierIfNoneRegistered:(Ljava/util/Map;Ljava/lang/Class;)V
         6: .line 212
            return
        end local 0 // java.util.Map defaults
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  defaults  Ljava/util/Map<Ljava/lang/Class<*>;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration<*>;>;
    Signature: (Ljava/util/Map<Ljava/lang/Class<*>;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration<*>;>;)V
    MethodParameters:
          Name  Flags
      defaults  

  private static void addIdentityCopierIfNoneRegistered(java.util.Map<java.lang.Class<?>, org.ehcache.impl.config.copy.DefaultCopierConfiguration<?>>, java.lang.Class<?>);
    descriptor: (Ljava/util/Map;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.util.Map defaults
        start local 1 // java.lang.Class clazz
         0: .line 216
            aload 0 /* defaults */
            aload 1 /* clazz */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 217
            aload 0 /* defaults */
            aload 1 /* clazz */
            new org.ehcache.impl.config.copy.DefaultCopierConfiguration
            dup
            ldc Lorg/ehcache/jsr107/Eh107IdentityCopier;
            getstatic org.ehcache.impl.config.copy.DefaultCopierConfiguration$Type.VALUE:Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;
            invokespecial org.ehcache.impl.config.copy.DefaultCopierConfiguration.<init>:(Ljava/lang/Class;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration$Type;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 219
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class clazz
        end local 0 // java.util.Map defaults
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  defaults  Ljava/util/Map<Ljava/lang/Class<*>;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration<*>;>;
            0    3     1     clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/util/Map<Ljava/lang/Class<*>;Lorg/ehcache/impl/config/copy/DefaultCopierConfiguration<*>;>;Ljava/lang/Class<*>;)V
    MethodParameters:
          Name  Flags
      defaults  
      clazz     

  <K, V> java.util.Map<CacheEntryListenerConfiguration<K, V>, org.ehcache.jsr107.ListenerResources<K, V>> initCacheEventListeners(CompleteConfiguration<K, V>);
    descriptor: (LCompleteConfiguration;)Ljava/util/Map;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.ehcache.jsr107.ConfigurationMerger this
         0: .line 221
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tCacheEntryListenerConfiguration cannot be resolved to a type\n\tCompleteConfiguration cannot be resolved to a type\n\tCacheEntryListenerConfiguration cannot be resolved to a type\n\tCacheEntryListenerConfiguration cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.ehcache.jsr107.ConfigurationMerger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/jsr107/ConfigurationMerger;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(LCompleteConfiguration<TK;TV;>;)Ljava/util/Map<LCacheEntryListenerConfiguration<TK;TV;>;Lorg/ehcache/jsr107/ListenerResources<TK;TV;>;>;
    MethodParameters:
        Name  Flags
      config  

  <K, V> org.ehcache.jsr107.Eh107Expiry<K, V> initExpiryPolicy(CompleteConfiguration<K, V>);
    descriptor: (LCompleteConfiguration;)Lorg/ehcache/jsr107/Eh107Expiry;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.ehcache.jsr107.ConfigurationMerger this
         0: .line 229
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tCompleteConfiguration cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.ehcache.jsr107.ConfigurationMerger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/jsr107/ConfigurationMerger;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(LCompleteConfiguration<TK;TV;>;)Lorg/ehcache/jsr107/Eh107Expiry<TK;TV;>;
    MethodParameters:
        Name  Flags
      config  

  <K, V> org.ehcache.jsr107.internal.Jsr107CacheLoaderWriter<K, V> initCacheLoaderWriter(CompleteConfiguration<K, V>);
    descriptor: (LCompleteConfiguration;)Lorg/ehcache/jsr107/internal/Jsr107CacheLoaderWriter;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.ehcache.jsr107.ConfigurationMerger this
         0: .line 233
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tCompleteConfiguration cannot be resolved to a type\n\tFactory cannot be resolved to a type\n\tCacheLoader cannot be resolved to a type\n\tFactory cannot be resolved to a type\n\tCacheWriter cannot be resolved to a type\n\tFactory cannot be resolved to a type\n\tCacheWriter cannot be resolved to a type\n\tCacheLoader cannot be resolved to a type\n\tCacheWriter cannot be resolved to a type\n\tCacheException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.ehcache.jsr107.ConfigurationMerger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/jsr107/ConfigurationMerger;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(LCompleteConfiguration<TK;TV;>;)Lorg/ehcache/jsr107/internal/Jsr107CacheLoaderWriter<TK;TV;>;
    MethodParameters:
        Name  Flags
      config  

  void setUpManagementAndStats(org.ehcache.core.InternalCache<?, ?>, org.ehcache.jsr107.Eh107Configuration<?, ?>);
    descriptor: (Lorg/ehcache/core/InternalCache;Lorg/ehcache/jsr107/Eh107Configuration;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.ehcache.jsr107.ConfigurationMerger this
        start local 1 // org.ehcache.core.InternalCache cache
        start local 2 // org.ehcache.jsr107.Eh107Configuration configuration
         0: .line 261
            ldc Lorg/ehcache/jsr107/config/Jsr107CacheConfiguration;
            aload 1 /* cache */
         1: .line 262
            invokeinterface org.ehcache.core.InternalCache.getRuntimeConfiguration:()Lorg/ehcache/config/CacheRuntimeConfiguration;
            invokeinterface org.ehcache.config.CacheRuntimeConfiguration.getServiceConfigurations:()Ljava/util/Collection;
         2: .line 261
            invokestatic org.ehcache.core.spi.service.ServiceUtils.findSingletonAmongst:(Ljava/lang/Class;Ljava/util/Collection;)Ljava/lang/Object;
            checkcast org.ehcache.jsr107.config.Jsr107CacheConfiguration
            astore 3 /* cacheConfiguration */
        start local 3 // org.ehcache.jsr107.config.Jsr107CacheConfiguration cacheConfiguration
         3: .line 263
            aload 0 /* this */
            aload 2 /* configuration */
            aload 3 /* cacheConfiguration */
            invokevirtual org.ehcache.jsr107.ConfigurationMerger.setupManagementAndStatsInternal:(Lorg/ehcache/jsr107/Eh107Configuration;Lorg/ehcache/jsr107/config/Jsr107CacheConfiguration;)V
         4: .line 264
            return
        end local 3 // org.ehcache.jsr107.config.Jsr107CacheConfiguration cacheConfiguration
        end local 2 // org.ehcache.jsr107.Eh107Configuration configuration
        end local 1 // org.ehcache.core.InternalCache cache
        end local 0 // org.ehcache.jsr107.ConfigurationMerger this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lorg/ehcache/jsr107/ConfigurationMerger;
            0    5     1               cache  Lorg/ehcache/core/InternalCache<**>;
            0    5     2       configuration  Lorg/ehcache/jsr107/Eh107Configuration<**>;
            3    5     3  cacheConfiguration  Lorg/ehcache/jsr107/config/Jsr107CacheConfiguration;
    Signature: (Lorg/ehcache/core/InternalCache<**>;Lorg/ehcache/jsr107/Eh107Configuration<**>;)V
    MethodParameters:
               Name  Flags
      cache          
      configuration  

  private void setupManagementAndStatsInternal(org.ehcache.jsr107.Eh107Configuration<?, ?>, org.ehcache.jsr107.config.Jsr107CacheConfiguration);
    descriptor: (Lorg/ehcache/jsr107/Eh107Configuration;Lorg/ehcache/jsr107/config/Jsr107CacheConfiguration;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // org.ehcache.jsr107.ConfigurationMerger this
        start local 1 // org.ehcache.jsr107.Eh107Configuration configuration
        start local 2 // org.ehcache.jsr107.config.Jsr107CacheConfiguration cacheConfiguration
         0: .line 267
            aload 0 /* this */
            getfield org.ehcache.jsr107.ConfigurationMerger.jsr107Service:Lorg/ehcache/jsr107/Jsr107Service;
            invokeinterface org.ehcache.jsr107.Jsr107Service.isManagementEnabledOnAllCaches:()Lorg/ehcache/jsr107/config/ConfigurationElementState;
            astore 3 /* enableManagement */
        start local 3 // org.ehcache.jsr107.config.ConfigurationElementState enableManagement
         1: .line 268
            aload 0 /* this */
            getfield org.ehcache.jsr107.ConfigurationMerger.jsr107Service:Lorg/ehcache/jsr107/Jsr107Service;
            invokeinterface org.ehcache.jsr107.Jsr107Service.isStatisticsEnabledOnAllCaches:()Lorg/ehcache/jsr107/config/ConfigurationElementState;
            astore 4 /* enableStatistics */
        start local 4 // org.ehcache.jsr107.config.ConfigurationElementState enableStatistics
         2: .line 269
            aload 2 /* cacheConfiguration */
            ifnull 9
         3: .line 270
            aload 2 /* cacheConfiguration */
            invokevirtual org.ehcache.jsr107.config.Jsr107CacheConfiguration.isManagementEnabled:()Lorg/ehcache/jsr107/config/ConfigurationElementState;
            astore 5 /* managementEnabled */
        start local 5 // org.ehcache.jsr107.config.ConfigurationElementState managementEnabled
         4: .line 271
            aload 5 /* managementEnabled */
            ifnull 6
            aload 5 /* managementEnabled */
            getstatic org.ehcache.jsr107.config.ConfigurationElementState.UNSPECIFIED:Lorg/ehcache/jsr107/config/ConfigurationElementState;
            if_acmpeq 6
         5: .line 272
            aload 5 /* managementEnabled */
            astore 3 /* enableManagement */
         6: .line 274
      StackMap locals: org.ehcache.jsr107.config.ConfigurationElementState org.ehcache.jsr107.config.ConfigurationElementState org.ehcache.jsr107.config.ConfigurationElementState
      StackMap stack:
            aload 2 /* cacheConfiguration */
            invokevirtual org.ehcache.jsr107.config.Jsr107CacheConfiguration.isStatisticsEnabled:()Lorg/ehcache/jsr107/config/ConfigurationElementState;
            astore 6 /* statisticsEnabled */
        start local 6 // org.ehcache.jsr107.config.ConfigurationElementState statisticsEnabled
         7: .line 275
            aload 6 /* statisticsEnabled */
            ifnull 9
            aload 6 /* statisticsEnabled */
            getstatic org.ehcache.jsr107.config.ConfigurationElementState.UNSPECIFIED:Lorg/ehcache/jsr107/config/ConfigurationElementState;
            if_acmpeq 9
         8: .line 276
            aload 6 /* statisticsEnabled */
            astore 4 /* enableStatistics */
        end local 6 // org.ehcache.jsr107.config.ConfigurationElementState statisticsEnabled
        end local 5 // org.ehcache.jsr107.config.ConfigurationElementState managementEnabled
         9: .line 279
      StackMap locals:
      StackMap stack:
            aload 3 /* enableManagement */
            ifnull 11
            aload 3 /* enableManagement */
            getstatic org.ehcache.jsr107.config.ConfigurationElementState.UNSPECIFIED:Lorg/ehcache/jsr107/config/ConfigurationElementState;
            if_acmpeq 11
        10: .line 280
            aload 1 /* configuration */
            aload 3 /* enableManagement */
            invokevirtual org.ehcache.jsr107.config.ConfigurationElementState.asBoolean:()Z
            invokevirtual org.ehcache.jsr107.Eh107Configuration.setManagementEnabled:(Z)V
        11: .line 282
      StackMap locals:
      StackMap stack:
            aload 4 /* enableStatistics */
            ifnull 13
            aload 4 /* enableStatistics */
            getstatic org.ehcache.jsr107.config.ConfigurationElementState.UNSPECIFIED:Lorg/ehcache/jsr107/config/ConfigurationElementState;
            if_acmpeq 13
        12: .line 283
            aload 1 /* configuration */
            aload 4 /* enableStatistics */
            invokevirtual org.ehcache.jsr107.config.ConfigurationElementState.asBoolean:()Z
            invokevirtual org.ehcache.jsr107.Eh107Configuration.setStatisticsEnabled:(Z)V
        13: .line 285
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.ehcache.jsr107.config.ConfigurationElementState enableStatistics
        end local 3 // org.ehcache.jsr107.config.ConfigurationElementState enableManagement
        end local 2 // org.ehcache.jsr107.config.Jsr107CacheConfiguration cacheConfiguration
        end local 1 // org.ehcache.jsr107.Eh107Configuration configuration
        end local 0 // org.ehcache.jsr107.ConfigurationMerger this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0                this  Lorg/ehcache/jsr107/ConfigurationMerger;
            0   14     1       configuration  Lorg/ehcache/jsr107/Eh107Configuration<**>;
            0   14     2  cacheConfiguration  Lorg/ehcache/jsr107/config/Jsr107CacheConfiguration;
            1   14     3    enableManagement  Lorg/ehcache/jsr107/config/ConfigurationElementState;
            2   14     4    enableStatistics  Lorg/ehcache/jsr107/config/ConfigurationElementState;
            4    9     5   managementEnabled  Lorg/ehcache/jsr107/config/ConfigurationElementState;
            7    9     6   statisticsEnabled  Lorg/ehcache/jsr107/config/ConfigurationElementState;
    Signature: (Lorg/ehcache/jsr107/Eh107Configuration<**>;Lorg/ehcache/jsr107/config/Jsr107CacheConfiguration;)V
    MethodParameters:
                    Name  Flags
      configuration       
      cacheConfiguration  
}
SourceFile: "ConfigurationMerger.java"
NestMembers:
  org.ehcache.jsr107.ConfigurationMerger$ConfigHolder
InnerClasses:
  public final Type = org.ehcache.impl.config.copy.DefaultCopierConfiguration$Type of org.ehcache.impl.config.copy.DefaultCopierConfiguration
  ConfigHolder = org.ehcache.jsr107.ConfigurationMerger$ConfigHolder of org.ehcache.jsr107.ConfigurationMerger