# Source: bemap-model/bemap-geoSearchInfo.js

    /**
     * BeNomad BeMap JavaScript API - GeoSearchInfo
     */

    /**
     * @classdesc
     * Base class for geocoding search information.
     * @public
     * @constructor
     * @abstract
     * @param {object} options see below the available values.
     * @param {String} options.state
     * @param {String} options.city
     * @param {String} options.country
     * @param {String} options.countryCode
     * @param {String} options.county
     * @param {String} options.district
     * @param {String} options.street
     * @param {String} options.streetNumber
     * @param {String} options.postalCode
     * @param {String} options.searchType Defines all the possible types of research that can be applied to a textual pattern. Available values: CONTAINS, FUZZY, KEY_SEARCH, STRICT, STRICT_BEGINNING, WORD_BEGINNING
     * @param {String} options.language Define the language that will be used to perform the address lookup.
     * @param {Int} options.maxResult The maximum number of items used to perform the research and returned items by the server. Default is 1.
     * @param {bemap.BoundingBox} options.boundingBox the bounding box that will limit the research to a specific area.
     */
    bemap.GeoSearchInfo = function(options) {
        var opts = options || {};

        /**
         * @type {String}
         * @protected
         */
        this.state = opts.state ? opts.state : null;

        /**
         * @type {String}
         * @protected
         */
        this.city = opts.city ? opts.city : null;

        /**
         * @type {String}
         * @protected
         */
        this.country = opts.country ? opts.country : null;

        /**
         * @type {String}
         * @protected
         */
        this.countryCode = opts.countryCode ? opts.countryCode : null;

        /**
         * @type {String}
         * @protected
         */
        this.county = opts.county ? opts.county : null;

        /**
         * @type {String}
         * @protected
         */
        this.district = opts.district ? opts.district : null;

        /**
         * @type {String}
         * @protected
         */
        this.street = opts.street ? opts.street : null;

        /**
         * @type {String}
         * @protected
         */
        this.streetNumber = opts.streetNumber ? opts.streetNumber : null;

        /**
         * @type {String}
         * @protected
         */
        this.postalCode = opts.postalCode ? opts.postalCode : null;

        /**
         * @type {String}
         * @protected
         */
        this.searchType = opts.searchType ? opts.searchType : null;

        /**
         * @type {String}
         * @protected
         */
        this.language = opts.language ? opts.language : null;

        /**
         * @type {int}
         * @protected
         */
        this.maxResult = opts.maxResult ? opts.maxResult : null;

        /**
         * @type {bemap.BoundingBox}
         * @protected
         */
        this.bbox = opts.boundingBox ? opts.boundingBox : null;
    };

    /**
     * Get state informations.
     * @return {String} state.
     */
    bemap.GeoSearchInfo.prototype.getState = function() {
        return this.state;
    };

    /**
     * Get the city information.
     * @return {String} city.
     */
    bemap.GeoSearchInfo.prototype.getCity = function() {
        return this.city;
    };

    /**
     * Get the country information.
     * @return {String} country
     */
    bemap.GeoSearchInfo.prototype.getCountry = function() {
        return this.country;
    };

    /**
     * Get the country information.
     * @return {String} country
     */
    bemap.GeoSearchInfo.prototype.getCountryCode = function() {
        return this.countryCode;
    };

    /**
     * Get the county information.
     * @return {String} county.
     */
    bemap.GeoSearchInfo.prototype.getCounty = function() {
        return this.county;
    };

    /**
     * Get the district information.
     * @return {String} district.
     */
    bemap.GeoSearchInfo.prototype.getDistrict = function() {
        return this.district;
    };

    /**
     * Get the street information.
     * @return {String} street.
     */
    bemap.GeoSearchInfo.prototype.getStreet = function() {
        return this.street;
    };

    /**
     * Get the street number information.
     * @return {String} streetNumber.
     */
    bemap.GeoSearchInfo.prototype.getStreetNumber = function() {
        return this.streetNumber;
    };
    /**
     * Get the postal code information.
     * @return {String} postalCode.
     */
    bemap.GeoSearchInfo.prototype.getPostalCode = function() {
        return this.postalCode;
    };
    /**
     * Get the search type information.
     * @return {String} searchType.
     */
    bemap.GeoSearchInfo.prototype.getSearchType = function() {
        return this.searchType;
    };
    /**
     * Get the language information.
     * @return {String} language.
     */
    bemap.GeoSearchInfo.prototype.getLanguage = function() {
        return this.language;
    };
    /**
     * Get the number maximum of result.
     * @return {String} maxResult.
     */
    bemap.GeoSearchInfo.prototype.getMaxResult = function() {
        return this.maxResult;
    };
    /**
     * Get the street number maximum of result.
     * @return {String} bbox.
     */
    bemap.GeoSearchInfo.prototype.getBoundingBox = function() {
        return this.bbox;
    };

    /**
     * Set state informations.
     * @param {String} state the new state to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setState = function(state) {
        this.state = state;
        return this;
    };

    /**
     * Set the city information.
     * @param {String} city the new city to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setCity = function(city) {
        this.city = city;
        return this;
    };

    /**
     * Set the country information.
     * @param {String} country the new country to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setCountry = function(country) {
        this.country = country;
        return this;
    };

    /**
     * Set the country information.
     * @param {String} countryCode the new country to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setCountryCode = function(countryCode) {
        this.countryCode = countryCode;
        return this;
    };

    /**
     * Set the county information.
     * @param {String} county the new county to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setCounty = function(county) {
        this.county = county;
        return this;
    };

    /**
     * Set the district information.
     * @param {String} district the new district to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setDistrict = function(district) {
        this.district = district;
        return this;
    };

    /**
     * Set the street information.
     * @param {String} street the new street to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setStreet = function(street) {
        this.street = street;
        return this;
    };

    /**
     * Set the street number information.
     * @param {String} streetNumber the new street number to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setStreetNumber = function(streetNumber) {
        this.streetNumber = streetNumber;
        return this;
    };
    /**
     * Set the postal code information.
     * @param {String} postalCode the new postal code to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setPostalCode = function(postalCode) {
        this.postalCode = postalCode;
        return this;
    };
    /**
     * Set the search type information.
     * @param {String} searchType the new search type to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setSearchType = function(searchType) {
        this.searchType = searchType;
        return this;
    };
    /**
     * Set the language information.
     * @param {String} language the new language to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setLanguage = function(language) {
        this.language = language;
        return this;
    };
    /**
     * Set the number maximum of result.
     * @param {Int} maxResult the new maximal result to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setMaxResult = function(maxResult) {
        this.maxResult = maxResult;
        return this;
    };
    /**
     * Set the street number maximum of result.
     * @param {String} bbox the boundingBox new to set.
     * @return {bemap.GeoSearchInfo} this.
     */
    bemap.GeoSearchInfo.prototype.setBoundingBox = function(bbox) {
        this.bbox = bbox;
        return this;
    };