ingo@118: package de.intevation.flys.artifacts.services;
ingo@118:
ingo@133: import java.util.List;
ingo@133:
ingo@118: import org.apache.log4j.Logger;
ingo@118:
ingo@118: import org.w3c.dom.Document;
ingo@118: import org.w3c.dom.Element;
ingo@118:
ingo@118: import de.intevation.artifacts.CallMeta;
ingo@118:
ingo@118: import de.intevation.artifacts.common.ArtifactNamespaceContext;
ingo@118: import de.intevation.artifacts.common.utils.XMLUtils;
ingo@118:
ingo@118: import de.intevation.artifactdatabase.DefaultService;
ingo@118:
ingo@316: import de.intevation.flys.backend.SessionHolder;
ingo@133: import de.intevation.flys.model.River;
ingo@133:
ingo@133: import de.intevation.flys.artifacts.model.RiverFactory;
ingo@133:
sascha@314: import org.hibernate.Session;
ingo@118:
ingo@118: /**
ingo@118: * This service provides information about the supported rivers by this
ingo@118: * application.
ingo@118: *
ingo@118: * @author Ingo Weinzierl
ingo@118: */
ingo@118: public class RiverService extends DefaultService {
ingo@118:
ingo@118: /** The logger used in this service.*/
ingo@118: private static Logger logger = Logger.getLogger(RiverService.class);
ingo@118:
ingo@118:
ingo@118: /**
ingo@118: * The default constructor.
ingo@118: */
ingo@118: public RiverService() {
ingo@118: }
ingo@118:
ingo@118:
ingo@118: public Document process(
ingo@118: Document data,
ingo@118: Object globalContext,
ingo@118: CallMeta callMeta)
ingo@118: {
ingo@118: logger.debug("RiverService.process");
ingo@118:
ingo@118: Document result = XMLUtils.newDocument();
ingo@118:
ingo@118: XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
ingo@118: result,
ingo@118: ArtifactNamespaceContext.NAMESPACE_URI,
ingo@118: ArtifactNamespaceContext.NAMESPACE_PREFIX);
ingo@118:
sascha@314: Session session = SessionHolder.acquire();
sascha@314: try {
sascha@314: List allRivers = RiverFactory.getRivers();
ingo@118:
sascha@314: Element rivers = ec.create("rivers");
ingo@118:
sascha@314: for (River river: allRivers) {
sascha@314: Element r = ec.create("river");
sascha@314: ec.addAttr(r, "name", river.getName(), true);
sascha@314:
sascha@314: rivers.appendChild(r);
sascha@314: }
sascha@314:
sascha@314: result.appendChild(rivers);
ingo@133: }
sascha@314: finally {
sascha@314: session.close();
sascha@314: SessionHolder.release();
sascha@314: }
ingo@118:
ingo@118: return result;
ingo@118: }
ingo@118: }
ingo@118: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :