Project

General

Profile

Download (1.28 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * 
3
 */
4
package eu.etaxonomy.cdm.print;
5

    
6
import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
7
import org.jdom.Document;
8

    
9
import eu.etaxonomy.cdm.print.out.IPublishOutputModule;
10

    
11
/**
12
 * The central or main class that will execute the publishing process
13
 * 
14
 * @author n.hoffmann
15
 * @since Apr 1, 2010
16
 * @version 1.0
17
 */
18
public class Publisher {
19
	private static final Logger logger = LogManager.getLogger(Publisher.class);	
20
	
21
	
22
	/**
23
	 * Harvests the taxon nodes defined by {@link PublishConfigurator#getSelectedTaxonNodeElements()} and calls 
24
	 * alls {@link IPublishOutputModule IPublishOutputModules} {@link IPublishOutputModule#output(Document, PublishConfigurator) output}
25
	 * methods
26
	 * 
27
	 * @param configurator a valid {@link PublishConfigurator}
28
	 */
29
	public static void publish(PublishConfigurator configurator){
30
		
31
		XMLHarvester xmlHarvester = new XMLHarvester(configurator);
32
		
33
		Document document = xmlHarvester.harvest(configurator.getSelectedTaxonNodeElements());
34
		
35
		if(configurator.getOutputModules().size() == 0){
36
			logger.warn("No output modules set. Exiting.");
37
		}
38
		
39
		for(IPublishOutputModule outputModule : configurator.getOutputModules()){
40
			outputModule.output(document, configurator.getExportFolder(), configurator.getProgressMonitor());
41
		}
42
		
43
	}
44
	
45
}
(5-5/10)