/*
* JBoss, Home of Professional Open Source.
* Copyright 2011, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.as.clustering.infinispan.subsystem;
import java.util.HashMap;
import java.util.Map;
import org.jboss.as.controller.AttributeDefinition;
/**
* Enumerates the elements used in the Infinispan subsystem schema.
*
* @author Paul Ferraro
* @author Richard Achmatowicz (c) 2011 RedHat Inc.
* @author Tristan Tarrant
*/
public enum Element {
// must be first
UNKNOWN((String)null),
ALIAS(ModelKeys.ALIAS),
AUTHORIZATION(ModelKeys.AUTHORIZATION),
BACKUP(ModelKeys.BACKUP),
BACKUPS(ModelKeys.BACKUPS),
BACKUP_FOR(ModelKeys.BACKUP_FOR),
BINARY("binary"),
@Deprecated BUCKET_TABLE(ModelKeys.BUCKET_TABLE),
CACHE_CONTAINER(ModelKeys.CACHE_CONTAINER),
CONNECTION_POOL(ModelKeys.CONNECTION_POOL),
CLUSTER_LOADER(ModelKeys.CLUSTER_LOADER),
COMPATIBILITY(ModelKeys.COMPATIBILITY),
COMPRESSION(ModelKeys.COMPRESSION),
COMMON_NAME_ROLE_MAPPER(ModelKeys.COMMON_NAME_ROLE_MAPPER),
CLUSTER_ROLE_MAPPER(ModelKeys.CLUSTER_ROLE_MAPPER),
CUSTOM_ROLE_MAPPER(ModelKeys.CUSTOM_ROLE_MAPPER),
DATA_COLUMN(ModelKeys.DATA_COLUMN),
DISTRIBUTED_CACHE(ModelKeys.DISTRIBUTED_CACHE),
DISTRIBUTED_CACHE_CONFIGURATION(ModelKeys.DISTRIBUTED_CACHE_CONFIGURATION),
@Deprecated ENTRY_TABLE(ModelKeys.ENTRY_TABLE),
EVICTION(ModelKeys.EVICTION),
EXPIRATION(ModelKeys.EXPIRATION),
FILE_STORE(ModelKeys.FILE_STORE),
GLOBAL_STATE(ModelKeys.GLOBAL_STATE),
ID_COLUMN(ModelKeys.ID_COLUMN),
IDENTITY_ROLE_MAPPER(ModelKeys.IDENTITY_ROLE_MAPPER),
INVALIDATION_CACHE(ModelKeys.INVALIDATION_CACHE),
INVALIDATION_CACHE_CONFIGURATION(ModelKeys.INVALIDATION_CACHE_CONFIGURATION),
@Deprecated LEVELDB_STORE(ModelKeys.LEVELDB_STORE),
@Deprecated JDBC_STORE("jdbc-store"),
STRING_KEYED_JDBC_STORE(ModelKeys.STRING_KEYED_JDBC_STORE),
IMPLEMENTATION(ModelKeys.IMPLEMENTATION),
INDEXING(ModelKeys.INDEXING),
INDEXED_ENTITIES(ModelKeys.INDEXED_ENTITIES),
INDEXED_ENTITY(ModelKeys.INDEXED_ENTITY),
LOADER(ModelKeys.LOADER),
LOCAL_CACHE(ModelKeys.LOCAL_CACHE),
LOCAL_CACHE_CONFIGURATION(ModelKeys.LOCAL_CACHE_CONFIGURATION),
LOCKING(ModelKeys.LOCKING),
MEMORY(ModelKeys.MEMORY),
OBJECT("object"),
OFF_HEAP("off-heap"),
PARTITION_HANDLING(ModelKeys.PARTITION_HANDLING),
PERSISTENCE(ModelKeys.PERSISTENCE),
PERSISTENT_LOCATION(ModelKeys.PERSISTENT_LOCATION),
PROPERTY(ModelKeys.PROPERTY),
@Deprecated REHASHING("rehashing"),
REMOTE_SERVER(ModelKeys.REMOTE_SERVER),
REMOTE_STORE(ModelKeys.REMOTE_STORE),
REPLICATED_CACHE(ModelKeys.REPLICATED_CACHE),
REPLICATED_CACHE_CONFIGURATION(ModelKeys.REPLICATED_CACHE_CONFIGURATION),
REST_STORE(ModelKeys.REST_STORE),
ROCKSDB_STORE(ModelKeys.ROCKSDB_STORE),
ROLE(ModelKeys.ROLE),
SECURITY(ModelKeys.SECURITY),
STATE_TRANSFER(ModelKeys.STATE_TRANSFER),
STORE(ModelKeys.STORE),
STRING_KEYED_TABLE(ModelKeys.STRING_KEYED_TABLE),
TAKE_OFFLINE(ModelKeys.TAKE_OFFLINE),
TEMPORARY_LOCATION(ModelKeys.TEMPORARY_LOCATION),
TIMESTAMP_COLUMN(ModelKeys.TIMESTAMP_COLUMN),
TRANSACTION(ModelKeys.TRANSACTION),
TRANSPORT(ModelKeys.TRANSPORT),
WRITE_BEHIND(ModelKeys.WRITE_BEHIND),
ASYNC_OPERATIONS_THREAD_POOL(ModelKeys.ASYNC_OPERATIONS_THREAD_POOL),
EXPIRATION_THREAD_POOL(ModelKeys.EXPIRATION_THREAD_POOL),
LISTENER_THREAD_POOL(ModelKeys.LISTENER_THREAD_POOL),
PERSISTENCE_THREAD_POOL(ModelKeys.PERSISTENCE_THREAD_POOL),
REMOTE_COMMAND_THREAD_POOL(ModelKeys.REMOTE_COMMAND_THREAD_POOL),
REPLICATION_QUEUE_THREAD_POOL(ModelKeys.REPLICATION_QUEUE_THREAD_POOL),
STATE_TRANSFER_THREAD_POOL(ModelKeys.STATE_TRANSFER_THREAD_POOL),
TRANSPORT_THREAD_POOL(ModelKeys.TRANSPORT_THREAD_POOL),
;
private final String name;
private final AttributeDefinition definition;
Element(final String name) {
this.name = name;
this.definition = null;
}
Element(final AttributeDefinition definition) {
this.name = definition.getXmlName();
this.definition = definition;
}
/**
* Get the local name of this element.
*
* @return the local name
*/
public String getLocalName() {
return name;
}
public AttributeDefinition getDefinition() {
return definition;
}
private static final Map<String, Element> elements;
static {
final Map<String, Element> map = new HashMap<String, Element>();
for (Element element : values()) {
final String name = element.getLocalName();
if (name != null) map.put(name, element);
}
elements = map;
}
public static Element forName(String localName) {
final Element element = elements.get(localName);
return element == null ? UNKNOWN : element;
}
}