package dmg.cells.services.login; import dmg.cells.nucleus.CellEndpoint; import org.dcache.util.Args; /** * Service provider interface for LoginCellFactory. */ public interface LoginCellProvider { /** * Returns a priority for using this provider for the particular type * of login cell. The higher the value, the more appropriate it is to * use this provider for this type of login cell. * * @param name Identifier for a type of login cell * @return A priority, or Integer.MIN_VALUE if the provider is inappropriate * for this type of login cell */ int getPriority(String name); /** * Creates a factory for login cells. * * The factory will create login cells with the supplied arguments. * * @param name Identifier for a type of login cell * @param args Arguments for the login cell * @param parentEndpoint Endpoint of parent login manager * @param parentCellName Name of the parent login manager * @return A new LoginCellFactory * @see LoginCellFactory#stopAsync() */ LoginCellFactory createFactory(String name, Args args, CellEndpoint parentEndpoint, String parentCellName) throws IllegalArgumentException; }