View Javadoc
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        // Rearrange opening and closing codes
39        OkapiUtil.rearrangeCodes(src.getCodes(), trg);
40        target.setContent(trg);
41      }
42  
43      return super.handleTextUnit(event);
44    }
45  }