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: felix@1944: import de.intevation.artifactdatabase.state.ArtifactAndFacet; sascha@730: import de.intevation.artifactdatabase.state.Facet; sascha@730: sascha@730: import de.intevation.flys.artifacts.model.WQ; sascha@730: ingo@1658: import de.intevation.flys.utils.FLYSUtils; ingo@1658: ingo@1658: 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; ingo@1658: protected FLYSArtifact master; 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) { ingo@1658: this.master = (FLYSArtifact) master; sascha@730: } sascha@730: sascha@730: @Override ingo@1684: public void doOut( felix@1944: ArtifactAndFacet artifactf, ingo@1684: Document attr, ingo@1684: boolean visible ingo@1684: ) { felix@1944: data = (WQ)artifactf.getData(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: ingo@1658: String river = FLYSUtils.getRiver(master).getName(); ingo@1658: double[] kms = FLYSUtils.getLocations(master); ingo@1658: ingo@1658: at.write( ingo@1658: new OutputStreamWriter(out, DEFAULT_ENCODING), ingo@1658: context.getMeta(), ingo@1658: river, ingo@1658: kms[0]); sascha@730: } sascha@730: } sascha@730: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :