1 package eu
.etaxonomy
.cdm
.api
.service
;
5 import org
.apache
.commons
.lang
.StringUtils
;
7 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
8 import eu
.etaxonomy
.cdm
.model
.common
.LanguageString
;
9 import eu
.etaxonomy
.cdm
.model
.description
.TextData
;
11 public class DeltaTextDataProcessor
implements INaturalLanguageTextDataProcessor
{
14 public void process(TextData textData
, TextData previousTextData
) {
15 boolean doItBetter
= false;
17 Map
<Language
,LanguageString
> previousMultiLanguageText
= previousTextData
.getMultilanguageText();
18 Map
<Language
,LanguageString
> multiLanguageText
= textData
.getMultilanguageText();
20 for (Language language
: multiLanguageText
.keySet()){
21 LanguageString langString
= multiLanguageText
.get(language
);
22 String text
= langString
.getText();
24 LanguageString tmpMultilangText
= previousMultiLanguageText
.get(language
);
25 if( tmpMultilangText
!= null){
26 text
= StringUtils
.remove(text
, tmpMultilangText
.getText());
29 if (doItBetter
) { //TODO remove the text between brackets
30 StringBuilder strbuilder
= new StringBuilder();
32 strbuilder
.append(StringUtils
.substringBefore(text
, "<"));
34 while (!(text
=StringUtils
.substringAfter(text
, ">")).equals(""));
35 StringUtils
.substringBeforeLast(strbuilder
.toString()," ");
38 text
=StringUtils
.replaceChars(text
,"<>","");
41 textData
.removeText(language
);
42 textData
.putText(language
, text
);