All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.n52.io.request.Parameters Maven / Gradle / Ivy

There is a newer version: 2.0.1-alpha.8
Show newest version
/*
 * Copyright (C) 2013-2019 52°North Initiative for Geospatial Open Source
 * Software GmbH
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published
 * by the Free Software Foundation.
 *
 * If the program is linked with libraries which are licensed under one of
 * the following licenses, the combination of the program with the linked
 * library is not considered a "derivative work" of the program:
 *
 *     - Apache License, version 2.0
 *     - Apache Software License, version 1.0
 *     - GNU Lesser General Public License, version 3
 *     - Mozilla Public License, versions 1.0, 1.1 and 2.0
 *     - Common Development and Distribution License (CDDL), version 1.0
 *
 * Therefore the distribution of the program linked with libraries licensed
 * under the aforementioned licenses, is permitted by the copyright holders
 * if the distribution is compliant with both the GNU General Public License
 * version 2 and the aforementioned licenses.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
 * for more details.
 */
package org.n52.io.request;

import org.n52.series.spi.srv.RawFormats;

/**
 * TODO: JavaDoc
 *
 * @author Henning Bredel
 */
public interface Parameters {

    // TODO separate public parameters from internal parameters (e.g. HREF_BASE)

    String SEARCH_TERM = "q";

    /**
     * How detailed the output shall be.
     */
    String EXPANDED = "expanded";

    /**
     * The default expansion of collection items. Refer to {@link #EXPANDED}
     */
    boolean DEFAULT_EXPANDED = false;

    /**
     * If latest values shall be requested in a bulk timeseries request.
     */
    String FORCE_LATEST_VALUE = "force_latest_values";

    /**
     * The default behaviour if latest value requests shall be invoked during a
     * timeseries collection request.
     */
    boolean DEFAULT_FORCE_LATEST_VALUE = false;

    /**
     * Determines the index of the first member of the response page (a.k.a.
     * page offset).
     */
    String OFFSET = "offset";

    /**
     * The default page offset. Refer to {@link #OFFSET}
     */
    int DEFAULT_OFFSET = -1;

    /**
     * Determines the limit of the page to be returned.
     */
    String LIMIT = "limit";

    /**
     * The default page size limit. Refer to {@link #LIMIT}
     */
    int DEFAULT_LIMIT = -1;

    /**
     * Determines the locale the output shall have.
     */
    String LOCALE = "locale";

    /**
     * The default locale. Refer to {@link #LOCALE}
     */
    String DEFAULT_LOCALE = "en";

    /**
     * Determines the timespan parameter
     */
    String TIMESPAN = "timespan";

    /**
     * Determines the timezone output parameter
     */
    String OUTPUT_TIMEZONE = "outputTimezone";

    /**
     * The default output timezone
     */
    String DEFAULT_OUTPUT_TIMEZONE = "UTC";

    /**
     * Parameter to specify data with a result time
     * @deprecated use {@link #RESULTTIMES} instead
     */
    @Deprecated
    String RESULTTIME = "resultTime";

    /**
     * Parameter to specify data for particular result times
     */
    String RESULTTIMES = "resultTimes";

    String RESULT_TIMES_VALUE_ALL = "all";

    /**
     * The width in px of the image to be rendered.
     */
    String WIDTH = "width";

    /**
     * The default width of the chart image to render.
     */
    int DEFAULT_WIDTH = 800;

    /**
     * The height in px of the image to be rendered.
     */
    String HEIGHT = "height";

    /**
     * The default height of the chart image to render.
     */
    int DEFAULT_HEIGHT = 500;

    /**
     * If a chart shall be rendered with a background grid.
     */
    String GRID = "grid";

    /**
     * Defaults to a background grid in a rendered chart.
     */
    boolean DEFAULT_GRID = true;

    /**
     * If a legend shall be drawn on the chart.
     */
    String LEGEND = "legend";

    /**
     * Defaults to a not drawn legend.
     */
    boolean DEFAULT_LEGEND = false;

    /**
     * If a rendered chart shall be written as base64 encoded string.
     */
    String BASE_64 = "base64";

    /**
     * Defaults to binary output.
     */
    boolean DEFAULT_BASE_64 = false;

    /**
     * Determines the generalize flag.
     */
    String GENERALIZE = "generalize";

    /**
     * The default (no generalization) behaviour.
     */
    boolean DEFAULT_GENERALIZE = false;

    /**
     * Determines how raw data shall be queried from service.
     */
    String RAW_FORMAT = RawFormats.RAW_FORMAT;

    /**
     * Determines how raw data shall be formatted.
     */
    String FORMAT = "format";

    /**
     * The default format for raw data output.
     */
    String DEFAULT_FORMAT = "tvp";

    /**
     * Determines how dates should be formatted (in charts).
     */
    String TIME_FORMAT = "timeformat";

    /**
     * The default timeformat.
     */
    String DEFAULT_TIME_FORMAT = "yyyy-MM-dd, HH:mm";

    /**
     * Determines if what event causes a rendering task.
     */
    String RENDERING_TRIGGER = "rendering_trigger";

    /**
     * Default event causing a rendering task.
     */
    String DEFAULT_RENDERING_TRIGGER = "request";

    /**
     * Determines that output shall be zipped (if possible).
     */
    String ZIP = "zip";

    /**
     * Flag to indicate if CSV encoding shall start with a Byte-Order-Mark
     */
    String BOM = "bom";

    /**
     * A token separator to separate CSV values
     */
    String TOKEN_SEPARATOR = "tokenSeparator";

    /**
     * Determines the style parameter for a single dataset
     */
    String STYLE = "style";

    /**
     * Determines the styles parameter for multiple datasets
     */
    String STYLES = "styles";

    /**
     * Determines the services filter
     */
    String SERVICES = "services";

    /**
     * Determines the features filter
     */
    String FEATURES = "features";

    /**
     * Determines the offerings filter
     */
    String OFFERINGS = "offerings";

    /**
     * Determines the procedures filter
     */
    String PROCEDURES = "procedures";

    /**
     * Determines the phenomena filter
     */
    String PHENOMENA = "phenomena";

    /**
     * Determines the stations filter
     */
    String STATIONS = "stations";

    String PLATFORMS = "platforms";

    String TIMESERIES = "timeseries";

    String DATASETS = "datasets";

    String HANDLE_AS_VALUE_TYPE = "handleAs";

    /**
     * Determines the categories filter
     */
    String CATEGORIES = "categories";

    /**
     * Determines the reference system to be used for input/output coordinates.
     */
    String CRS = "crs";

    /**
     * Determines if CRS axes order shall always be XY, i.e. lon/lat.
     */
    String FORCE_XY = "forceXY";

    /**
     * Default axes order respects EPSG axes ordering.
     */
    boolean DEFAULT_FORCE_XY = false;

    /**
     * Determines if filter shall match domain ids instead of global ids
     */
    String MATCH_DOMAIN_IDS = "matchDomainIds";

    /**
     * Default filter match property.
     */
    boolean DEFAULT_MATCH_DOMAIN_IDS = false;

    /**
     * Determines the within filter
     */
    String NEAR = "near";

    /**
     * Determines the bbox filter
     */
    String BBOX = "bbox";

    /**
     * Determines the fields filter
     */
    String FILTER_FIELDS = "fields";

    String FILTER_PLATFORM_TYPES = "platformTypes";

    String FILTER_VALUE_TYPES = "valueTypes";

    String FILTER_PLATFORM_GEOMETRIES = "platformGeometries";

    String FILTER_OBSERVED_GEOMETRIES = "observedGeometries";

    /**
     * SimpleFeature types e.g. POINT, LINESTRING, ...
     */
    String GEOMETRY_TYPES = "geometryTypes";

    /**
     * If observation time shall be shown within intervals.
     */
    String SHOW_TIME_INTERVALS = "showTimeIntervals";

    /**
     * Default for {@link #SHOW_TIME_INTERVALS}
     */
    boolean DEFAULT_SHOW_TIME_INTERVALS = false;

    /**
     * If verticals shall be shown within intervals.
     */
    String SHOW_VERTICAL_INTERVALS = "showVerticalIntervals";

    /**
     * Default for {@link #SHOW_VERTICAL_INTERVALS}
     */
    boolean DEFAULT_SHOW_VERTICAL_INTERVALS = false;

    /*
     *############### INTERNAL CONSTANTS
     */

    /**
     * Internally set via 2.x interface to create href links.
     * Will be overridden, if it has been set externally.
     */
    String HREF_BASE = "internal.href.base";

    /**
     * Internally set to refer to parents in complex observations.
     */
    String COMPLEX_PARENT = "internal.complex.parent";


    /**
     * The OData filter parameter: {@value}.
     */
    String ODATA_FILTER = "$filter";

    /*
     *############### DEPRECATED CONSTANTS
     */

    /**
     * Determines the service filter
     * @deprecated use {@link #SERVICES}
     */
    @Deprecated
    String SERVICE = "service";

    /**
     * Determines the feature filter
     * @deprecated use {@link #FEATURES}
     */
    @Deprecated
    String FEATURE = "feature";

    /**
     * Determines the service filter
     * @deprecated use {@link #OFFERINGS}
     */
    @Deprecated
    String OFFERING = "offering";

    /**
     * Determines the procedure filter
     * @deprecated use {@link #PROCEDURES}
     */
    @Deprecated
    String PROCEDURE = "procedure";

    /**
     * Determines the phenomenon filter
     * @deprecated use {@link #PHENOMENA}
     */
    @Deprecated
    String PHENOMENON = "phenomenon";

    /**
     * Determines the station filter
     * @deprecated since 2.0.0
     */
    @Deprecated
    String STATION = "station";

    /**
     * @deprecated since 2.0.0
     */
    @Deprecated
    String SERIES = "series";

    /**
     * Determines the category filter
     * @deprecated use {@link #CATEGORIES}
     */
    @Deprecated
    String CATEGORY = "category";

    /**
     * If status intervals section is requested.
     * @deprecated since v2.0 covered by extras endpoint
     */
    @Deprecated
    String STATUS_INTERVALS = "status_intervals";

    /**
     * The default behaviour for status intervals.
     * @deprecated since v2.0 covered by extras endpoint
     */
    @Deprecated
    boolean DEFAULT_STATUS_INTERVALS = false;

    /**
     * If rendering hints are requested for a timeseries
     * @deprecated since v2.0 covered by extras endpoint
     */
    @Deprecated
    String RENDERING_HINTS = "rendering_hints";

    /**
     * The default behaviour for rendering hints.
     * @deprecated since v2.0 covered by extras endpoint
     */
    @Deprecated
    boolean DEFAULT_RENDERING_HINTS = false;


    /**
     * Determines the language the output shall have.
     * @deprecated since v2.0 covered by {@link #LOCALE}}
     */
    @Deprecated
    String LANGUAGE = "language";

    interface HttpHeader {
        String ACCEPT_LANGUAGE = "accept-language";
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy