001package com.nimbusds.infinispan.persistence.dynamodb.config;
002
003
004import java.util.HashMap;
005import java.util.Map;
006
007
008/**
009 * DynamoDB store XML configuration attributes.
010 */
011public enum Element {
012        
013        
014        /**
015         * Unknown XML element.
016         */
017        UNKNOWN(null), // must be first
018        
019        
020        /**
021         * DynamoDB store element.
022         */
023        DYNAMODB_STORE("dynamodb-store");
024        
025        
026        /**
027         * The element name.
028         */
029        private final String name;
030        
031        
032        /**
033         * Creates a new element with the specified name.
034         *
035         * @param name The element name.
036         */
037        Element(final String name) {
038                this.name = name;
039        }
040        
041        
042        /**
043         * Gets the local name of this element.
044         *
045         * @return The local name.
046         */
047        public String getLocalName() {
048                return name;
049        }
050        
051        
052        /**
053         * The enumerated attributes as map.
054         */
055        private static final Map<String, Element> MAP;
056        
057        static {
058                final Map<String, Element> map = new HashMap<>();
059                for (Element element : values()) {
060                        final String name = element.getLocalName();
061                        if (name != null) {
062                                map.put(name, element);
063                        }
064                }
065                MAP = map;
066        }
067        
068        
069        /**
070         * Returns the matching elements for the specified local name.
071         *
072         * @param localName The local name.
073         *
074         * @return The element.
075         */
076        public static Element forName(final String localName) {
077                final Element element = MAP.get(localName);
078                return element == null ? UNKNOWN : element;
079        }
080}