@Override public String processStartSubfilter (StartSubfilter resource) { XMLSkeleton skel = (XMLSkeleton)resource.getSkeleton(); if ( skel == null ) return ""; //TODO: implement subfilter support return null; }
@Override public String processStartSubfilter (StartSubfilter resource) { if ( resource.isReferent() || ( storageStack.size() > 0 )) { return super.processStartSubfilter(resource); } return "<![CDATA["; }
public SubFilterSkeletonWriter (StartSubfilter resource) { sb = new StringBuilder(); IFilterWriter sfFilterWriter = resource.getFilterWriter(); this.skelWriter = sfFilterWriter.getSkeletonWriter(); this.parentEncoder = resource.getParentEncoder(); this.startResourceId = resource.getId(); }
public Code createRefCode () { startSubfilter.setIsReferent(true); Code c = new Code(TagType.PLACEHOLDER, startSubfilter.getName(), TextFragment.makeRefMarker(startSubfilter.getId())); c.setReferenceFlag(true); return c; }
@Override public String processStartSubfilter (StartSubfilter resource) { if (isSubfilterActive()) { return sfWriter.processStartSubfilter(resource); } SubFilterSkeletonWriter sfsw = resource.createSkeletonWriter(resource, outputLoc, outputEncoding, layer); if (sfsw.getSkelWriter() != this) sfWriter = sfsw; else sfWriter = null; // Prevent recursive references of skeleton writers // If sfDirectOutput is true, then output the subfilter events with END_SUBFILTER, not when a reference to the SSF is resolved sfDirectOutput = sfWriter != null && !resource.isReferent(); return _processStartGroup(resource); }
isCollectingEvents = ssf.isReferent(); if (isCollectingEvents) { groupId = ssf.getId(); group = new MultiEvent();
new StartSubfilter( subFilter.buildResourceId(null, StartSubfilter.class), sd, startSubfilter.setName(subFilter.buildResourceName(null, false, StartSubfilter.class)); event = new Event(EventType.START_SUBFILTER, startSubfilter); break;
public SubFilterSkeletonWriter setOptions (LocaleId outputLocale, String outputEncoding, StartSubfilter startSubfilter, ILayerProvider layer) { StartDocument sfStartDoc = startSubfilter.getStartDoc(); IFilterWriter sfFilterWriter = sfStartDoc.getFilterWriter(); EncoderManager sfEncoderManager = sfFilterWriter.getEncoderManager(); processStartDocument(outputLocale, outputEncoding, layer, sfEncoderManager, startSubfilter.getStartDoc()); return this; }
tmp.append(ssf.getSkeletonWriter().getEncodedOutput());
if (ssf == null) break; startDocument = ssf.getStartDoc(); if (startDocument == null) break;
/** * Flush all remaining events from the {@link Event} queues */ public void flushRemainingTempEvents() { if (hasUnfinishedSkeleton()) { endDocumentPart(); } else if (!tempFilterEventStack.isEmpty()) { // go through filtered object stack and close them one by one while (!tempFilterEventStack.isEmpty()) { Event fe = tempFilterEventStack.peek(); if (fe.getEventType() == EventType.START_GROUP) { StartGroup sg = (StartGroup) fe.getResource(); endGroup((GenericSkeleton) sg.getSkeleton()); } else if (fe.getEventType() == EventType.START_SUBFILTER) { StartSubfilter sf = (StartSubfilter) fe.getResource(); endGroup((GenericSkeleton) sf.getSkeleton()); } else if (fe.getEventType() == EventType.TEXT_UNIT) { endTextUnit(); } } } }