diff src/de/mpiwg/anteater/species/common/CommonNameFindController.java @ 4:dcc35f89dce3

include linneaus findings
author jdamerow
date Thu, 25 Oct 2012 15:25:08 -0700
parents ae96e4bc7fb2
children 51ed79e28b45
line wrap: on
line diff
--- a/src/de/mpiwg/anteater/species/common/CommonNameFindController.java	Mon Oct 22 14:21:14 2012 -0700
+++ b/src/de/mpiwg/anteater/species/common/CommonNameFindController.java	Thu Oct 25 15:25:08 2012 -0700
@@ -6,12 +6,14 @@
 
 import de.mpiwg.anteater.AnteaterConfiguration;
 import de.mpiwg.anteater.species.common.impl.LinnaeusNameFinder;
-import de.mpiwg.anteater.species.scientific.IScientificNamesFinder;
+import de.mpiwg.anteater.species.scientific.ScientificName;
 import de.mpiwg.anteater.species.scientific.ScientificNamesExtraction;
-import de.mpiwg.anteater.species.scientific.impl.GNRDNameFinder;
 import de.mpiwg.anteater.text.TextInformation;
 import de.mpiwg.anteater.text.TextPart;
+import de.mpiwg.anteater.text.TextType;
+import de.mpiwg.anteater.xml.ICommonNameFinderParser;
 import de.mpiwg.anteater.xml.impl.AnalysisXMLManager;
+import de.mpiwg.anteater.xml.impl.LinnaeusParser;
 
 public class CommonNameFindController {
 
@@ -23,8 +25,8 @@
 		this.configuration = configuration;
 	}
 	
-	public List<CommonNamesExtraction> findCommonNamesInXML(TextInformation info) {
-		List<CommonNamesExtraction> results = new ArrayList<CommonNamesExtraction>();
+	public List<ScientificNamesExtraction> findCommonNamesInXML(TextInformation info) {
+		List<ScientificNamesExtraction> results = new ArrayList<ScientificNamesExtraction>();
 		List<String> summaryAnalysisResults = new ArrayList<String>();
 		List<String> supplinfAnalysisResults = new ArrayList<String>();
 		
@@ -35,11 +37,11 @@
 			
 			analysisManager = new AnalysisXMLManager(configuration.getAnalysisPath() + File.separator +  file.getName());
 			
-			configuration.getLogger().logMessageWithoutNewLine(COMPONENT_NAME, "Check analysis file for scientific names in summaries...");
+			configuration.getLogger().logMessageWithoutNewLine(COMPONENT_NAME, "Check analysis file for species names in summaries...");
 			summaryAnalysisResults = analysisManager.getSummaryCommonNamesResults();
 			configuration.getLogger().logMessage("found " + summaryAnalysisResults.size() + " result(s).");
 		
-			configuration.getLogger().logMessageWithoutNewLine(COMPONENT_NAME, "Check analysis file for scientific names in supplementary information...");
+			configuration.getLogger().logMessageWithoutNewLine(COMPONENT_NAME, "Check analysis file for species names in supplementary information...");
 			supplinfAnalysisResults = analysisManager.getSupplementaryInfoCommonNamesResults();
 			configuration.getLogger().logMessage("found " + supplinfAnalysisResults.size() + " result(s).");
 		}
@@ -56,8 +58,10 @@
 					summaryAnalysisResults.add(sumResult);
 					
 					// if there is an analysis folder, add result to analysis file
-					if (analysisManager != null)
+					if (analysisManager != null) {
+						analysisManager.ensureCommonNamesStrucuture();
 						analysisManager.addSummaryCommonNamesResult(sumResult);
+					}
 				}
 			}
 		}
@@ -72,13 +76,46 @@
 					supplinfAnalysisResults.add(supinfResult);
 					
 					// if there is an analysis folder, add result to analysis file
-					if (analysisManager != null)
+					if (analysisManager != null) {
+						analysisManager.ensureCommonNamesStrucuture();
 						analysisManager.addSupplInfCommonNamesResult(supinfResult);
+					}
 				}
 			}
 		}
 		
-		return null;
+		configuration.getLogger().logMessage(COMPONENT_NAME, "Creating analysis results...");
+		int idx = 0;
+		for (String summaryResult : summaryAnalysisResults) {
+			ICommonNameFinderParser nameParser = new LinnaeusParser(summaryResult);
+			
+			List<ScientificName> speciesNames = nameParser.parseSpeciesNames();
+			ScientificNamesExtraction speciesNameResult = new ScientificNamesExtraction();
+			speciesNameResult.setType(TextType.TYPE_SUMMARY);
+			speciesNameResult.setNames(speciesNames);
+			speciesNameResult.setTextIdx(idx);
+			speciesNameResult.setFoundBy(this.getClass());
+			
+			results.add(speciesNameResult);
+			idx++;
+		}
+		
+		idx = 0;
+		for (String suplinfResult : supplinfAnalysisResults) {
+			ICommonNameFinderParser nameParser = new LinnaeusParser(suplinfResult);
+			
+			List<ScientificName> scientificNames = nameParser.parseSpeciesNames();
+			ScientificNamesExtraction scientificNameResult = new ScientificNamesExtraction();
+			scientificNameResult.setType(TextType.TYPE_SUPLINF);
+			scientificNameResult.setNames(scientificNames);
+			scientificNameResult.setTextIdx(idx);
+			scientificNameResult.setFoundBy(this.getClass());
+			
+			results.add(scientificNameResult);
+			idx++;
+		}
+		
+		return results;
 	}
 	
 }