package folioxml.export.plugins; import folioxml.config.ExportLocations; import folioxml.config.InfobaseConfig; import folioxml.config.InfobaseSet; import folioxml.core.InvalidMarkupException; import folioxml.export.*; import folioxml.slx.ISlxTokenReader; import folioxml.slx.SlxRecord; import folioxml.xml.NodeList; import folioxml.xml.XmlRecord; import java.io.IOException; public class ApplyProcessor implements InfobaseSetPlugin { NodeListProcessor processor; public ApplyProcessor(NodeListProcessor p) { this.processor = p; } @Override public void beginInfobaseSet(InfobaseSet set, ExportLocations export, LogStreamProvider logs) throws IOException, InvalidMarkupException { if (processor instanceof ExportingNodeListProcessor) { ExportingNodeListProcessor enlp = (ExportingNodeListProcessor) processor; enlp.setExportLocations(export); enlp.setLogProvider(logs); } } @Override public void beginInfobase(InfobaseConfig infobase) throws IOException { } @Override public ISlxTokenReader wrapSlxReader(ISlxTokenReader reader) { return reader; } @Override public void onSlxRecordParsed(SlxRecord clean_slx) throws InvalidMarkupException, IOException { } @Override public FileNode assignFileNode(XmlRecord xr, SlxRecord dirty_slx) throws InvalidMarkupException, IOException { return null; } @Override public void onRecordComplete(XmlRecord xr, FileNode file) throws InvalidMarkupException, IOException { if (!xr.isRootRecord()) { if (processor instanceof ExportingNodeListProcessor) { ExportingNodeListProcessor enlp = (ExportingNodeListProcessor) processor; enlp.setFileNode(file); } processor.process(new NodeList(xr)); } } @Override public void onRecordTransformed(XmlRecord r, SlxRecord dirty_slx) throws InvalidMarkupException, IOException { } @Override public void endInfobase(InfobaseConfig infobase) throws IOException, InvalidMarkupException { } @Override public void endInfobaseSet(InfobaseSet set) throws IOException { } }