@Override public ISegments getTargetSegments (LocaleId trgLoc) { return createTarget(trgLoc, false, IResource.COPY_SEGMENTATION).getSegments(); }
@Override public ISegments getSourceSegments() { return getSource().getSegments(); }
private void doJoinWithNext(TextContainer cont, String segId) { int segIndex; ISegments segs = cont.getSegments(); segIndex = segs.getIndex(segId); if (segIndex != -1) segs.joinWithNext(segIndex); }
@Override public Segment getCorrespondingSource(Segment trgSeg, LocaleId trgLoc) { ISegments srcSegs = getSource(trgLoc).getSegments(); return srcSegs.get(trgSeg.id); }
public void write(TextContainer tc) { for (Segment segment : tc.getSegments()) { writeSegment(segment); } flushText(true); }
public long getWordCount (TextContainer cont) { long res = 0; for ( Segment seg : cont.getSegments() ) { res += getWordCount(prepareFragment(seg.text)); } return res; }
@Override public Iterator<Segment> iterator(LocaleId trgLoc) { return getSource(trgLoc).getSegments().iterator(); }
@Override public Segment getSource(int index, LocaleId trgLoc) { return getSource(trgLoc).getSegments().get(index); }
@Override public Segment getSourceSegment(String segId, boolean createIfNeeded) { Segment seg = getSource().getSegments().get(segId); if ((seg == null) && createIfNeeded) { seg = new Segment(segId); getSource().getSegments().append(seg); } return seg; }
@Override public Segment getTargetSegment(LocaleId trgLoc, String segId, boolean createIfNeeded) { Segment seg = createTarget(trgLoc, false, IResource.COPY_SEGMENTATION).getSegments().get(segId); if (( seg == null ) && createIfNeeded ) { // If the segment does not exists: create a new one if requested seg = new Segment(segId); getTarget(trgLoc).getSegments().append(seg); //TODO consider appending a segment to variant source if present } return seg; }
/** * Returns the character count information stored by CharacterCountStep in a given segment of the source part of a given text unit. * @param tu the given tu * @param segIndex index of the segment in the source * @return number of characters (0 if no character count information found) */ public static long getCount(ITextUnit tu, int segIndex) { ISegments segments = tu.getSource().getSegments(); return getCount(segments.get(segIndex)); }
@Override public TextFragment setTargetContent (LocaleId locId, TextFragment content) { TextContainer tc = createTarget(locId, false, CREATE_EMPTY); tc.setContent(content); // We can use this because the setContent() removed any segmentation return tc.getSegments().getFirstContent(); }
private void mergeTextContainer(TextContainer textContainer) { for (Segment segment : textContainer.getSegments()) { mergeSegment(segment); } addContent(); addBreak(); }
/** * Returns the word count information stored by WordCountStep in a given segment of the source part of a given text unit. * @param tu the given tu * @param segIndex index of the segment in the source * @return number of words (0 if no word count information found) */ public static long getCount(ITextUnit tu, int segIndex) { ISegments segments = tu.getSource().getSegments(); return getCount(segments.get(segIndex)); }
private int removeSegment(TextContainer container, String segId) { ISegments segs = container.getSegments(); int segIndex = segs.getIndex(segId); if (segIndex > -1) { container.remove(segs.getPartIndex(segIndex)); return 1; } return 0; }
@Override public void segmentTarget(ISegmenter segmenter, LocaleId targetLocale) { TextContainer theTarget = parent.createTarget(targetLocale, false, IResource.COPY_SEGMENTATION); segmenter.computeSegments(theTarget); theTarget.getSegments().create(segmenter.getRanges()); // TODO: invalidate source and other targets? or this one. // but then there is no way to call segmentTarget and get all in synch }
@Override public void segmentSource(ISegmenter segmenter, LocaleId targetLocale) { TextContainer theSource = getSource(targetLocale); segmenter.computeSegments(theSource); theSource.getSegments().create(segmenter.getRanges()); }
@Override public void createTargetSegmentation (ISegmenter segmenter, LocaleId targetLocale) { TextContainer tc = getTarget(targetLocale); if ( tc == null ) { throw new OkapiException(String.format("There is no target content for '%s'", targetLocale.toString())); } segmenter.computeSegments(tc); tc.getSegments().create(segmenter.getRanges()); }
@Override public void createSourceSegmentation (ISegmenter segmenter) { segmenter.computeSegments(getSource()); getSource().getSegments().create(segmenter.getRanges()); }
private void removeMetric (ITextUnit textUnit) { TextContainer source = textUnit.getSource(); ISegments segs = source.getSegments(); if (segs != null) { for (Segment seg : segs) { removeFromMetrics(seg, getMetric()); } } removeFromMetrics(source, getMetric()); removeFromMetrics(textUnit, getMetric()); }