001/* 002 * JGrapes Event driven Framework 003 * Copyright (C) 2022 Michael N. Lipp 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <https://www.gnu.org/licenses/>. 017 */ 018 019package org.jgrapes.mail.events; 020 021import jakarta.mail.Folder; 022import java.util.Arrays; 023import java.util.List; 024import org.jgrapes.core.Event; 025import org.jgrapes.mail.MailChannel; 026import org.jgrapes.mail.MailMonitor; 027 028/** 029 * Triggers the retrieval of mails (update) by a {@link MailMonitor}. 030 * Must be fired on a {@link MailChannel}. 031 */ 032public class UpdateMailFolders extends Event<List<Folder>> { 033 034 private final String[] folderNames; 035 036 /** 037 * Causes new messages to be retrieved from the given folders. 038 * 039 * The folders specified may be a subset of the folder names used 040 * in the initial {@link OpenMailConnection} event. If left empty, 041 * all folders specified in the open event are retrieved again. 042 * 043 * @param folderNames the folder names 044 */ 045 @SuppressWarnings("PMD.ArrayIsStoredDirectly") 046 public UpdateMailFolders(String... folderNames) { 047 this.folderNames = Arrays.copyOf(folderNames, folderNames.length); 048 } 049 050 /** 051 * Returns the folder names. 052 * 053 * @return the string[] 054 */ 055 @SuppressWarnings("PMD.MethodReturnsInternalArray") 056 public String[] folderNames() { 057 return folderNames; 058 } 059 060}