package folioxml.export.plugins;
import folioxml.config.ExportLocations;
import folioxml.config.InfobaseConfig;
import folioxml.config.InfobaseSet;
import folioxml.core.InvalidMarkupException;
import folioxml.export.FileNode;
import folioxml.export.InfobaseSetPlugin;
import folioxml.export.InventoryNodes;
import folioxml.export.LogStreamProvider;
import folioxml.slx.ISlxTokenReader;
import folioxml.slx.SlxRecord;
import folioxml.xml.NodeList;
import folioxml.xml.XmlRecord;
import java.io.IOException;
public class ExportInventory implements InfobaseSetPlugin {
public ExportInventory() {
}
InventoryNodes inventory = null;
LogStreamProvider logs = null;
@Override
public void beginInfobaseSet(InfobaseSet set, ExportLocations export, LogStreamProvider logs) throws IOException, InvalidMarkupException {
inventory = new InventoryNodes(logs);
this.logs = 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 void onRecordTransformed(XmlRecord xr, SlxRecord dirty_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()) {
inventory.process(new NodeList(xr));
}
}
@Override
public void endInfobase(InfobaseConfig infobase) throws IOException, InvalidMarkupException {
}
@Override
public void endInfobaseSet(InfobaseSet set) throws IOException {
inventory.PrintStats(logs.getNamedStream("report"));
inventory.PrintExternalInfobases(set, logs.getNamedStream("report"));
inventory.PrintUniques(logs.getNamedStream("report"));
}
}