/*
/*
* Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License,
* Version 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.java.lang;
/**
* A java.lang.Long implementation.
*/
public class Long {
/**
* The smallest possible value.
*/
public static final long MIN_VALUE = 1L << 63;
/**
* The largest possible value.
*/
public static final long MAX_VALUE = (1L << 63) - 1;
/**
* Convert a value to a String.
*
* @param x the value
* @return the String
*/
public static String toString(long x) {
// c: wchar_t ch[30];
// c: swprintf(ch, 30, L"%" PRId64, x);
// c: return STRING(ch);
// c: return;
if (x == MIN_VALUE) {
return String.wrap("-9223372036854775808");
}
char[] ch = new char[30];
int i = 30 - 1, count = 0;
boolean negative;
if (x < 0) {
negative = true;
x = -x;
} else {
negative = false;
}
for (; i >= 0; i--) {
ch[i] = (char) ('0' + (x % 10));
x /= 10;
count++;
if (x == 0) {
break;
}
}
if (negative) {
ch[--i] = '-';
count++;
}
return new String(ch, i, count);
}
}