diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpiwg/anteater/text/TextManager.java	Fri Sep 14 10:30:43 2012 +0200
@@ -0,0 +1,70 @@
+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;
+		
+	}
+}