/** * ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium. */ package org.esupportail.helpdesk.services.feed; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.InitializingBean; /** * A class to feed the database with tickets. */ public class FeederImpl implements InitializingBean, Feeder { /** * The serialization id. */ private static final long serialVersionUID = 574701276585886191L; /** * The mail readers. */ private List<AccountReader> mailReaders; /** * Constructor. */ public FeederImpl() { super(); } /** * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ @Override public void afterPropertiesSet() { // } /** * @see org.esupportail.helpdesk.services.feed.Feeder#feed( * org.esupportail.helpdesk.services.feed.ErrorHolder) */ @Override public boolean feed(final ErrorHolder errorHolder) { if (mailReaders == null || mailReaders.isEmpty()) { errorHolder.addError("no reader set, exiting"); return false; } for (AccountReader accountReader : mailReaders) { ErrorHolder accountErrorHolder = new ErrorHolder(); boolean commit = accountReader.read(accountErrorHolder); errorHolder.add(accountErrorHolder); if (commit) { return true; } } return false; } /** * @return the mailReaders */ protected List<AccountReader> getMailReaders() { return mailReaders; } /** * @param mailReaders the mailReaders to set */ public void setMailReaders(final List<AccountReader> mailReaders) { this.mailReaders = new ArrayList<AccountReader>(); for (AccountReader accountReader : mailReaders) { if (accountReader.isEnabled()) { this.mailReaders.add(accountReader); } } } }