package rocks.inspectit.server.dao;
import java.util.List;
import java.util.Map;
import rocks.inspectit.shared.all.cmr.model.MethodSensorTypeIdent;
/**
* This DAO is used to handle all {@link MethodSensorTypeIdent} objects.
*
* @author Patrice Bouillet
*
*/
public interface MethodSensorTypeIdentDao {
/**
* Load a specific {@link MethodSensorTypeIdent} from the underlying storage by passing the id.
*
* @param id
* The id of the object.
* @return The found {@link MethodSensorTypeIdent} object.
*/
MethodSensorTypeIdent load(Long id);
/**
* Saves or updates this {@link MethodSensorTypeIdent} in the underlying storage.
*
* @param methodSensorTypeIdent
* The {@link MethodSensorTypeIdent} object to save or update.
*/
void saveOrUpdate(MethodSensorTypeIdent methodSensorTypeIdent);
/**
* Deletes this specific {@link MethodSensorTypeIdent} object.
*
* @param methodSensorTypeIdent
* The {@link MethodSensorTypeIdent} object to delete.
*/
void delete(MethodSensorTypeIdent methodSensorTypeIdent);
/**
* Deletes all {@link MethodSensorTypeIdent} objects which are stored in the passed list.
*
* @param methodSensorTypeIdents
* The list containing the {@link MethodSensorTypeIdent} objects to delete.
*/
void deleteAll(List<MethodSensorTypeIdent> methodSensorTypeIdents);
/**
* Returns all {@link MethodSensorTypeIdent} objects which are saved in the underlying storage.
*
* @return Returns all stored {@link MethodSensorTypeIdent} objects.
*/
List<MethodSensorTypeIdent> findAll();
/**
* Find the {@link MethodSensorTypeIdent} object IDs with given fully qualified sensor class
* name and platform ident.
*
* @param fullyQualifiedClassName
* FQN of sensor
* @param platformId
* Platform ident id.
* @return List of existing objects IDs.
*/
List<Long> findIdByClassNameAndPlatformId(String fullyQualifiedClassName, long platformId);
/**
* Updates parameters of the {@link MethodSensorTypeIdent} with the given ID.
*
* @param id
* ID of the object to update.
* @param parameters
* new parameters
*/
void updateParameters(Long id, Map<String, Object> parameters);
}