1 package com.acumenvelocity.ath.steps;
2
3 import com.acumenvelocity.ath.common.OkapiUtil;
4
5 import net.sf.okapi.common.Event;
6 import net.sf.okapi.common.pipeline.BasePipelineStep;
7 import net.sf.okapi.common.resource.ITextUnit;
8 import net.sf.okapi.common.resource.TextContainer;
9 import net.sf.okapi.common.resource.TextFragment;
10 import net.sf.okapi.common.resource.TextFragmentUtil;
11
12 public class TargetRemovalStep extends BasePipelineStep {
13
14 @Override
15 public String getName() {
16 return "Target Removal";
17 }
18
19 @Override
20 public String getDescription() {
21 return "Places a dash character in the target, copies source codes to the target";
22 }
23
24 @Override
25 protected Event handleTextUnit(Event event) {
26 ITextUnit tu = event.getTextUnit();
27 TextContainer source = tu.getSource();
28 TextFragment src = source.getUnSegmentedContentCopy();
29 TextContainer target = tu.getTarget(getTargetLocale());
30
31 if (target != null) {
32 target.clear();
33 target.append("-");
34 TextFragment trg = target.getUnSegmentedContentCopy();
35
36 TextFragmentUtil.alignAndCopyCodeMetadata(src, trg, true, true);
37
38
39 OkapiUtil.rearrangeCodes(src.getCodes(), trg);
40 target.setContent(trg);
41 }
42
43 return super.handleTextUnit(event);
44 }
45 }