package org.jerlang.erts.erlang;
import static java.nio.charset.StandardCharsets.ISO_8859_1;
import org.jerlang.type.Binary;
import org.jerlang.type.Integer;
import org.jerlang.type.List;
import org.jerlang.type.Term;
public class ErlangIntegerToBinary {
private ErlangIntegerToBinary() {
}
public static Term dispatch(List params) {
switch (params.length()) {
case 1:
return integer_to_binary_1(params.head().toInteger());
case 2:
Integer integer = params.head().toInteger();
params = params.tail();
Integer base = params.head().toInteger();
return integer_to_binary_2(integer, base);
default:
throw Error.badarg;
}
}
/**
* Returns a binary which corresponds to the text representation of Integer.
*
* http://www.erlang.org/doc/man/erlang.html#integer_to_binary-1
*/
public static Binary integer_to_binary_1(Integer integer) {
return new Binary(integer.toString().getBytes(ISO_8859_1));
}
/**
* http://www.erlang.org/doc/man/erlang.html#integer_to_binary-2
*/
public static Binary integer_to_binary_2(Integer integer, Integer base) {
return new Binary(integer.toBigInteger().toString(base.toInt()).getBytes(ISO_8859_1));
}
}