Mercurial > hg > anteater
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; + + } +}