/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* 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.cache.spi;
import java.util.Comparator;
/**
* Contract for sources of optimistically lockable data sent to the second level
* cache.
* <p/>
* Note currently {@link org.hibernate.persister.entity.EntityPersister}s are
* the only viable source.
*
* @author Steve Ebersole
*/
public interface OptimisticCacheSource {
/**
* Is the data to be cached considered versioned?
* <p/>
* If true, it is illegal for {@link #getVersionComparator} to return
* null.
*
* @return True if the data is versioned; false otherwise.
*/
public boolean isVersioned();
/**
* Get the comparator used to compare two different version values.
* <p/>
* May return null <b>if</b> {@link #isVersioned()} returns false.
* @return Comparator used to compare two different version values.
*/
public Comparator getVersionComparator();
}