org.apache.poi.sl.usermodel.Insets2D Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of apache-poi Show documentation
Show all versions of apache-poi Show documentation
The Apache Commons Codec package contains simple encoder and decoders for
various formats such as Base64 and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
package org.apache.poi.sl.usermodel;
import org.apache.poi.common.Duplicatable;
/**
* This is a replacement for {@link java.awt.Insets} which works on doubles
* instead of ints
*/
public final class Insets2D implements Duplicatable {
/**
* The inset from the top.
* This value is added to the Top of the rectangle
* to yield a new location for the Top.
*/
public double top;
/**
* The inset from the left.
* This value is added to the Left of the rectangle
* to yield a new location for the Left edge.
*/
public double left;
/**
* The inset from the bottom.
* This value is subtracted from the Bottom of the rectangle
* to yield a new location for the Bottom.
*/
public double bottom;
/**
* The inset from the right.
* This value is subtracted from the Right of the rectangle
* to yield a new location for the Right edge.
*/
public double right;
/**
* Creates and initializes a new Insets
object with the
* specified top, left, bottom, and right insets.
* @param top the inset from the top.
* @param left the inset from the left.
* @param bottom the inset from the bottom.
* @param right the inset from the right.
*/
public Insets2D(double top, double left, double bottom, double right) {
this.top = top;
this.left = left;
this.bottom = bottom;
this.right = right;
}
/**
* Set top, left, bottom, and right to the specified values
*
* @param top the inset from the top.
* @param left the inset from the left.
* @param bottom the inset from the bottom.
* @param right the inset from the right.
* @since 1.5
*/
public void set(double top, double left, double bottom, double right) {
this.top = top;
this.left = left;
this.bottom = bottom;
this.right = right;
}
/**
* Checks whether two insets objects are equal. Two instances
* of Insets
are equal if the four integer values
* of the fields top
, left
,
* bottom
, and right
are all equal.
* @return true
if the two insets are equal;
* otherwise false
.
* @since JDK1.1
*/
public boolean equals(Object obj) {
if (obj instanceof Insets2D) {
Insets2D insets = (Insets2D)obj;
return ((top == insets.top) && (left == insets.left) &&
(bottom == insets.bottom) && (right == insets.right));
}
return false;
}
/**
* Returns the hash code for this Insets.
*
* @return a hash code for this Insets.
*/
public int hashCode() {
double sum1 = left + bottom;
double sum2 = right + top;
double val1 = sum1 * (sum1 + 1)/2 + left;
double val2 = sum2 * (sum2 + 1)/2 + top;
double sum3 = val1 + val2;
return (int)(sum3 * (sum3 + 1)/2 + val2);
}
/**
* Returns a string representation of this Insets
object.
* This method is intended to be used only for debugging purposes, and
* the content and format of the returned string may vary between
* implementations. The returned string may be empty but may not be
* null
.
*
* @return a string representation of this Insets
object.
*/
public String toString() {
return getClass().getName() + "[top=" + top + ",left=" + left + ",bottom=" + bottom + ",right=" + right + "]";
}
/**
* Create a copy of this object.
* @return a copy of this Insets2D
object.
*/
@Override
public Insets2D copy() {
return new Insets2D(top, left, bottom, right);
}
}