private static void printSkeleton(StringBuilder sb, String ind, IResource res) { if (res.getSkeleton() != null) { sb.append("skeleton:\""); appendEscapingNonAscii(sb, res.getSkeleton().toString()).append("\",\n").append(ind); } }
public Event createRefEvent (IResource resource) { ISkeleton skel = resource.getSkeleton(); if (skel instanceof GenericSkeleton) { GenericSkeleton[] parts = SkeletonUtil.splitSkeleton((GenericSkeleton) skel); return createRefEvent(parts[0], parts[1]); } else { if (skel != null) logger.warn("Unknown skeleton type, ignored."); return createRefEvent(); } }
private void storeReferent (IResource res) { ISkeleton skel = res.getSkeleton(); if ( skel == null ) return; if ( res instanceof ITextUnit ) { referents.put(res.getId(), TU_PREFIX+skel.toString()); } else { referents.put(res.getId(), skel.toString()); } }
if( bothAreNull(r1.getSkeleton(),r2.getSkeleton()) ){ return true; if(oneIsNulll(r1.getSkeleton(),r2.getSkeleton(),"compareIResource","IResource skeleton") || oneIsNulll(r1.getSkeleton().toString(),r2.getSkeleton().toString(),"compareIResource","IResource skeleton string")){ return false; if (!r1.getSkeleton().toString().equals(r2.getSkeleton().toString())) { LOGGER.warn("compareIResource warning: Skeleton content difference (If skeleton difference is acceptable turn it off in the settings).\n" + "skel1=\"{}\"\nskel2=\"{}\"", r1.getSkeleton().toString(), r2.getSkeleton().toString()); return false;
/** * Is the current buffered {@link Event} a complex {@link TextUnit}? A complex TextUnit is one which carries along * with it it's surrounding formatting or skeleton such <p> text </p> or <title> text </title> * * @return true, if current {@link Event} is a complex text unit, false otherwise. */ public boolean isCurrentComplexTextUnit() { Event e = peekTempEvent(); if (e != null && e.getEventType() == EventType.TEXT_UNIT && e.getResource().getSkeleton() != null) { return true; } return false; }
private void addSkeletonToQueue (String data, boolean forceNewEntry) { GenericSkeleton skel; if ( !forceNewEntry && ( queue.size() > 0 )) { if ( queue.getLast().getResource() instanceof DocumentPart ) { // Append to the last queue entry if possible skel = (GenericSkeleton)queue.getLast().getResource().getSkeleton(); skel.append(data.replace("\n", lineBreak)); return; } } // Else: create a new skeleton entry skel = new GenericSkeleton(data.replace("\n", lineBreak)); queue.add(new Event(EventType.DOCUMENT_PART, new DocumentPart(otherId.createId(), false, skel))); }
protected String getString (INameable ref, String propName, LocaleId locToUse, EncoderContext context) { if ( ref == null ) { logger.warn("Null reference for '{}'.", propName); return "-ERR:NULL-REF-"; } if ( propName != null ) { return getPropertyValue((INameable)ref, propName, locToUse, context); } if ( ref instanceof ITextUnit ) { return getString((ITextUnit)ref, locToUse, context); } if ( ref instanceof DocumentPart ) { return getString((GenericSkeleton)((IResource)ref).getSkeleton(), context); } if ( ref instanceof StorageList ) { return getString((StorageList)ref, locToUse, context); } logger.warn("Invalid reference type for '{}'.", propName); return "-ERR:INVALID-REFTYPE-"; }
tmp.append(getString((GenericSkeleton)res.getSkeleton(), context)); break; tmp.append(getString((GenericSkeleton)res.getSkeleton(), context)); tmp.append(getString((GenericSkeleton)res.getSkeleton(), context));
tmp.replace(start, end, getString((GenericSkeleton)((IResource)ref).getSkeleton(), EncoderContext.INLINE));
LOGGER.trace(event.getResource().toString()); if (event.getResource().getSkeleton() != null) { LOGGER.trace("*Skeleton: \n{}", event.getResource().getSkeleton().toString());
/** * Appends text to the first data part of the skeleton. * * @param text * the text to happend. * * @throws OkapiIllegalFilterOperationException if we try to perform an invalid operation. */ public void appendToFirstSkeletonPart(String text) { Event tempTextUnit = peekTempEvent(); GenericSkeleton skel = (GenericSkeleton) tempTextUnit.getResource().getSkeleton(); if (skel==null) { skel = new GenericSkeleton(); tempTextUnit.getResource().setSkeleton(skel); } skel.appendToFirstPart(text); }
ISkeleton skel = res.getSkeleton(); if (skel instanceof GenericSkeleton) { IResource prevRes = prevEvent.getResource(); ISkeleton prevSkel = prevRes.getSkeleton(); if (prevSkel instanceof GenericSkeleton) ((GenericSkeleton) prevSkel).add((GenericSkeleton) skel);
private boolean isComplex(IResource res) { if (res == null) return false; if (res instanceof ITextUnit) { ITextUnit tu = (ITextUnit)res; TextFragment tf = tu.getSource().getUnSegmentedContentCopy(); for (Code code : tf.getCodes()) { if (code.hasReference()) return true; } } ISkeleton skel = res.getSkeleton(); if (skel == null) { return false; } if (!(skel instanceof GenericSkeleton)) { return false; } List<GenericSkeletonPart> parts = ((GenericSkeleton) skel).getParts(); for (GenericSkeletonPart part : parts) if (!SkeletonUtil.isText(part)) return true; return false; }
refData = getString((GenericSkeleton)((IResource)ref).getSkeleton(), context);
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); }
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 }
private void convertRefs (Event event) { if ( event.isMultiEvent() ) { MultiEvent me = event.getMultiEvent(); for (Event e : me) { convertRefs(e); } } else { if ( event.isTextUnit() ) { ITextUnit tu = event.getTextUnit(); convertTextContainer(tu.getSource()); for (LocaleId locId : tu.getTargetLocales()) { convertTextContainer(tu.getTarget(locId)); } } ISkeleton skel = event.getResource().getSkeleton(); subFilter.convertRefsInSkeleton(skel); } }
nextAction = NextAction.NEXT_IN_DOCUMENT; ZipSkeleton skel = new ZipSkeleton( (GenericSkeleton) event.getResource().getSkeleton(), subDocument.getZipFile(), subDocument.getZipEntry()); subDocument.close(); return new Event(EventType.END_SUBDOCUMENT, ending, skel);
GenericSkeleton skel = (GenericSkeleton) tempTextUnit.getResource().getSkeleton();
nextAction = NextAction.NEXTINZIP; ZipSkeleton skel = new ZipSkeleton( (GenericSkeleton)event.getResource().getSkeleton(), zipFile.getZip(), entry); currentPartHandler.close(); return new Event(EventType.END_SUBDOCUMENT, ending, skel);