Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
commons-lang-2.6.jar - Apache Commons Lang
commons-lang-2.6.jar is the JAR file for Apache Commons Lang 2.6, which provides a host of helper utilities for the java.lang API.
JAR File Size and Download Location:
File name: commons-lang-2.6.jar File size: 284220 bytes Date modified: 01/13/2011 Download: Apache Commons Lang Website
✍: FYIcenter
⏎ org/apache/commons/lang/math/DoubleRange.java
/* * 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.commons.lang.math; import java.io.Serializable; import org.apache.commons.lang.text.StrBuilder; /** * <p><code>DoubleRange</code> represents an inclusive range of <code>double</code>s.</p> * * @author Apache Software Foundation * @since 2.0 * @version $Id: DoubleRange.java 1057072 2011-01-10 01:55:57Z niallp $ */ public final class DoubleRange extends Range implements Serializable { /** * Required for serialization support. * * @see java.io.Serializable */ private static final long serialVersionUID = 71849363892740L; /** * The minimum number in this range (inclusive). */ private final double min; /** * The maximum number in this range (inclusive). */ private final double max; /** * Cached output minObject (class is immutable). */ private transient Double minObject = null; /** * Cached output maxObject (class is immutable). */ private transient Double maxObject = null; /** * Cached output hashCode (class is immutable). */ private transient int hashCode = 0; /** * Cached output toString (class is immutable). */ private transient String toString = null; /** * <p>Constructs a new <code>DoubleRange</code> using the specified * number as both the minimum and maximum in this range.</p> * * @param number the number to use for this range * @throws IllegalArgumentException if the number is <code>NaN</code> */ public DoubleRange(double number) { super(); if (Double.isNaN(number)) { throw new IllegalArgumentException("The number must not be NaN"); } this.min = number; this.max = number; } /** * <p>Constructs a new <code>DoubleRange</code> using the specified * number as both the minimum and maximum in this range.</p> * * @param number the number to use for this range, must not * be <code>null</code> * @throws IllegalArgumentException if the number is <code>null</code> * @throws IllegalArgumentException if the number is <code>NaN</code> */ public DoubleRange(Number number) { super(); if (number == null) { throw new IllegalArgumentException("The number must not be null"); } this.min = number.doubleValue(); this.max = number.doubleValue(); if (Double.isNaN(min) || Double.isNaN(max)) { throw new IllegalArgumentException("The number must not be NaN"); } if (number instanceof Double) { this.minObject = (Double) number; this.maxObject = (Double) number; } } /** * <p>Constructs a new <code>DoubleRange</code> with the specified * minimum and maximum numbers (both inclusive).</p> * * <p>The arguments may be passed in the order (min,max) or (max,min). The * getMinimum and getMaximum methods will return the correct values.</p> * * @param number1 first number that defines the edge of the range, inclusive * @param number2 second number that defines the edge of the range, inclusive * @throws IllegalArgumentException if either number is <code>NaN</code> */ public DoubleRange(double number1, double number2) { super(); if (Double.isNaN(number1) || Double.isNaN(number2)) { throw new IllegalArgumentException("The numbers must not be NaN"); } if (number2 < number1) { this.min = number2; this.max = number1; } else { this.min = number1; this.max = number2; } } /** * <p>Constructs a new <code>DoubleRange</code> with the specified * minimum and maximum numbers (both inclusive).</p> * * <p>The arguments may be passed in the order (min,max) or (max,min). The * getMinimum and getMaximum methods will return the correct values.</p> * * @param number1 first number that defines the edge of the range, inclusive * @param number2 second number that defines the edge of the range, inclusive * @throws IllegalArgumentException if either number is <code>null</code> * @throws IllegalArgumentException if either number is <code>NaN</code> */ public DoubleRange(Number number1, Number number2) { super(); if (number1 == null || number2 == null) { throw new IllegalArgumentException("The numbers must not be null"); } double number1val = number1.doubleValue(); double number2val = number2.doubleValue(); if (Double.isNaN(number1val) || Double.isNaN(number2val)) { throw new IllegalArgumentException("The numbers must not be NaN"); } if (number2val < number1val) { this.min = number2val; this.max = number1val; if (number2 instanceof Double) { this.minObject = (Double) number2; } if (number1 instanceof Double) { this.maxObject = (Double) number1; } } else { this.min = number1val; this.max = number2val; if (number1 instanceof Double) { this.minObject = (Double) number1; } if (number2 instanceof Double) { this.maxObject = (Double) number2; } } } // Accessors //-------------------------------------------------------------------- /** * <p>Returns the minimum number in this range.</p> * * @return the minimum number in this range */ public Number getMinimumNumber() { if (minObject == null) { minObject = new Double(min); } return minObject; } /** * <p>Gets the minimum number in this range as a <code>long</code>.</p> * * <p>This conversion can lose information for large values or decimals.</p> * * @return the minimum number in this range */ public long getMinimumLong() { return (long) min; } /** * <p>Gets the minimum number in this range as a <code>int</code>.</p> * * <p>This conversion can lose information for large values or decimals.</p> * * @return the minimum number in this range */ public int getMinimumInteger() { return (int) min; } /** * <p>Gets the minimum number in this range as a <code>double</code>.</p> * * @return the minimum number in this range */ public double getMinimumDouble() { return min; } /** * <p>Gets the minimum number in this range as a <code>float</code>.</p> * * <p>This conversion can lose information for large values.</p> * * @return the minimum number in this range */ public float getMinimumFloat() { return (float) min; } /** * <p>Returns the maximum number in this range.</p> * * @return the maximum number in this range */ public Number getMaximumNumber() { if (maxObject == null) { maxObject = new Double(max); } return maxObject; } /** * <p>Gets the maximum number in this range as a <code>long</code>.</p> * * <p>This conversion can lose information for large values or decimals.</p> * * @return the maximum number in this range */ public long getMaximumLong() { return (long) max; } /** * <p>Gets the maximum number in this range as a <code>int</code>.</p> * * <p>This conversion can lose information for large values or decimals.</p> * * @return the maximum number in this range */ public int getMaximumInteger() { return (int) max; } /** * <p>Gets the maximum number in this range as a <code>double</code>.</p> * * @return the maximum number in this range */ public double getMaximumDouble() { return max; } /** * <p>Gets the maximum number in this range as a <code>float</code>.</p> * * <p>This conversion can lose information for large values.</p> * * @return the maximum number in this range */ public float getMaximumFloat() { return (float) max; } // Tests //-------------------------------------------------------------------- /** * <p>Tests whether the specified <code>number</code> occurs within * this range using <code>double</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param number the number to test, may be <code>null</code> * @return <code>true</code> if the specified number occurs within this range */ public boolean containsNumber(Number number) { if (number == null) { return false; } return containsDouble(number.doubleValue()); } /** * <p>Tests whether the specified <code>double</code> occurs within * this range using <code>double</code> comparison.</p> * * <p>This implementation overrides the superclass for performance as it is * the most common case.</p> * * @param value the double to test * @return <code>true</code> if the specified number occurs within this * range by <code>double</code> comparison */ public boolean containsDouble(double value) { return value >= min && value <= max; } // Range tests //-------------------------------------------------------------------- /** * <p>Tests whether the specified range occurs entirely within this range * using <code>double</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range occurs entirely within this range * @throws IllegalArgumentException if the range is not of this type */ public boolean containsRange(Range range) { if (range == null) { return false; } return containsDouble(range.getMinimumDouble()) && containsDouble(range.getMaximumDouble()); } /** * <p>Tests whether the specified range overlaps with this range * using <code>double</code> comparison.</p> * * <p><code>null</code> is handled and returns <code>false</code>.</p> * * @param range the range to test, may be <code>null</code> * @return <code>true</code> if the specified range overlaps with this range */ public boolean overlapsRange(Range range) { if (range == null) { return false; } return range.containsDouble(min) || range.containsDouble(max) || containsDouble(range.getMinimumDouble()); } // Basics //-------------------------------------------------------------------- /** * <p>Compares this range to another object to test if they are equal.</p>. * * <p>To be equal, the class, minimum and maximum must be equal.</p> * * @param obj the reference object with which to compare * @return <code>true</code> if this object is equal */ public boolean equals(Object obj) { if (obj == this) { return true; } if (obj instanceof DoubleRange == false) { return false; } DoubleRange range = (DoubleRange) obj; return (Double.doubleToLongBits(min) == Double.doubleToLongBits(range.min) && Double.doubleToLongBits(max) == Double.doubleToLongBits(range.max)); } /** * <p>Gets a hashCode for the range.</p> * * @return a hash code value for this object */ public int hashCode() { if (hashCode == 0) { hashCode = 17; hashCode = 37 * hashCode + getClass().hashCode(); long lng = Double.doubleToLongBits(min); hashCode = 37 * hashCode + ((int) (lng ^ (lng >> 32))); lng = Double.doubleToLongBits(max); hashCode = 37 * hashCode + ((int) (lng ^ (lng >> 32))); } return hashCode; } /** * <p>Gets the range as a <code>String</code>.</p> * * <p>The format of the String is 'Range[<i>min</i>,<i>max</i>]'.</p> * * @return the <code>String</code> representation of this range */ public String toString() { if (toString == null) { StrBuilder buf = new StrBuilder(32); buf.append("Range["); buf.append(min); buf.append(','); buf.append(max); buf.append(']'); toString = buf.toString(); } return toString; } }
⏎ org/apache/commons/lang/math/DoubleRange.java
⇒ commons-lang-1.0.1.jar - Apache Commons Lang
⇐ What Is commons-lang3-3.1.jar
2009-12-24, 80029👍, 0💬
Popular Posts:
JDK 11 jdk.scripting.nashorn.jm odis the JMOD file for JDK 11 Scripting Nashorn module. JDK 11 Scrip...
What Is javamail-1_2.zip? javamail-1_2.zip is the binary package of JavaMail API 1.2 in ZIP format. ...
Apache BCEL Source Code Files are inside the Apache BCEL source package file like bcel-6.6.1-src.zip...
Swingx is the SwingLabs Swing Component Extensions. JAR File Size and Download Location: File name: ...
What Is javaws.jar in JRE (Java Runtime Environment) 8? javaws.jar in JRE (Java Runtime Environment)...