EmailAccountService.java
package org.ferris.resiste.console.email;
import java.util.Set;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.validation.ConstraintViolation;
import javax.validation.ValidatorFactory;
import org.slf4j.Logger;
/**
* This class contains the business logic for handling email related data.
*
* @author Michael Remijan mjremijan@yahoo.com @mjremijan
*/
@ApplicationScoped
public class EmailAccountService {
@Inject
protected Logger log;
@Inject
protected EmailAccountPropertiesFile emailProperties;
@Inject
protected ValidatorFactory validatorFactory;
/**
* Get email account information
*
* @return Return an {@link EmailAccount} instance. Never returns
* {@code null}. If no account data is found, an {@link EmailAccount}
* instance is returned with all its properties set to null.
*/
public EmailAccount getEmailAccount() {
log.info("ENTER");
EmailAccount account = new EmailAccount().init(
emailProperties.toProperties()
);
Set<ConstraintViolation<EmailAccount>> violations
= validatorFactory.getValidator().validate(account);
if (!violations.isEmpty()) {
violations.stream()
.forEach(cv -> log.error(cv.getMessage()));
throw new RuntimeException("Email account information is not valid. See log files for details.");
}
return account;
}
}