|
1 | 1 | package org.scijava.optional; |
2 | 2 |
|
| 3 | +import java.util.Arrays; |
3 | 4 | import java.util.LinkedHashMap; |
4 | 5 | import java.util.Map; |
5 | 6 | import java.util.function.BiConsumer; |
@@ -56,7 +57,7 @@ public String toString() |
56 | 57 | { |
57 | 58 | sb.append( option.getKey() ); |
58 | 59 | sb.append( " = " ); |
59 | | - sb.append( option.getValue() ); |
| 60 | + sb.append( valueToString( option.getValue() ) ); |
60 | 61 | if ( --numLeft > 0 ) |
61 | 62 | sb.append( ", " ); |
62 | 63 | } |
@@ -116,9 +117,36 @@ public void accept( final String key, final Object value ) |
116 | 117 | sb.append( ", " ); |
117 | 118 | sb.append( key ); |
118 | 119 | sb.append( " = " ); |
119 | | - sb.append( value ); |
| 120 | + sb.append( valueToString( value ) ); |
120 | 121 | if ( !theOptions.containsKey( key ) ) |
121 | 122 | sb.append( " [default]" ); |
122 | 123 | } |
123 | 124 | } |
| 125 | + |
| 126 | + private static String valueToString( final Object value ) |
| 127 | + { |
| 128 | + if ( value != null && value.getClass().isArray() ) |
| 129 | + { |
| 130 | + if ( value instanceof long[] ) |
| 131 | + return Arrays.toString( ( long[] ) value ); |
| 132 | + else if ( value instanceof int[] ) |
| 133 | + return Arrays.toString( ( int[] ) value ); |
| 134 | + else if ( value instanceof short[] ) |
| 135 | + return Arrays.toString( ( short[] ) value ); |
| 136 | + else if ( value instanceof char[] ) |
| 137 | + return Arrays.toString( ( char[] ) value ); |
| 138 | + else if ( value instanceof byte[] ) |
| 139 | + return Arrays.toString( ( byte[] ) value ); |
| 140 | + else if ( value instanceof boolean[] ) |
| 141 | + return Arrays.toString( ( boolean[] ) value ); |
| 142 | + else if ( value instanceof double[] ) |
| 143 | + return Arrays.toString( ( double[] ) value ); |
| 144 | + else if ( value instanceof float[] ) |
| 145 | + return Arrays.toString( ( float[] ) value ); |
| 146 | + else |
| 147 | + return Arrays.deepToString( ( Object[] ) value ); |
| 148 | + } |
| 149 | + else |
| 150 | + return String.valueOf( value ); |
| 151 | + } |
124 | 152 | } |
0 commit comments