summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--altoslib/AltosJson.java27
1 files changed, 26 insertions, 1 deletions
diff --git a/altoslib/AltosJson.java b/altoslib/AltosJson.java
index e979a459..80d83e48 100644
--- a/altoslib/AltosJson.java
+++ b/altoslib/AltosJson.java
@@ -1012,7 +1012,32 @@ public class AltosJson extends JsonUtil {
assert_array(false);
Class element_class = c.getComponentType();
- if (element_class == Double.TYPE) {
+ if (element_class == Boolean.TYPE) {
+ boolean[] array = (boolean[]) Array.newInstance(element_class, size());
+ for (int i = 0; i < array.length; i++)
+ array[i] = (Boolean) get(i).make(element_class);
+ ret = array;
+ } else if (element_class == Byte.TYPE) {
+ byte[] array = (byte[]) Array.newInstance(element_class, size());
+ for (int i = 0; i < array.length; i++)
+ array[i] = (Byte) get(i).make(element_class);
+ ret = array;
+ } else if (element_class == Character.TYPE) {
+ char[] array = (char[]) Array.newInstance(element_class, size());
+ for (int i = 0; i < array.length; i++)
+ array[i] = (Character) get(i).make(element_class);
+ ret = array;
+ } else if (element_class == Integer.TYPE) {
+ int[] array = (int[]) Array.newInstance(element_class, size());
+ for (int i = 0; i < array.length; i++)
+ array[i] = (Integer) get(i).make(element_class);
+ ret = array;
+ } else if (element_class == Long.TYPE) {
+ long[] array = (long[]) Array.newInstance(element_class, size());
+ for (int i = 0; i < array.length; i++)
+ array[i] = (Long) get(i).make(element_class);
+ ret = array;
+ } else if (element_class == Double.TYPE) {
double[] array = (double[]) Array.newInstance(element_class, size());
for (int i = 0; i < array.length; i++)
array[i] = (Double) get(i).make(element_class);