@Override public Event next() { return filter.next(); }
@Override public Event next () { return converter.convertEvent(filter.next()); }
private void flushFilterEvents () { // Finish to go through the original file while ( filter.hasNext() ) { writer.handleEvent(filter.next()); } writer.close(); }
private Event synchronize (IFilter filter, EventType untilType) { boolean found = false; Event event = null; while ( !found && filter.hasNext() ) { event = filter.next(); found = (event.getEventType() == untilType); } if ( !found ) { throw new OkapiException("The document to compare is de-synchronized."); } return event; }
@Override public Event next() { if (delegate != null) { Event e = delegate.next(); if (e.isStartDocument()) { StartDocument sd = e.getStartDocument(); sd.setFilterParameters(getParameters()); } return e; } return null; }
/** * Get events in the original document until the next text unit. Any event * before is passed to the writer. * * @return the event of the next text unit, or null if no next text unit is * found. */ protected Event processUntilTextUnit() { Event event = null; while (skeletonFilter.hasNext()) { event = skeletonFilter.next(); // No more events if (event == null) { return event; } // Process that event if (event.isTextUnit()) { return event; } // write out the non-TextUnit event writer.handleEvent(event); } return event; }
private void readEntriesToCopy () { toCopy = new HashMap<String, ITextUnit>(); try (IFilter filter = fcMapper.createFilter(toCopyInput.getFilterConfigId(), null)) { // Open the second input for this batch item filter.open(toCopyInput); while ( filter.hasNext() ) { final Event event = filter.next(); if ( event.getEventType() == EventType.TEXT_UNIT ) { ITextUnit tu = event.getTextUnit(); String id = tu.getName(); if ( Util.isEmpty(id) ) { logger.warn("Entry without id detected in second file."); continue; } // Else: put in the hash table if ( toCopy.get(id) != null ) { logger.warn("Duplicate id detected: {}", id); continue; } toCopy.put(id, tu); } } } } }
private boolean hasPreTranslation (String poPath) { IFilter filter = new POFilter(); try { filter.open(new RawDocument(new File(poPath).toURI(), "UTF-8", manifest.getSourceLocale(), manifest.getTargetLocale())); while ( filter.hasNext() ) { Event event = filter.next(); if ( event.isTextUnit() ) { ITextUnit tu = event.getTextUnit(); if ( tu.hasTarget(manifest.getTargetLocale()) ) return true; } } } catch ( Throwable e ) { logger.error("Error while looking for pre-translation.\n"+e.getLocalizedMessage()); } finally { if ( filter != null ) { filter.close(); } } return false; }
private void flushFilterEvents() { try { // Finish the skeleton events Event event = null; while (skeletonFilter.hasNext()) { event = skeletonFilter.next(); if (event.isTextUnit()) { throw new OkapiMergeException(String.format( "No corresponding text unit for id='%s' in the skeleton file.", event.getTextUnit().getId())); } writer.handleEvent(event); } } finally { writer.close(); } }
/** * Imports TMX to Pensieve * @param tmxUri The location of the TMX * @param targetLang The target language to index * @param tmWriter The TMWriter to use when writing to the TM * @throws java.io.IOException if there was a problem with the TMX import */ public void importTmx(URI tmxUri, LocaleId targetLang, ITmWriter tmWriter) throws IOException { checkImportTmxParams(tmxUri, targetLang, tmWriter); try { tmxFilter.open(new RawDocument(tmxUri, null, sourceLang, targetLang)); while (tmxFilter.hasNext()) { Event event = tmxFilter.next(); indexEvent(targetLang, tmWriter, event); } } finally { tmxFilter.close(); } }
Event e = filter.next(); if (e == null) return; if (e.isNoop()) continue; // Get next filter event
private Event openSubDocument () { if (subFilter != null) subFilter.close(); Event event; try { subFilter.open(new RawDocument(zipFile.getInputStream(entry), "UTF-8", srcLoc, trgLoc)); event = subFilter.next(); // START_DOCUMENT } catch (IOException e) { throw new OkapiIOException("Error opening internal file.", e); } // Change the START_DOCUMENT event from sub-filter to START_SUBDOCUMENT StartDocument sd = null; StartSubDocument ssd = null; if (event.getEventType() == EventType.START_DOCUMENT) { sd = (StartDocument) event.getResource(); ssd = new StartSubDocument(SID, sd.getId()); saveStartDoc = sd; // Remember the SD transformed to SSD not to loose isMultilingual } else ssd = new StartSubDocument(SID, String.valueOf(++subDocId)); ResourceUtil.copyProperties(sd, ssd); ssd.setName(docURI.getPath() + "/" + entry.getName()); // Use '/' nextAction = NextAction.NEXTINSUBDOC; ZipSkeleton skel = new ZipSkeleton( (GenericSkeleton)event.getResource().getSkeleton(), zipFile, entry); return new Event(EventType.START_SUBDOCUMENT, ssd, skel); }
final Event event = filter.next(); if ( event.getEventType() == EventType.TEXT_UNIT ) { ITextUnit tu = event.getTextUnit();
layerWriter.writeEvent(filter.next());
layerWriter.writeEvent(filter.next());
/** * Get events in the original document until the next text unit. * Any event before is passed to the writer. * @return the event of the next text unit, or null if no next text unit is found. */ private Event processUntilTextUnit () { while ( filter.hasNext() ) { Event event = filter.next(); if ( event.getEventType() == EventType.TEXT_UNIT ) { ITextUnit tu = event.getTextUnit(); if ( !tu.isTranslatable() ) { // Do not merge the translation for non-translatable writer.handleEvent(event); continue; } if ( skipEmptySourceEntries && tu.isEmpty() ) { // For some types of package: Do not merge the translation for non-translatable writer.handleEvent(event); continue; } return event; } // Else: write out the event writer.handleEvent(event); } // This text unit is extra in the translated file return null; }
int tuIndex = 0; while ( filter.hasNext() ) { Event event = filter.next(); switch ( event.getEventType() ) { case START_DOCUMENT:
private Event nextInSubDocument () { if (saveStartDoc != null && subDocWriter != null) { // To set the lost StartDocument's isMultilingual in sub-filter's skeleton writer subDocWriter.getSkeletonWriter().processStartDocument(trgLoc, "UTF-8", null, subDocWriter.getEncoderManager(), saveStartDoc); saveStartDoc = null; } Event event; while ( subFilter.hasNext() ) { event = subFilter.next(); switch ( event.getEventType() ) { case END_DOCUMENT: // Change the END_DOCUMENT to END_SUBDOCUMENT Ending ending = (Ending) event.getResource(); nextAction = NextAction.NEXTINZIP; ZipSkeleton skel = new ZipSkeleton( (GenericSkeleton)event.getResource().getSkeleton(), zipFile, entry); return new Event(EventType.END_SUBDOCUMENT, ending, skel); default: // Else: just pass the event through return event; } } return null; // Should not get here }
writer.setOutput(sink); while (filter.hasNext()) { Event e = filter.next(); if (e.getEventType() == EventType.TEXT_UNIT) { processTextUnit(e.getTextUnit());
Event skelEvent = skeletonFilter.next();