private void parseLocking( XMLExtendedStreamReader reader, ModelNode cache, List<ModelNode> operations) throws XMLStreamException { // ModelNode for the cache add operation ModelNode lockingAddress = cache.get(ModelDescriptionConstants.OP_ADDR).clone(); lockingAddress.add(ModelKeys.LOCKING, ModelKeys.LOCKING_NAME); lockingAddress.protect(); ModelNode locking = Util.getEmptyOperation(ModelDescriptionConstants.ADD, lockingAddress); for (int i = 0; i < reader.getAttributeCount(); i++) { String value = reader.getAttributeValue(i); Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i)); switch (attribute) { case ISOLATION: { LockingResource.ISOLATION.parseAndSetParameter(value, locking, reader); break; } case STRIPING: { LockingResource.STRIPING.parseAndSetParameter(value, locking, reader); break; } case ACQUIRE_TIMEOUT: { LockingResource.ACQUIRE_TIMEOUT.parseAndSetParameter(value, locking, reader); break; } case CONCURRENCY_LEVEL: { LockingResource.CONCURRENCY_LEVEL.parseAndSetParameter(value, locking, reader); break; } default: { throw ParseUtils.unexpectedAttribute(reader, i); } } } ParseUtils.requireNoContent(reader); operations.add(locking); }