public SubFilterSkeletonWriter createSkeletonWriter (StartSubfilter resource, LocaleId outputLocale, String outputEncoding, ILayerProvider layer) { this.skelWriter = new SubFilterSkeletonWriter(this); return this.skelWriter.setOptions(outputLocale, outputEncoding, this, layer); }
@Override public String processEndSubfilter (EndSubfilter resource) { // If the subfilter that's ending isn't *this* subfilter, keep digging. if (isSubfilterActive() && !SubFilter.resourceIdsMatch(sfWriter.getStartResourceId(), resource.getId())) { return sfWriter.processEndSubfilter(resource); } String res = ""; if (sfDirectOutput) { res = sfWriter.getEncodedOutput(); } res += _processEndGroup(resource); sfWriter = null; return res; }
public String getEncodedOutput () { return processEndDocument(GET_OUTPUT); }
@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); }
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; }
@Override public String processEndGroup (Ending resource) { if (isSubfilterActive()) { return sfWriter.processEndGroup(resource); } return _processEndGroup(resource); }
@Override public String processEndSubDocument (Ending resource) { if (isSubfilterActive()) { return sfWriter.processEndSubDocument(resource); } if ( storageStack.size() > 0 ) { storageStack.peek().add(resource); return ""; } return getString((GenericSkeleton)resource.getSkeleton(), EncoderContext.SKELETON); }
@Override public String processDocumentPart (DocumentPart resource) { if (isSubfilterActive()) { return sfWriter.processDocumentPart(resource); } if ( resource.isReferent() ) { referents.put(resource.getId(), new Referent(resource, referentCopies)); return ""; } if ( storageStack.size() > 0 ) { storageStack.peek().add(resource); return ""; } return getString((GenericSkeleton)resource.getSkeleton(), EncoderContext.SKELETON); }
tmp.append(ssf.getSkeletonWriter().getEncodedOutput());
return sfWriter.processStartDocument(outputLocale, outputEncoding, layer, encoderManager, resource);
@Override public String processEndDocument (Ending resource) { if (isSubfilterActive()) { return sfWriter.processEndDocument(resource); } return getString((GenericSkeleton)resource.getSkeleton(), EncoderContext.SKELETON); }