Java Clamp clamp(T value, T minimum, T maximum)

Here you can find the source of clamp(T value, T minimum, T maximum)

Description

Clamps a Number

License

Apache License

Parameter

Parameter Description
value The value being clamped
minimum The minimum possible value
maximum The maximum possible value

Return

The clamped value

Declaration

public static <T extends Number> T clamp(T value, T minimum, T maximum) 

Method Source Code

//package com.java2s;
/*/* www  .j a  v a  2 s.  co m*/
 * Copyright 2018 ImpactDevelopment
 *
 * Licensed 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.
 */

public class Main {
    /**
     * Clamps a Number
     *
     * @param value The value being clamped
     * @param minimum The minimum possible value
     * @param maximum The maximum possible value
     * @return The clamped value
     */
    public static <T extends Number> T clamp(T value, T minimum, T maximum) {
        if (minimum.doubleValue() > maximum.doubleValue()) {
            T temp = minimum;
            minimum = maximum;
            maximum = temp;
        }
        if (value.doubleValue() > maximum.doubleValue())
            value = maximum;
        if (value.doubleValue() < minimum.doubleValue())
            value = minimum;
        return value;
    }
}

Related

  1. clamp(final short value, final short lower, final short upper)
  2. clamp(final T MIN, final T MAX, final T VALUE)
  3. clamp(final T MIN, final T MAX, final T VALUE)
  4. clamp(T min, T val, T max)
  5. clamp(T n, T l, T h)
  6. clamp01(long value)
  7. clampAdd(long lhs, long rhs)