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: ingo@1979: import de.intevation.artifactdatabase.state.ArtifactAndFacet; ingo@1979: import de.intevation.artifactdatabase.state.Settings; ingo@1979: sascha@730: import de.intevation.flys.artifacts.FLYSArtifact; sascha@730: sascha@730: import de.intevation.flys.artifacts.model.WQ; ingo@3422: import de.intevation.flys.collections.FLYSArtifactCollection; 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: ingo@3422: protected FLYSArtifactCollection collection; ingo@3422: ingo@3422: 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: ingo@3422: sascha@730: @Override sascha@730: public void setMasterArtifact(Artifact master) { ingo@1658: this.master = (FLYSArtifact) master; sascha@730: } sascha@730: sascha@730: @Override ingo@3422: public void setCollection(FLYSArtifactCollection collection) { ingo@3422: this.collection = collection; ingo@3422: } ingo@3422: ingo@3422: @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: } ingo@1979: ingo@1979: ingo@1979: /** ingo@1979: * Returns an instance of EmptySettings currently! ingo@1979: * ingo@1979: * @return an instance of EmptySettings. ingo@1979: */ ingo@2047: @Override ingo@1979: public Settings getSettings() { ingo@1979: return new EmptySettings(); ingo@1979: } ingo@2047: ingo@2047: ingo@2047: /** ingo@2047: * This method is not implemented! ingo@2047: * ingo@2047: * @param settings A settings object. ingo@2047: */ ingo@2047: @Override ingo@2047: public void setSettings(Settings settings) { ingo@2047: // do nothing here ingo@2047: } sascha@730: } sascha@730: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :