private void parseEviction(XMLExtendedStreamReader reader, ModelNode eviction)
     throws XMLStreamException {
   for (int i = 0; i < reader.getAttributeCount(); i++) {
     String value = reader.getAttributeValue(i);
     Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i));
     switch (attribute) {
       case STRATEGY:
         {
           try {
             EvictionStrategy strategy = EvictionStrategy.valueOf(value);
             eviction.get(ModelKeys.STRATEGY).set(strategy.name());
           } catch (IllegalArgumentException e) {
             throw ParseUtils.invalidAttributeValue(reader, i);
           }
           break;
         }
       case MAX_ENTRIES:
         {
           eviction.get(ModelKeys.MAX_ENTRIES).set(Integer.parseInt(value));
           break;
         }
       case INTERVAL:
         {
           ROOT_LOGGER.deprecatedAttribute(
               attribute.getLocalName(), Element.EVICTION.getLocalName(), "ISPN-1268");
           break;
         }
       default:
         {
           throw ParseUtils.unexpectedAttribute(reader, i);
         }
     }
   }
   ParseUtils.requireNoContent(reader);
 }
 private void writeOptional(
     XMLExtendedStreamWriter writer, Attribute attribute, ModelNode model, String key)
     throws XMLStreamException {
   if (model.hasDefined(key)) {
     writer.writeAttribute(attribute.getLocalName(), model.get(key).asString());
   }
 }
 static {
   final Map<String, Attribute> map = new HashMap<String, Attribute>();
   for (Attribute attribute : values()) {
     final String name = attribute.getLocalName();
     if (name != null) map.put(name, attribute);
   }
   attributes = map;
 }
 private void writeListAsAttribute(
     XMLExtendedStreamWriter writer, Attribute attribute, ModelNode node, String key)
     throws XMLStreamException {
   if (node.hasDefined(key)) {
     StringBuilder result = new StringBuilder();
     ModelNode list = node.get(key);
     if (list.isDefined() && list.getType() == ModelType.LIST) {
       List<ModelNode> nodeList = list.asList();
       for (int i = 0; i < nodeList.size(); i++) {
         result.append(nodeList.get(i).asString());
         if (i < nodeList.size() - 1) {
           result.append(" ");
         }
       }
       writer.writeAttribute(attribute.getLocalName(), result.toString());
     }
   }
 }
 private void writeRequired(
     XMLExtendedStreamWriter writer, Attribute attribute, ModelNode model, String key)
     throws XMLStreamException {
   writer.writeAttribute(attribute.getLocalName(), model.require(key).asString());
 }