package org.apereo.cas.services;
import java.util.List;
/**
* Registry of all RegisteredServices.
*
* @author Scott Battaglia
* @author Dmitriy Kopylenko
* @since 3.1
*/
public interface ServiceRegistryDao {
/**
* Persist the service in the data store.
*
* @param registeredService the service to persist.
* @return the updated RegisteredService.
*/
RegisteredService save(RegisteredService registeredService);
/**
* Remove the service from the data store.
*
* @param registeredService the service to remove.
* @return true if it was removed, false otherwise.
*/
boolean delete(RegisteredService registeredService);
/**
* Retrieve the services from the data store.
*
* @return the collection of services.
*/
List<RegisteredService> load();
/**
* Find service by the numeric id.
*
* @param id the id
* @return the registered service
*/
RegisteredService findServiceById(long id);
/**
* Find service by the service id.
*
* @param id the id
* @return the registered service
*/
RegisteredService findServiceById(String id);
/**
* Return number of records held in this service registry. Provides Java 8 supported default implementation so that implementations
* needed this new functionality could override it and other implementations not caring for it could be left alone.
*
* @return number of registered services held by any particular implementation
* @since 5.0.0
*/
long size();
}