/* * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * 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 Lesser General Public License for more details. * * Copyright (c) 2001 - 2013 Object Refinery Ltd, Pentaho Corporation and Contributors.. All rights reserved. */ package org.pentaho.reporting.engine.classic.core.util.geom; /** * Creation-Date: 09.07.2006, 20:22:06 * * @author Thomas Morgner */ public class StrictInsets implements Cloneable { private long top; private long bottom; private long left; private long right; public StrictInsets() { } public StrictInsets( final long top, final long left, final long bottom, final long right ) { this.top = top; this.left = left; this.bottom = bottom; this.right = right; } public long getTop() { return top; } public void setTop( final long top ) { this.top = top; } public long getBottom() { return bottom; } public void setBottom( final long bottom ) { this.bottom = bottom; } public long getLeft() { return left; } public void setLeft( final long left ) { this.left = left; } public long getRight() { return right; } public void setRight( final long right ) { this.right = right; } public boolean equals( final Object o ) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } final StrictInsets that = (StrictInsets) o; if ( bottom != that.bottom ) { return false; } if ( left != that.left ) { return false; } if ( right != that.right ) { return false; } if ( top != that.top ) { return false; } return true; } public int hashCode() { int result = (int) ( top ^ ( top >>> 32 ) ); result = 29 * result + (int) ( bottom ^ ( bottom >>> 32 ) ); result = 29 * result + (int) ( left ^ ( left >>> 32 ) ); result = 29 * result + (int) ( right ^ ( right >>> 32 ) ); return result; } /** * Returns a string representation of the object. In general, the <code>toString</code> method returns a string that * "textually represents" this object. The result should be a concise but informative representation that is easy for * a person to read. It is recommended that all subclasses override this method. * <p/> * The <code>toString</code> method for class <code>Object</code> returns a string consisting of the name of the class * of which the object is an instance, the at-sign character `<code>@</code>', and the unsigned hexadecimal * representation of the hash code of the object. In other words, this method returns a string equal to the value of: * <blockquote> * * <pre> * getClass().getName() + '@' + Integer.toHexString( hashCode() ) * </pre> * * </blockquote> * * @return a string representation of the object. */ public String toString() { final StringBuffer b = new StringBuffer( 100 ); b.append( getClass().getName() ); b.append( "={top=" ); b.append( top ); b.append( ", left=" ); b.append( left ); b.append( ", bottom=" ); b.append( bottom ); b.append( ", right=" ); b.append( right ); b.append( '}' ); return b.toString(); } /** * Returns a copy of this bounds object. This method will never throw a 'CloneNotSupportedException'. * * @return the cloned instance. */ public Object clone() { try { return super.clone(); } catch ( CloneNotSupportedException e ) { throw new InternalError( "Clone must always be supported." ); } } }