/** * */ package com.browseengine.bobo.facets; /** * This interface is intended for using with RuntimeFacetHandler, which typically * have local data that make them not only NOT thread safe but also dependent on * request. So it is necessary to have different instance for different client or * request. Typically, the new instance need to be initialized before use. * @author xiaoyang * */ public interface RuntimeFacetHandlerFactory<P extends FacetHandlerInitializerParam, F extends RuntimeFacetHandler<?>> { /** * @return the facet name of the RuntimeFacetHandler it creates. */ String getName(); /** * @return if this facet support empty params or not. */ boolean isLoadLazily(); /** * @param params the data used to initialize the RuntimeFacetHandler. * @return a new instance of */ F get(P params); }