package au.org.aurin.wif.repo.suitability;
import java.util.List;
import au.org.aurin.wif.exception.config.WifInvalidConfigException;
import au.org.aurin.wif.model.suitability.Factor;
/**
* The Interface FactorDao.
*/
public interface FactorDao {
/**
* Adds the factor.
*
* @param factor
* the factor
*/
void addFactor(Factor factor);
/**
* Persist factor.
*
* @param factor the factor
* @return the factor
* @throws WifInvalidConfigException the wif invalid config exception
*/
Factor persistFactor(Factor factor) throws WifInvalidConfigException;
/**
* Update factor.
*
* @param factor the factor
* @throws WifInvalidConfigException the wif invalid config exception
*/
void updateFactor(Factor factor) throws WifInvalidConfigException;
/**
* Find factor by id.
*
* @param id the id
* @return the wif factor
*/
Factor findFactorById(String id);
/**
* Delete factor.
*
* @param factor the factor
*/
void deleteFactor(Factor factor);
/**
* Gets the all factors belonging to a project.
*
* @param projectId the project id
* @return the all factors
*/
List<Factor> getFactors(String projectId);
}