package tudu.service;
import tudu.domain.Property;
/**
* Manage the application configuration.
*
* @author Julien Dubois
*/
public interface ConfigurationService {
/**
* Initialize the database.
*/
void initDatabase();
/**
* Initialize the application properties.
*/
void initApplicationProperties();
/**
* Find a property by key.
*
* @param key
* The property key
* @return The property
*/
Property getProperty(String key);
/**
* Update email properties.
*
* @param smtpHost
* SMTP host
* @param smtpPort
* SMTP port
* @param smtpUser
* SMTP user
* @param smtpPassword
* SMTP password
* @param smtpFrom
* From address of the emails sent by the application
*/
void updateEmailProperties(String smtpHost, String smtpPort,
String smtpUser, String smtpPassword, String smtpFrom);
/**
* Update the application properties.
*
* @param staticPath
* The path to the static files
* @param googleKey
* The Google Analytics key used to track users
*/
void updateApplicationProperties(String staticPath, String googleKey);
}