de.terrestris.shogun.model.WmsMapLayer.java Source code

Java tutorial

Introduction

Here is the source code for de.terrestris.shogun.model.WmsMapLayer.java

Source

/* Copyright (c) 2012-2014, terrestris GmbH & Co. KG
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. Neither the name of the copyright holder nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 * (This is the BSD 3-Clause, sometimes called 'BSD New' or 'BSD Simplified',
 * see http://opensource.org/licenses/BSD-3-Clause)
 */
package de.terrestris.shogun.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.fasterxml.jackson.annotation.JsonAutoDetect;

/**
 * WmsMapLayer POJO.
 *
 * This is the POJO for a visual layer in the application. Instances of this
 * class can be used in the client to derive valid OpenLayers.Layer-objects.
 *
 * @author terrestris GmbH & Co. KG
 *
 */
@JsonAutoDetect
@Entity
@Table(name = "TBL_WMSMAPLAYER")
public class WmsMapLayer extends MapLayer {

    private String url;
    private String layers;
    private Boolean transparent = true;
    private Boolean singleTile = false;
    private Integer ratio = null;
    private String format;

    /**
     * @return the url
     */
    @Column(name = "URL", nullable = false)
    public String getUrl() {
        return url;
    }

    /**
     * @param url the url to set
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * @return the layers
     */
    @Column(name = "LAYERS", nullable = false, length = 2048)
    public String getLayers() {
        return layers;
    }

    /**
     * @param layers the layers to set
     */
    public void setLayers(String layers) {
        this.layers = layers;
    }

    /**
     * @return the transparent
     */
    @Column(name = "TRANSPARENT", nullable = false)
    public Boolean getTransparent() {
        return transparent;
    }

    /**
     * @param transparent the transparent to set
     */
    public void setTransparent(Boolean transparent) {
        this.transparent = transparent;
    }

    /**
     * @return the singleTile value
     */
    @Column(name = "SINGLETILE", nullable = false)
    public Boolean getSingleTile() {
        return singleTile;
    }

    /**
     * @param singleTile the value of singleTile to set
     */
    public void setSingleTile(Boolean singleTile) {
        this.singleTile = singleTile;
    }

    /**
     * @return the ratio
     */
    @Column(name = "RATIO")
    public Integer getRatio() {
        return ratio;
    }

    /**
     * @param ratio the ratio to set
     */
    public void setRatio(Integer ratio) {
        this.ratio = ratio;
    }

    /**
     * @return the format
     */
    @Column(name = "FORMAT", nullable = false)
    public String getFormat() {
        return format;
    }

    /**
     * @param format the format to set
     */
    public void setFormat(String format) {
        this.format = format;
    }

    /**
     * @see java.lang.Object#hashCode()
     *
     * According to
     * http://stackoverflow.com/questions/27581/overriding-equals-and-hashcode-in-java
     * it is recommended only to use getter-methods when using ORM like Hibernate
     */
    @Override
    public int hashCode() {
        return new HashCodeBuilder(37, 11). // two randomly chosen prime numbers
                appendSuper(super.hashCode()).append(getUrl()).append(getLayers()).toHashCode();
    }

    /**
     * @see java.lang.Object#equals(java.lang.Object)
     *
     * According to
     * http://stackoverflow.com/questions/27581/overriding-equals-and-hashcode-in-java
     * it is recommended only to use getter-methods when using ORM like Hibernate
     */
    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof WmsMapLayer))
            return false;
        WmsMapLayer other = (WmsMapLayer) obj;

        return new EqualsBuilder().appendSuper(super.equals(other)).append(getUrl(), other.getUrl())
                .append(getLayers(), other.getLayers()).isEquals();
    }

    /**
     *
     */
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).appendSuper(super.toString())
                .append("url", url).append("layers", layers).append("transparent", transparent)
                .append("singleTile", singleTile).append("ratio", ratio).append("format", format).toString();
    }
}