(no commit message)
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / DeltaTextDataProcessor.java
1 package eu.etaxonomy.cdm.api.service;
2
3 import java.util.Map;
4
5 import org.apache.commons.lang.StringUtils;
6
7 import eu.etaxonomy.cdm.model.common.Language;
8 import eu.etaxonomy.cdm.model.common.LanguageString;
9 import eu.etaxonomy.cdm.model.description.TextData;
10
11 public class DeltaTextDataProcessor implements INaturalLanguageTextDataProcessor {
12
13 @Override
14 public void process(TextData textData, TextData previousTextData) {
15 boolean doItBetter = false;
16
17 Map<Language,LanguageString> previousMultiLanguageText = previousTextData.getMultilanguageText();
18 Map<Language,LanguageString> multiLanguageText = textData.getMultilanguageText();
19
20 for (Language language : multiLanguageText.keySet()){
21 LanguageString langString = multiLanguageText.get(language);
22 String text = langString.getText();
23
24 LanguageString tmpMultilangText = previousMultiLanguageText.get(language);
25 if( tmpMultilangText != null){
26 text = StringUtils.remove(text, tmpMultilangText.getText());
27 }
28
29 if (doItBetter) { //TODO remove the text between brackets
30 StringBuilder strbuilder = new StringBuilder();
31 do {
32 strbuilder.append(StringUtils.substringBefore(text, "<"));
33 }
34 while (!(text=StringUtils.substringAfter(text, ">")).equals(""));
35 StringUtils.substringBeforeLast(strbuilder.toString()," ");
36 }
37 else{
38 text=StringUtils.replaceChars(text,"<>","");
39 }
40
41 textData.removeText(language);
42 textData.putText(language, text);
43
44 }
45
46 }
47
48 }