Java tutorial
/* 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(); } }