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}