mirror of
https://github.com/corda/corda.git
synced 2025-06-13 04:38:19 +00:00
Adds code to get the Scala REPL working
This commit is contained in:
44
classpath/java/math/BigInteger.java
Normal file
44
classpath/java/math/BigInteger.java
Normal file
@ -0,0 +1,44 @@
|
||||
/* Copyright (c) 2013, Avian Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software
|
||||
for any purpose with or without fee is hereby granted, provided
|
||||
that the above copyright notice and this permission notice appear
|
||||
in all copies.
|
||||
|
||||
There is NO WARRANTY for this software. See license.txt for
|
||||
details. */
|
||||
|
||||
package java.math;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class BigInteger implements Serializable {
|
||||
|
||||
private int sign;
|
||||
private int[] value;
|
||||
|
||||
private BigInteger(int sign, long value) {
|
||||
this.sign = sign;
|
||||
int upperBits = (int) (value >>> 32);
|
||||
if (upperBits == 0)
|
||||
// Array with one element
|
||||
this.value = new int[] { (int) value };
|
||||
else
|
||||
// Array with two elements
|
||||
this.value = new int[] { (int) value, upperBits };
|
||||
}
|
||||
|
||||
public static final BigInteger ZERO = new BigInteger(0, 0);
|
||||
public static final BigInteger ONE = new BigInteger(1, 1);
|
||||
public static final BigInteger TEN = new BigInteger(1, 10);
|
||||
|
||||
public static BigInteger valueOf(long num) {
|
||||
int signum = Long.signum(num);
|
||||
if (signum == 0)
|
||||
return BigInteger.ZERO;
|
||||
else if (signum > 0)
|
||||
return new BigInteger(signum, num);
|
||||
else
|
||||
return new BigInteger(signum, -num);
|
||||
}
|
||||
}
|
71
classpath/java/math/MathContext.java
Normal file
71
classpath/java/math/MathContext.java
Normal file
@ -0,0 +1,71 @@
|
||||
/* Copyright (c) 2013, Avian Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software
|
||||
for any purpose with or without fee is hereby granted, provided
|
||||
that the above copyright notice and this permission notice appear
|
||||
in all copies.
|
||||
|
||||
There is NO WARRANTY for this software. See license.txt for
|
||||
details. */
|
||||
|
||||
package java.math;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public final class MathContext implements Serializable {
|
||||
|
||||
public static final MathContext DECIMAL32 = new MathContext( 7, RoundingMode.HALF_EVEN);
|
||||
public static final MathContext DECIMAL64 = new MathContext(16, RoundingMode.HALF_EVEN);
|
||||
public static final MathContext DECIMAL128 = new MathContext(34, RoundingMode.HALF_EVEN);
|
||||
public static final MathContext UNLIMITED = new MathContext(0, RoundingMode.HALF_UP);
|
||||
|
||||
private int precision;
|
||||
private RoundingMode roundingMode;
|
||||
|
||||
public MathContext(int precision, RoundingMode roundingMode) {
|
||||
if (precision < 0)
|
||||
throw new IllegalArgumentException();
|
||||
if (roundingMode == null)
|
||||
throw new NullPointerException();
|
||||
this.precision = precision;
|
||||
this.roundingMode = roundingMode;
|
||||
}
|
||||
|
||||
public MathContext(int precision) {
|
||||
this(precision, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
public int getPrecision() {
|
||||
return precision;
|
||||
}
|
||||
|
||||
public RoundingMode getRoundingMode() {
|
||||
return roundingMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object that) {
|
||||
return
|
||||
(that instanceof MathContext) &&
|
||||
(precision == ((MathContext) that).getPrecision()) &&
|
||||
(roundingMode == ((MathContext) that).getRoundingMode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return
|
||||
roundingMode.ordinal() |
|
||||
(precision << 4);
|
||||
}
|
||||
|
||||
private final static String precisionString = "precision=";
|
||||
private final static String roundingModeString = " roundingMode=";
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder(48);
|
||||
sb.append(precisionString).append(precision);
|
||||
sb.append(roundingModeString).append(roundingMode);
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
36
classpath/java/math/RoundingMode.java
Normal file
36
classpath/java/math/RoundingMode.java
Normal file
@ -0,0 +1,36 @@
|
||||
/* Copyright (c) 2013, Avian Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software
|
||||
for any purpose with or without fee is hereby granted, provided
|
||||
that the above copyright notice and this permission notice appear
|
||||
in all copies.
|
||||
|
||||
There is NO WARRANTY for this software. See license.txt for
|
||||
details. */
|
||||
|
||||
package java.math;
|
||||
|
||||
public enum RoundingMode {
|
||||
|
||||
UP (0),
|
||||
DOWN (1),
|
||||
CEILING (2),
|
||||
FLOOR (3),
|
||||
HALF_UP (4),
|
||||
HALF_DOWN (5),
|
||||
HALF_EVEN (6),
|
||||
UNNECESSARY(7);
|
||||
|
||||
RoundingMode(int rm) {
|
||||
roundingMode = rm;
|
||||
}
|
||||
|
||||
private final int roundingMode;
|
||||
|
||||
public static RoundingMode valueOf(int roundingMode) {
|
||||
final RoundingMode[] values = values();
|
||||
if (roundingMode < 0 || roundingMode >= values.length)
|
||||
throw new IllegalArgumentException();
|
||||
return values[roundingMode];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user