// Path: src/java/com/idega/block/email/bean/FoundMessagesInfo.java
// public class FoundMessagesInfo implements Serializable {
// 
// 	private static final long serialVersionUID = 5549581211079663255L;
// 
// 	private Collection<Message> messages;
// 	
// 	private MessageParserType parserType;
// 
// 	private String identifier;
// 	
// 	public FoundMessagesInfo(MessageParserType parserType) {
// 		this.parserType = parserType;
// 	}
// 	
// 	public FoundMessagesInfo(String identifier, MessageParserType parserType) {
// 		this(parserType);
// 		
// 		this.identifier = identifier;
// 	}
// 	
// 	public FoundMessagesInfo(Collection<Message> messages, MessageParserType parserType) {
// 		this(parserType);
// 		
// 		this.messages = messages == null ? null : new ArrayList<Message>(messages);
// 	}
// 	
// 	public Collection<Message> getMessages() {
// 		return messages;
// 	}
// 
// 	public MessageParserType getParserType() {
// 		return parserType;
// 	}
// 	
// 	public void addMessage(Message message) {
// 		if (messages == null) {
// 			messages = new ArrayList<Message>();
// 		}
// 		messages.add(message);
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "Identifier: " + identifier + ", type: " + parserType + ", messages: " + getMessages();
// 	}
// 
// 	public String getIdentifier() {
// 		return identifier;
// 	}
// 
// 	public void setIdentifier(String identifier) {
// 		this.identifier = identifier;
// 	}	
// 	
// }
// 
// Path: src/java/com/idega/block/email/client/business/EmailParams.java
// public class EmailParams {
// 
// 	private Folder folder;
// 	private String hostname;
// 	private String username;
// 	private String password;
// 	private Session session;
// 	private Store store;
// 	private String protocol;
// 	private Message[] messagesFound;
// 	
// 	private boolean loggedOut;
// 	
// 	public Message[] getMessagesFound() {
// 		return messagesFound;
// 	}
// 	public void setMessagesFound(Message[] messagesFound) {
// 		this.messagesFound = messagesFound;
// 	}
// 	public Folder getFolder() {
// 		return folder;
// 	}
// 	public void setFolder(Folder folder) {
// 		this.folder = folder;
// 	}
// 	public String getHostname() {
// 		return hostname;
// 	}
// 	public void setHostname(String hostname) {
// 		this.hostname = hostname;
// 	}
// 	public String getUsername() {
// 		return username;
// 	}
// 	public void setUsername(String username) {
// 		this.username = username;
// 	}
// 	public String getPassword() {
// 		return password;
// 	}
// 	public void setPassword(String password) {
// 		this.password = password;
// 	}
// 	public Session getSession() {
// 		return session;
// 	}
// 	public void setSession(Session session) {
// 		this.session = session;
// 	}
// 	public Store getStore() {
// 		return store;
// 	}
// 	public void setStore(Store store) {
// 		this.store = store;
// 	}
// 	public String getProtocol() {
// 		return protocol;
// 	}
// 	public void setProtocol(String protocol) {
// 		this.protocol = protocol;
// 	}
// 	public boolean isLoggedOut() {
// 		return loggedOut;
// 	}
// 	public void setLoggedOut(boolean loggedOut) {
// 		this.loggedOut = loggedOut;
// 	}
// 	
// }


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.search.SearchTerm;
import com.idega.block.email.bean.FoundMessagesInfo;
import com.idega.block.email.client.business.EmailParams;
import com.idega.core.business.DefaultSpringBean;
import com.idega.util.ArrayUtil;
import com.idega.util.ListUtil;

		Message[] messages = params.getFolder().search(
			new SearchTerm() {
				private static final long serialVersionUID = 5298994639594655420L;

				@Override
				public boolean match(Message message) {
					try {
						String subject = message.getSubject();
						if (subject == null) {
							return false;
						}

						for (Pattern pattern: patterns) {
							Matcher matcher = pattern.matcher(subject);
							if (matcher.find()) {
								return true;
							}
						}
					} catch (MessagingException e) {
						e.printStackTrace();
					}
					return false;
				}
		});

		return messages;
	}

	protected Map<String, FoundMessagesInfo> getCaseIdentifierSearchResultsFormatted(EmailParams params) throws MessagingException {
// Path: src/java/com/idega/block/email/bean/FoundMessagesInfo.java
// public class FoundMessagesInfo implements Serializable {
// 
// 	private static final long serialVersionUID = 5549581211079663255L;
// 
// 	private Collection<Message> messages;
// 	
// 	private MessageParserType parserType;
// 
// 	private String identifier;
// 	
// 	public FoundMessagesInfo(MessageParserType parserType) {
// 		this.parserType = parserType;
// 	}
// 	
// 	public FoundMessagesInfo(String identifier, MessageParserType parserType) {
// 		this(parserType);
// 		
// 		this.identifier = identifier;
// 	}
// 	
// 	public FoundMessagesInfo(Collection<Message> messages, MessageParserType parserType) {
// 		this(parserType);
// 		
// 		this.messages = messages == null ? null : new ArrayList<Message>(messages);
// 	}
// 	
// 	public Collection<Message> getMessages() {
// 		return messages;
// 	}
// 
// 	public MessageParserType getParserType() {
// 		return parserType;
// 	}
// 	
// 	public void addMessage(Message message) {
// 		if (messages == null) {
// 			messages = new ArrayList<Message>();
// 		}
// 		messages.add(message);
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "Identifier: " + identifier + ", type: " + parserType + ", messages: " + getMessages();
// 	}
// 
// 	public String getIdentifier() {
// 		return identifier;
// 	}
// 
// 	public void setIdentifier(String identifier) {
// 		this.identifier = identifier;
// 	}	
// 	
// }
// 
// Path: src/java/com/idega/block/email/client/business/EmailParams.java
// public class EmailParams {
// 
// 	private Folder folder;
// 	private String hostname;
// 	private String username;
// 	private String password;
// 	private Session session;
// 	private Store store;
// 	private String protocol;
// 	private Message[] messagesFound;
// 	
// 	private boolean loggedOut;
// 	
// 	public Message[] getMessagesFound() {
// 		return messagesFound;
// 	}
// 	public void setMessagesFound(Message[] messagesFound) {
// 		this.messagesFound = messagesFound;
// 	}
// 	public Folder getFolder() {
// 		return folder;
// 	}
// 	public void setFolder(Folder folder) {
// 		this.folder = folder;
// 	}
// 	public String getHostname() {
// 		return hostname;
// 	}
// 	public void setHostname(String hostname) {
// 		this.hostname = hostname;
// 	}
// 	public String getUsername() {
// 		return username;
// 	}
// 	public void setUsername(String username) {
// 		this.username = username;
// 	}
// 	public String getPassword() {
// 		return password;
// 	}
// 	public void setPassword(String password) {
// 		this.password = password;
// 	}
// 	public Session getSession() {
// 		return session;
// 	}
// 	public void setSession(Session session) {
// 		this.session = session;
// 	}
// 	public Store getStore() {
// 		return store;
// 	}
// 	public void setStore(Store store) {
// 		this.store = store;
// 	}
// 	public String getProtocol() {
// 		return protocol;
// 	}
// 	public void setProtocol(String protocol) {
// 		this.protocol = protocol;
// 	}
// 	public boolean isLoggedOut() {
// 		return loggedOut;
// 	}
// 	public void setLoggedOut(boolean loggedOut) {
// 		this.loggedOut = loggedOut;
// 	}
// 	
// }


// Path: src/java/com/idega/block/email/patterns/DefaultSubjectPatternFinder.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.search.SearchTerm;
import com.idega.block.email.bean.FoundMessagesInfo;
import com.idega.block.email.client.business.EmailParams;
import com.idega.core.business.DefaultSpringBean;
import com.idega.util.ArrayUtil;
import com.idega.util.ListUtil;


		Message[] messages = params.getFolder().search(
			new SearchTerm() {
				private static final long serialVersionUID = 5298994639594655420L;

				@Override
				public boolean match(Message message) {
					try {
						String subject = message.getSubject();
						if (subject == null) {
							return false;
						}

						for (Pattern pattern: patterns) {
							Matcher matcher = pattern.matcher(subject);
							if (matcher.find()) {
								return true;
							}
						}
					} catch (MessagingException e) {
						e.printStackTrace();
					}
					return false;
				}
		});

		return messages;
	}

	protected Map<String, FoundMessagesInfo> getCaseIdentifierSearchResultsFormatted(EmailParams params) throws MessagingException {
		Map<String, FoundMessagesInfo> messagesMap = new HashMap<String, FoundMessagesInfo>();