/* * 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.boot.registry.selector; /** * Describes the registration of a named strategy implementation. A strategy + selector name should resolve * to a single implementation. * * @param <T> The type of the strategy described by this implementation registration. * * @author Steve Ebersole */ public interface StrategyRegistration<T> { /** * The strategy role. Best practice says this should be an interface. * * @return The strategy contract/role. */ public Class<T> getStrategyRole(); /** * Any registered names for this strategy registration. * * @return The registered selection names. */ public Iterable<String> getSelectorNames(); /** * The strategy implementation class. * * @return The strategy implementation. */ public Class<? extends T> getStrategyImplementation(); }