view src/de/mpiwg/anteater/text/TextManager.java @ 0:036535fcd179

anteater
author jdamerow
date Fri, 14 Sep 2012 10:30:43 +0200
parents
children
line wrap: on
line source

package de.mpiwg.anteater.text;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import de.mpiwg.anteater.AnteaterConfiguration;
import de.mpiwg.anteater.xml.ITextReader;
import de.mpiwg.anteater.xml.impl.AnalysisXMLManager;
import de.mpiwg.anteater.xml.impl.TextReader;

public class TextManager {
	public final static String COMPONENT_NAME = TextManager.class.getSimpleName();
	
	private AnteaterConfiguration configuration;
	
	public TextManager(AnteaterConfiguration configuration) {
		this.configuration = configuration;
	}

	public TextInformation createTextInformations(File file) {
		
		List<TextPart> summaryTexts = new ArrayList<TextPart>();
		List<TextPart> supplinfTexts = new ArrayList<TextPart>();
		
		AnalysisXMLManager analysisManager = null;
		if (configuration.getAnalysisPath() != null && !configuration.getAnalysisPath().isEmpty()) {
			analysisManager = new AnalysisXMLManager(configuration.getAnalysisPath() + File.separator +  file.getName());
			
			configuration.getLogger().logMessageWithoutNewLine(COMPONENT_NAME, "Check analysis file for summary texts...");
			List<String> summary = analysisManager.getSummaryTexts();
			summaryTexts = TextPartXMLTranslator.getTextPartForXML(summary);
			configuration.getLogger().logMessage("found " + summaryTexts.size() + " text(s).");
		
			configuration.getLogger().logMessageWithoutNewLine(COMPONENT_NAME, "Check analysis file for supplementary information texts...");
			List<String> sInfTexts = analysisManager.getSupplementaryInfoTexts();
			supplinfTexts = TextPartXMLTranslator.getTextPartForXML(sInfTexts);
			configuration.getLogger().logMessage("found " + supplinfTexts.size() + " text(s).");
		}
		
		ITextReader parser = new TextReader(file.getAbsolutePath());
		TextInformation textInformation = new TextInformation();
		textInformation.setFilepath(file.getAbsolutePath());
		
		if (summaryTexts == null || summaryTexts.isEmpty()) {
			summaryTexts = parser.getSummaryTexts();
			
			for (TextPart sum : summaryTexts) {
				if (analysisManager != null)
					analysisManager.addSummaryText(TextPartXMLTranslator.getXMLForText(sum));
			}
		}
		textInformation.setSummaries(summaryTexts);
		
		
		if (supplinfTexts == null || supplinfTexts.isEmpty()) {
			supplinfTexts = parser.getSupplementaryInformationTexts();
			
			for (TextPart sinfo : supplinfTexts) {
				if (analysisManager != null)
					analysisManager.addSupplInfText(TextPartXMLTranslator.getXMLForText(sinfo));
			}
		}
		
		textInformation.setSupplInfos(supplinfTexts);
		
		return textInformation;
		
	}
}