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

    /**
     l BeNomad BeMap JavaScript API - TextStyle
     */

    /**
     * @classdesc
     * Base class for TextStyle.
     * @public
     * @constructor
     * @param {Object} options See below the available values.
     * @param {bemap.Color} options.color Set the volor of text.
     * @param {int} options.size Set the size of text.
     * @param {int} options.offsetX Set the offset X of text.
     * @param {int} options.offsetY Set the offset Y of text.
     * @param {bemap.Color} options.borderColor Set the color of text border.
     * @param {int} options.borderWidth Set the Width of text border in pixels.
     * @param {Boolean} options.type define the type of the line.
     */
    bemap.TextStyle = function(options) {
        var opts = options || {};

        /**
         * @type {Object}
         * @protected
         */
        this.native = null;

        /**
         * Color of text.
         * @type {bemap.Color}
         * @protected
         */
        this.color = opts.color ? opts.color : new bemap.Color(0, 0, 0);

        /**
         * Width of text border.
         * @type {int}
         * @protected
         */
        this.size = opts.size ? opts.size : 1;

        /**
         * offset X of text in pixels.
         * @type {int}
         * @protected
         */
        this.offsetX = opts.offsetX ? opts.offsetX : 0;

        /**
         * offset Y of text in pixels.
         * @type {int}
         * @protected
         */
        this.offsetY = opts.offsetY ? opts.offsetY : 0;

        /**
         * Color of text border.
         * @type {bemap.Color}
         * @protected
         */
        this.borderColor = opts.borderColor ? opts.borderColor : new bemap.Color(255, 255, 255);

        /**
         * Width of text border.
         * @type {int}
         * @protected
         */
        this.borderWidth = opts.borderWidth ? opts.borderWidth : 2;
    };

    /**
     * Return the color of text.
     * @return {bemap.Color} Return the color of text.
     */
    bemap.TextStyle.prototype.getColor = function() {
        return this.color;
    };

    /**
     * Set the color of text.
     * @param {bemap.Color} color the new color of text to set.
     * @return {bemap.TextStyle} Return this.
     */
    bemap.TextStyle.prototype.setColor = function(color) {
        if (color && bemap.inheritsof(color, bemap.Color)) {
            this.color = color;
        }
        return this;
    };

    /**
     * Return the size of text.
     * @return {int} Return the size of text.
     */
    bemap.TextStyle.prototype.getSize = function() {
        return this.size;
    };

    /**
     * Set the size of text.
     * @param {int} color the new size of text to set.
     * @return {bemap.TextStyle} Return this.
     */
    bemap.TextStyle.prototype.setSize = function(size) {
        this.size = size;
        return this;
    };

    /**
     * Return the offset X of text.
     * @return {int} Return the offset X of text.
     */
    bemap.TextStyle.prototype.getOffsetX = function() {
        return this.offsetX;
    };

    /**
     * Set the offset X of text.
     * @param {int} offsetX the new offset X of text to set.
     * @return {bemap.TextStyle} Return this.
     */
    bemap.TextStyle.prototype.setOffsetX = function(offsetX) {
        this.offsetX = offsetX;
        return this;
    };

    /**
     * Return the offset Y of text.
     * @return {int} Return the offset Y of text.
     */
    bemap.TextStyle.prototype.getOffsetY = function() {
        return this.offsetY;
    };

    /**
     * Set the offset Y of text.
     * @param {int} offsetY the new offset Y of text to set.
     * @return {bemap.TextStyle} Return this.
     */
    bemap.TextStyle.prototype.setOffsetY = function(offsetY) {
        this.offsetY = offsetY;
        return this;
    };

    /**
     * Return the color of text border.
     * @return {bemap.Color} Return the color of text border.
     */
    bemap.TextStyle.prototype.getBorderColor = function() {
        return this.borderColor;
    };

    /**
     * Set the color of text border.
     * @param {bemap.Color} borderColor the new color of text border to set.
     * @return {bemap.TextStyle} Return this.
     */
    bemap.TextStyle.prototype.setBorderColor = function(borderColor) {
        if (borderColor && bemap.inheritsof(borderColor, bemap.Color)) {
            this.borderColor = borderColor;
        }
        return this;
    };

    /**
     * Return the width of text border in pixels.
     * @return {int} Return the width of text border in pixels.
     */
    bemap.TextStyle.prototype.getBorderWidth = function() {
        return this.borderWidth;
    };

    /**
     * Set the width of text border in pixels.
     * @param {int} borderWidth the new width of text border to set (in pixels).
     * @return {bemap.TextStyle} Return this.
     */
    bemap.TextStyle.prototype.setBorderWidth = function(borderWidth) {
        this.borderWidth = borderWidth;
        return this;
    };