/** * Copyright © 2002 Instituto Superior Técnico * * This file is part of FenixEdu Academic. * * FenixEdu Academic is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * FenixEdu Academic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with FenixEdu Academic. If not, see <http://www.gnu.org/licenses/>. */ package org.fenixedu.academic.domain.util.email; import java.util.Set; import org.fenixedu.academic.domain.accessControl.UnitGroup; import org.fenixedu.academic.domain.organizationalStructure.Unit; import org.fenixedu.bennu.core.groups.Group; import pt.ist.fenixframework.Atomic; public class UnitBasedSender extends UnitBasedSender_Base { public void init(final Unit unit, final String fromAddress, final Group members) { setUnit(unit); setFromAddress(fromAddress); setMembers(members); } public UnitBasedSender(final Unit unit, final String fromAddress, final Group members) { super(); init(unit, fromAddress, members); } public UnitBasedSender() { super(); } @Override public void delete() { setUnit(null); super.delete(); } @Override public String getFromName() { return String.format("%s (%s)", Unit.getInstitutionAcronym(), getUnit().getName()); } @Override public Set<ReplyTo> getReplyTosSet() { if (super.getReplyTosSet().isEmpty()) { addReplyTos(new CurrentUserReplyTo()); } return super.getReplyTosSet(); } @Atomic private void createCurrentUserReplyTo() { addReplyTos(new CurrentUserReplyTo()); } @Override public void setFromName(final String fromName) { throw new Error("method.not.available.for.this.type.of.sender"); } @Atomic @Override public void addRecipients(final Recipient recipients) { super.addRecipients(recipients); } @Atomic @Override public void removeRecipients(final Recipient recipients) { super.removeRecipients(recipients); } protected void createRecipient(final Group group) { addRecipients(new Recipient(null, group)); } @Atomic public static UnitBasedSender newInstance(Unit unit) { return new UnitBasedSender(unit, Sender.getNoreplyMail(), UnitGroup.recursiveWorkers(unit)); } }