teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5863: * Software engineering by Intevation GmbH teichmann@5863: * teichmann@5994: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5994: * documentation coming with Dive4Elements River for details. teichmann@5863: */ teichmann@5863: teichmann@5831: package org.dive4elements.river.artifacts.model; felix@3573: felix@3573: import org.apache.log4j.Logger; felix@3573: teichmann@5831: import org.dive4elements.artifacts.Artifact; teichmann@5831: import org.dive4elements.artifacts.CallContext; felix@3573: teichmann@5831: import org.dive4elements.river.artifacts.QSectorArtifact; felix@3573: teichmann@5831: import org.dive4elements.artifactdatabase.state.DefaultFacet; teichmann@5831: import org.dive4elements.artifactdatabase.state.Facet; felix@3573: rrenkert@8369: import static org.dive4elements.river.exports.injector.InjectorConstants.CURRENT_KM; rrenkert@8369: felix@3573: felix@3573: /** felix@3573: * Facet to access QSector that where added by user. felix@3573: */ felix@3573: public class QSectorFacet felix@3573: extends DefaultFacet felix@3573: { felix@3573: /** Logger for this class. */ teichmann@8202: private static final Logger log = Logger.getLogger(QSectorFacet.class); felix@3573: felix@3573: felix@3573: /** felix@3573: * Trivial Constructor. felix@3573: */ felix@3573: public QSectorFacet() { felix@3573: } felix@3573: felix@3573: felix@3573: /** felix@3573: * Trivial Constructor for a QSectorFacet. felix@3573: * felix@3573: * @param index Database-Index to use. felix@3573: * @param name Name (~type) of Facet. felix@3573: * @param description Description of Facet. felix@3573: */ felix@3573: public QSectorFacet(int index, String name, String description) { felix@3573: super(index, name, description); felix@3573: } felix@3573: felix@3573: felix@3573: /** felix@3573: * Get List of QSector for river from Artifact. felix@3573: * felix@3573: * @param artifact (QSector-)Artifact to query for list of QSector. felix@3573: * @param context Ignored. felix@3573: */ felix@3573: @Override felix@3573: public Object getData(Artifact artifact, CallContext context) { felix@3573: QSectorArtifact qsectorArtifact = (QSectorArtifact) artifact; felix@4507: if (qsectorArtifact == null || context == null || rrenkert@8369: context.getContextValue(CURRENT_KM) == null) { teichmann@8202: log.error("No artifact, context or currentKm in QSectorFacet"); felix@4507: return null; felix@4507: } felix@3573: double currentKm = rrenkert@8369: ((Double)context.getContextValue(CURRENT_KM)).doubleValue(); felix@3576: return qsectorArtifact.getQSectors(currentKm, context); felix@3573: } felix@3573: felix@3573: felix@3573: /** Do a deep copy. */ felix@3573: @Override felix@3573: public Facet deepCopy() { felix@3573: QSectorFacet copy = new QSectorFacet(); felix@3573: copy.set(this); felix@3573: return copy; felix@3573: } felix@3573: } felix@3573: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :