/* * Hibernate OGM, Domain model persistence for NoSQL datastores * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.ogm.datastore.impl; import org.hibernate.ogm.util.impl.Log; import org.hibernate.ogm.util.impl.LoggerFactory; /** * This enumeration describes all available datastore providers by providing some shortcuts. * It's used for the Datastore Provider initialization to find the provider to instantiate. * * @author Guillaume Scheibel <guillaume.scheibel@gmail.com> * @author Gunnar Morling */ public enum DatastoreProviderType { MAP( "org.hibernate.ogm.datastore.map.impl.MapDatastoreProvider" ), /** * @deprecated use {@link #INFINISPAN_EMBEDDED} instead to avoid ambiguities. */ @Deprecated INFINISPAN( "org.hibernate.ogm.datastore.infinispan.impl.InfinispanEmbeddedDatastoreProvider" ), INFINISPAN_EMBEDDED( "org.hibernate.ogm.datastore.infinispan.impl.InfinispanEmbeddedDatastoreProvider" ), INFINISPAN_REMOTE( "org.hibernate.ogm.datastore.infinispanremote.impl.InfinispanRemoteDatastoreProvider" ), MONGODB( "org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider" ), NEO4J_BOLT( "org.hibernate.ogm.datastore.neo4j.remote.bolt.impl.BoltNeo4jDatastoreProvider" ), NEO4J_HTTP( "org.hibernate.ogm.datastore.neo4j.remote.http.impl.HttpNeo4jDatastoreProvider" ), NEO4J_EMBEDDED( "org.hibernate.ogm.datastore.neo4j.embedded.impl.EmbeddedNeo4jDatastoreProvider" ); private static final Log log = LoggerFactory.make(); private String datastoreProviderClassName; private DatastoreProviderType(String datastoreProviderClassName) { this.datastoreProviderClassName = datastoreProviderClassName; } public String getDatastoreProviderClassName() { return this.datastoreProviderClassName; } public static boolean isShortName(String name) { for ( DatastoreProviderType provider : DatastoreProviderType.values() ) { if ( provider.name().equalsIgnoreCase( name ) ) { return true; } } return false; } public static DatastoreProviderType byShortName(String shortName) { if ( "infinispan".equalsIgnoreCase( shortName ) ) { log.usingDeprecatedDatastoreProviderName( "infinispan", "infinispan_embedded" ); } return DatastoreProviderType.valueOf( shortName.toUpperCase() ); } }