docs: public void batchOnInvalidate(String template, int cause, int locality, int source, int dels) {
          final String methodName = "batchOnInvalidate()";
  
          CacheStatsModule csm = null;
          if ((csm = getCSM(template)) == null) {
              return;
          }
          if (tc.isDebugEnabled())
              Tr.debug(tc, methodName + " cacheName=" + _sCacheName + " template=" + template + " cause=" + cause + " locality=" + locality
                      + " source=" + source + " delete=" + dels + " disk=" + _csmDisk + " parentEnable=" + _enable + " " + this);
          switch (cause) {
          case DIRECT:
              if (csm._enable && csm._explicitInvalidationCount != null)
                  csm._explicitInvalidationCount.increment(dels);
              switch (locality) {
              case MEMORY:
                  if (csm._enable) {
                      if (csm._explicitMemoryInvalidationCount != null)
                          csm._explicitMemoryInvalidationCount.increment(dels);
                      if (csm._inMemoryAndDiskCacheEntryCount != null)
                          csm._inMemoryAndDiskCacheEntryCount.decrement(dels);
                  }
                  break;
              case DISK:
                  if (_csmDisk != null && _csmDisk._enable && _csmDisk._explicitInvalidationsFromDisk != null) {
                      _csmDisk._explicitInvalidationsFromDisk.increment(dels);
                  }
                  if (csm._enable) {
                      if (csm._explicitDiskInvalidationCount != null)
                          csm._explicitDiskInvalidationCount.increment(dels);
                      if (csm._inMemoryAndDiskCacheEntryCount != null)
                          csm._inMemoryAndDiskCacheEntryCount.decrement(dels);
                  }
                  break;
              default:
                  break;
              }
              switch (source) {
              case LOCAL:
                  if (csm._enable && csm._localExplicitInvalidationCount != null)
                      csm._localExplicitInvalidationCount.increment(dels);
                  break;
              case REMOTE:
                  if (csm._enable && csm._remoteExplicitInvalidationCount != null)
                      csm._remoteExplicitInvalidationCount.increment(dels);
                  break;
              default:
                  break;
              }
              break;
          case LRU:
              if (csm._enable && csm._lruInvalidationCount != null)
                  csm._lruInvalidationCount.increment(dels);
              if (locality != DISK) {
                  if (csm._enable && csm._inMemoryAndDiskCacheEntryCount != null)
                      csm._inMemoryAndDiskCacheEntryCount.decrement(dels);
              }
              break;
          case TIMEOUT:
              if (_csmDisk != null && locality == DISK) {
                  if (_csmDisk._enable && _csmDisk._timeoutInvalidationsFromDisk != null) {
                      _csmDisk._timeoutInvalidationsFromDisk.increment(dels);
                  }
              }
              if (csm._enable) {
                  if (csm._timeoutInvalidationCount != null)
                      csm._timeoutInvalidationCount.increment(dels);
                  if (csm._inMemoryAndDiskCacheEntryCount != null)
                      csm._inMemoryAndDiskCacheEntryCount.decrement(dels);
              }
              break;
          case DISK_GARBAGE_COLLECTOR:
              if (_csmDisk != null && _csmDisk._enable && _csmDisk._garbageCollectorInvalidationsFromDisk != null) {
                  _csmDisk._garbageCollectorInvalidationsFromDisk.increment(dels);
              }
              if (csm._enable && csm._inMemoryAndDiskCacheEntryCount != null) {
                  csm._inMemoryAndDiskCacheEntryCount.decrement(dels);
              }
              break;
          case DISK_OVERFLOW:
              if (_csmDisk != null && _csmDisk._enable && _csmDisk._overflowInvalidationsFromDisk != null) {
                  _csmDisk._overflowInvalidationsFromDisk.increment(dels);
              }
              if (csm._enable && csm._inMemoryAndDiskCacheEntryCount != null) {
                  csm._inMemoryAndDiskCacheEntryCount.decrement(dels);
              }
              break;
          default:
              break;
          }
          return;
      }