sascha@730: package de.intevation.flys.exports; sascha@730: sascha@730: import java.io.OutputStream; sascha@730: import java.io.OutputStreamWriter; sascha@730: import java.io.IOException; sascha@730: sascha@730: import org.w3c.dom.Document; sascha@730: sascha@730: import org.apache.log4j.Logger; sascha@730: sascha@730: import de.intevation.artifacts.Artifact; sascha@730: import de.intevation.artifacts.CallContext; sascha@730: sascha@730: import de.intevation.flys.artifacts.FLYSArtifact; sascha@730: sascha@730: import de.intevation.artifactdatabase.state.Facet; sascha@730: sascha@730: import de.intevation.flys.artifacts.model.WQ; sascha@730: sascha@730: public class ATExporter sascha@730: implements OutGenerator sascha@730: { sascha@730: private static Logger logger = Logger.getLogger(ATExporter.class); sascha@730: sascha@730: public static final String DEFAULT_ENCODING = "UTF-8"; sascha@730: sascha@730: protected WQ data; sascha@730: protected CallContext context; sascha@730: protected OutputStream out; sascha@730: sascha@730: public ATExporter() { sascha@730: } sascha@730: sascha@730: @Override sascha@730: public void init(Document request, OutputStream out, CallContext context) { sascha@730: this.context = context; sascha@730: this.out = out; sascha@730: } sascha@730: sascha@730: @Override sascha@730: public void setMasterArtifact(Artifact master) { sascha@730: // not needed sascha@730: } sascha@730: sascha@730: @Override sascha@730: public void doOut(Artifact artifact, Facet facet, Document attr) { sascha@730: sascha@730: FLYSArtifact flys = (FLYSArtifact)artifact; sascha@730: sascha@730: if ((facet = flys.getNativeFacet(facet)) == null) { sascha@730: logger.debug("native facet not found."); sascha@730: return; sascha@730: } sascha@730: sascha@730: data = (WQ)facet.getData(flys, context); sascha@730: } sascha@730: sascha@730: @Override sascha@730: public void generate() throws IOException { sascha@730: sascha@730: if (data == null) { sascha@730: logger.debug("no W/Q data"); sascha@730: return; sascha@730: } sascha@730: sascha@730: ATWriter at; sascha@730: try { sascha@730: at = new ATWriter(data); sascha@730: } sascha@730: catch (IllegalArgumentException iae) { sascha@730: logger.error("creating ATWriter failed", iae); sascha@730: throw new IOException(iae); sascha@730: } sascha@730: sascha@730: at.write(new OutputStreamWriter(out, DEFAULT_ENCODING)); sascha@730: } sascha@730: } sascha@730: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :