/*
* $Id$
*
* Copyright 2014 Glencoe Software, Inc. All rights reserved.
* Use is subject to license terms supplied in LICENSE.txt
*/
package ome.services.fulltext;
import java.util.Set;
import java.util.HashSet;
import ome.services.messages.ParserOpenFileMessage;
import org.springframework.context.ApplicationListener;
import org.springframework.context.ApplicationEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Provides a session for file parsing by the search indexer
*
* @author Josh Ballanco, jballanc at glencoesoftware.com
* @since 5.0.0
*/
public class ParserSession implements ApplicationListener {
private static Logger log = LoggerFactory.getLogger(ParserSession.class);
private final Set<ParserOpenFileMessage> openFiles;
public ParserSession() {
openFiles = new HashSet<ParserOpenFileMessage>();
}
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ParserOpenFileMessage) {
openFiles.add((ParserOpenFileMessage)event);
}
}
public void closeParsedFiles() {
for (ParserOpenFileMessage file : openFiles) {
log.debug("Closing file: " + file);
file.close();
}
openFiles.clear();
}
}