sascha@2561: package de.intevation.flys.artifacts.services;
sascha@2561: 
sascha@2561: import de.intevation.artifacts.CallMeta;
sascha@2561: import de.intevation.artifacts.GlobalContext;
sascha@2561: 
sascha@2561: import de.intevation.artifacts.common.utils.XMLUtils;
sascha@2561: 
sascha@2608: import de.intevation.flys.artifacts.model.FixingsFilterBuilder;
sascha@2608: 
sascha@2564: import de.intevation.flys.artifacts.model.FixingsOverview.Fixing.Filter;
sascha@2564: 
sascha@3138: import de.intevation.flys.artifacts.model.Range;
sascha@2564: 
sascha@2561: import de.intevation.flys.artifacts.model.FixingsOverview;
sascha@2561: import de.intevation.flys.artifacts.model.FixingsOverviewFactory;
sascha@2561: 
sascha@2561: import org.apache.log4j.Logger;
sascha@2561: 
sascha@2561: import org.w3c.dom.Document;
sascha@2561: import org.w3c.dom.Element;
sascha@2561: import org.w3c.dom.NodeList;
sascha@2561: 
sascha@2561: public class FixingsOverviewService
sascha@2561: extends      FLYSService
sascha@2561: {
sascha@2561:     private static Logger log =
sascha@2561:         Logger.getLogger(FixingsOverviewService.class);
sascha@2561: 
sascha@2561:     public FixingsOverviewService() {
sascha@2561:     }
sascha@2561: 
sascha@2561:     @Override
sascha@2561:     public Document doProcess(
sascha@2561:         Document      data,
sascha@2561:         GlobalContext globalContext,
sascha@2561:         CallMeta      callMeta
sascha@2561:     ) {
sascha@2561:         log.debug("FixingsOverviewService.doProcess");
sascha@2561: 
sascha@2561:         Document document = XMLUtils.newDocument();
sascha@2561: 
sascha@2561:         NodeList nodes = data.getElementsByTagName("river");
sascha@2561: 
sascha@2561:         String river = nodes.getLength() > 0
sascha@2561:             ? ((Element)nodes.item(0)).getAttribute("name")
sascha@2561:             : "";
sascha@2561: 
sascha@2561:         FixingsOverview overview = FixingsOverviewFactory.getOverview(river);
sascha@2561: 
sascha@2561:         if (overview != null) {
sascha@2608:             FixingsFilterBuilder ffb = new FixingsFilterBuilder(data);
sascha@2608:             Range  range  = ffb.getRange();
sascha@2608:             Filter filter = ffb.getFilter();
sascha@2564:             overview.generateOverview(document, range, filter);
sascha@2561:         }
sascha@2561:         else {
sascha@2561:             log.warn("No overview for river '" + river + "' available.");
sascha@2561:         }
sascha@2561: 
sascha@2561:         return document;
sascha@2561:     }
sascha@2561: }
sascha@2561: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :