private void parseClusteredCacheAttribute(
     XMLExtendedStreamReader reader,
     int index,
     Attribute attribute,
     String value,
     ModelNode cache,
     Configuration.CacheMode cacheMode)
     throws XMLStreamException {
   switch (attribute) {
     case MODE:
       {
         try {
           Mode mode = Mode.valueOf(value);
           cache.get(ModelKeys.MODE).set(mode.apply(cacheMode).name());
         } catch (IllegalArgumentException e) {
           throw ParseUtils.invalidAttributeValue(reader, index);
         }
         break;
       }
     case QUEUE_SIZE:
       {
         cache.get(ModelKeys.QUEUE_SIZE).set(Integer.parseInt(value));
         break;
       }
     case QUEUE_FLUSH_INTERVAL:
       {
         cache.get(ModelKeys.QUEUE_FLUSH_INTERVAL).set(Long.parseLong(value));
         break;
       }
     case REMOTE_TIMEOUT:
       {
         cache.get(ModelKeys.REMOTE_TIMEOUT).set(Long.parseLong(value));
         break;
       }
     default:
       {
         this.parseCacheAttribute(reader, index, attribute, value, cache);
       }
   }
 }