@Override public String processTextUnit(ITextUnit resource) { if (resource.getSkeleton() instanceof GenericSkeleton) { GenericSkeleton skeleton = (GenericSkeleton) resource.getSkeleton(); StringBuilder firstPartData = skeleton.getFirstPart().getData(); clarifyTextDirection(firstPartData); } return super.processTextUnit(resource); }
/** * Gets the skeleton and the original content of a given text unit. * @param tu The text unit to process. * @param locToUse locale to output. Use null for the source, or a LocaleId * object for the target locales. * @param context Context flag: 0=text, 1=skeleton, 2=in-line. * @return The string representation of the text unit. */ protected String getString (ITextUnit tu, LocaleId locToUse, EncoderContext context) { GenericSkeleton skel = (GenericSkeleton)tu.getSkeleton(); if ( skel == null ) { // No skeleton return getContent(tu, locToUse, context); } // Else: process the skeleton parts, one of them should // refer to the text-unit content itself StringBuilder tmp = new StringBuilder(); for ( GenericSkeletonPart part : skel.getParts() ) { tmp.append(getString(part, context)); } return tmp.toString(); }
private void writeTextUnitReferenceableEvent(ReferenceableEvent referenceableEvent) { referenceableEventMerger.merge(referenceableEvent); StyledTextSkeleton skeleton = (StyledTextSkeleton) referenceableEvent.getEvent().getTextUnit().getSkeleton(); events.addAll(storyChildElementsWriter.write(skeleton.getStoryChildElements())); }
private void mergeTextUnit(ReferenceableEvent referenceableEvent) { ITextUnit textUnit = referenceableEvent.getEvent().getTextUnit(); StyledTextSkeleton styledTextSkeleton = (StyledTextSkeleton) textUnit.getSkeleton(); storyChildElements = styledTextSkeleton.getStoryChildElements(); codeMap = styledTextSkeleton.getCodeMap(); savedStoryChildElements = new ArrayDeque<>(); savedBreak = saveBreak(storyChildElements); storyChildElements.clear(); currentStyleDefinitions = new ArrayDeque<>(); contentTextBuilder = new StringBuilder(); contentEvents = new ArrayList<>(); mergeTextContainer(null == textUnit.getTarget(targetLocale) ? textUnit.getSource() : textUnit.getTarget(targetLocale)); }
/** * Creates a new text unit resource based on a given string becoming the source text of the text unit, and a * skeleton string, which gets appended to the new text unit's skeleton. * * @param srcPart * the given string becoming the source text of the created text unit. * @param skelPart * the skeleton string appended to the new text unit's skeleton. * @return a new text unit resource with the given string being its source text, and the skeleton string in the * skeleton. */ public static ITextUnit buildTU (String srcPart, String skelPart) { ITextUnit res = buildTU(srcPart); if (res == null) return null; GenericSkeleton skel = (GenericSkeleton) res.getSkeleton(); if (skel == null) return null; skel.addContentPlaceholder(res); skel.append(skelPart); return res; }
/** * Convert the skeleton attached to an in-progress {@link TextUnit} into * a {@link DocumentPart}. This is used when a TextUnit has been started * but then is immediately ended without any content. The final skeleton * part in the TU is always a self-reference, which is stripped during * the conversion. */ public void convertTempTextUnitToDocumentPart() { if (peekTempEvent().getEventType() != EventType.TEXT_UNIT) { return; } Event e = popTempEvent(); ITextUnit textUnit = (e.getTextUnit()); GenericSkeleton oldTuSkeleton = (GenericSkeleton)textUnit.getSkeleton(); if (oldTuSkeleton != null) { List<GenericSkeletonPart> parts = oldTuSkeleton.getParts(); // Skip the trailing [$$self$] reference StringBuilder sb = new StringBuilder(); for (int i = 0; i < parts.size() - 1; i++) { sb.append(parts.get(i).toString()); } addToDocumentPart(sb.toString()); endDocumentPart(); } }
private void mergeTextUnit (ITextUnit tu) { ICMLSkeleton skel = (ICMLSkeleton)tu.getSkeleton();
if (tu == null) return; skel = (GenericSkeleton) tu.getSkeleton();
/** * Makes sure that a given text unit contains a skeleton. If there's no skeleton already attached to the text unit, * a new skeleton object is created and attached to the text unit. * * @param tu * the given text unit to have a skeleton. * @return the skeleton of the text unit. */ public static GenericSkeleton forceSkeleton (ITextUnit tu) { if (tu == null) return null; GenericSkeleton skel = (GenericSkeleton) tu.getSkeleton(); if (skel == null) { skel = new GenericSkeleton(); tu.setSkeleton(skel); } if (!SkeletonUtil.hasTuRef(skel)) skel.addContentPlaceholder(tu); return skel; }
@Override protected Event handleTextUnit(Event event) { ITextUnit tu = event.getTextUnit(); String r = null; if (rules != null) { r = rules.getRules(); } TextUnitUtil.simplifyCodes(tu, r, params.getRemoveLeadingTrailingCodes() && tu.getSkeleton() instanceof GenericSkeleton, params.getMergeCodes()); //TextUnitUtil.convertTextParts(tu.getSource()); return super.handleTextUnit(event); }
TextFragment tf = tu.getSource().getFirstContent(); TextFragment[] res = simplifier.simplifyAll(tf, true); ICMLSkeleton skel = (ICMLSkeleton)tu.getSkeleton();
@Override public String processTextUnit (ITextUnit resource) { XMLSkeleton skel = (XMLSkeleton)resource.getSkeleton(); if ( skel == null ) return "";
return null; GenericSkeleton skel = (GenericSkeleton) textUnit.getSkeleton();
if (tu.getSkeleton() != null) { if (tu.getSkeleton() instanceof BlockSkeleton) { BlockSkeleton skel = ((BlockSkeleton)tu.getSkeleton()); Block block = skel.getBlock(); Map<Integer, XMLEvents> codeMap = skel.getCodeMap(); bidirectionalityClarifier, cparams).write(target); } else if (tu.getSkeleton() instanceof StringItemSkeleton) { StringItemSkeleton skel = ((StringItemSkeleton)tu.getSkeleton()); StringItem stringItem = skel.getStringItem(); chunks = stringItem.getChunks();
ISkeleton skel = tu.getSkeleton(); if (skel == null) { return true;
addStoryChildElementsFromStyledTextSkeleton((StyledTextSkeleton) referentEvent.getEvent().getTextUnit().getSkeleton());
if (textUnit.getSkeleton() == null) { GenericSkeleton skel = new GenericSkeleton(); textUnit.setSkeleton(skel);
GenericSkeleton skel = (GenericSkeleton) parentTu.getSkeleton(); if (skel == null) { skel = new GenericSkeleton();
GenericSkeleton s = (GenericSkeleton)tu.getSkeleton(); if (s != null) { for (GenericSkeletonPart p : s.getParts()) {
GenericSkeleton[] beforeAndAfter = SkeletonUtil.splitSkeleton((GenericSkeleton) textUnit.getSkeleton()); for (Event e : events) { switch(e.getEventType()) {