All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.parse.Numbers Maven / Gradle / Ivy

Go to download

A library that gives you access to the powerful Parse cloud platform from your Android app.

There is a newer version: 1.17.3
Show newest version
/*
 * Copyright (c) 2015-present, Parse, LLC.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */
package com.parse;

/**
 * Static utility methods pertaining to {@link Number} instances.
 */
/** package */ class Numbers {

  /**
   * Add two {@link Number} instances.
   */
  /* package */ static Number add(Number first, Number second) {
    if (first instanceof Double || second instanceof Double) {
      return first.doubleValue() + second.doubleValue();
    } else if (first instanceof Float || second instanceof Float) {
      return first.floatValue() + second.floatValue();
    } else if (first instanceof Long || second instanceof Long) {
      return first.longValue() + second.longValue();
    } else if (first instanceof Integer || second instanceof Integer) {
      return first.intValue() + second.intValue();
    } else if (first instanceof Short || second instanceof Short) {
      return first.shortValue() + second.shortValue();
    } else if (first instanceof Byte || second instanceof Byte) {
      return first.byteValue() + second.byteValue();
    } else {
      throw new RuntimeException("Unknown number type.");
    }
  }

  /**
   * Subtract two {@link Number} instances.
   */
  /* package */ static Number subtract(Number first, Number second) {
    if (first instanceof Double || second instanceof Double) {
      return first.doubleValue() - second.doubleValue();
    } else if (first instanceof Float || second instanceof Float) {
      return first.floatValue() - second.floatValue();
    } else if (first instanceof Long || second instanceof Long) {
      return first.longValue() - second.longValue();
    } else if (first instanceof Integer || second instanceof Integer) {
      return first.intValue() - second.intValue();
    } else if (first instanceof Short || second instanceof Short) {
      return first.shortValue() - second.shortValue();
    } else if (first instanceof Byte || second instanceof Byte) {
      return first.byteValue() - second.byteValue();
    } else {
      throw new RuntimeException("Unknown number type.");
    }
  }

  /**
   * Compare two {@link Number} instances.
   */
  /* package */ static int compare(Number first, Number second) {
    if (first instanceof Double || second instanceof Double) {
      return (int) Math.signum(first.doubleValue() - second.doubleValue());
    } else if (first instanceof Float || second instanceof Float) {
      return (int) Math.signum(first.floatValue() - second.floatValue());
    } else if (first instanceof Long || second instanceof Long) {
      long diff = first.longValue() - second.longValue();
      return (diff < 0) ? -1 : ((diff > 0) ? 1 : 0);
    } else if (first instanceof Integer || second instanceof Integer) {
      return first.intValue() - second.intValue();
    } else if (first instanceof Short || second instanceof Short) {
      return first.shortValue() - second.shortValue();
    } else if (first instanceof Byte || second instanceof Byte) {
      return first.byteValue() - second.byteValue();
    } else {
      throw new RuntimeException("Unknown number type.");
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy