/*
* 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.mongodb.options;
import com.mongodb.ReadPreference;
/**
* Read preference options for MongoDB. Represents the defined strategies from {@link ReadPreference}.
*
* @author Gunnar Morling
*/
public enum ReadPreferenceType {
/**
* Read from the primary node only.
*/
PRIMARY(ReadPreference.primary()),
/**
* Read from the primary node if possible.
*/
PRIMARY_PREFERRED(ReadPreference.primaryPreferred()),
/**
* Read from a secondary node only.
*/
SECONDARY(ReadPreference.secondary()),
/**
* Read from a secondary node if possible, from primary otherwise.
*/
SECONDARY_PREFERRED(ReadPreference.secondaryPreferred()),
/**
* Read from the nearest node.
*/
NEAREST(ReadPreference.nearest());
private final ReadPreference readPreference;
private ReadPreferenceType(ReadPreference readPreference) {
this.readPreference = readPreference;
}
/**
* Get the read preference.
*
* @return the {@link ReadPreference} associated with this enum value.
*/
public ReadPreference getReadPreference() {
return readPreference;
}
}