Example #1
0
 public static Array makeFromSimple(
     int[] dimensions, int[] lowBounds, Object buffer, PrimType elementType) {
   char sig1;
   if (elementType == null) sig1 = 'L';
   else {
     sig1 = elementType.getSignature().charAt(0);
     if (elementType.isUnsigned()) sig1 = Character.toLowerCase(sig1);
   }
   int rank = dimensions.length;
   SimpleVector base;
   switch (sig1) {
     case 'L':
       base = new FVector((Object[]) buffer);
       break;
     case 'B':
       base = new S8Vector((byte[]) buffer);
       break;
     case 'b':
       base = new U8Vector((byte[]) buffer);
       break;
     case 'I':
       base = new S32Vector((int[]) buffer);
       break;
     case 'i':
       base = new U32Vector((int[]) buffer);
       break;
     case 'J':
       base = new S64Vector((long[]) buffer);
       break;
     case 'j':
       base = new U64Vector((long[]) buffer);
       break;
     case 'S':
       base = new S16Vector((short[]) buffer);
       break;
     case 's':
       base = new U16Vector((short[]) buffer);
       break;
     case 'D':
       base = new F64Vector((double[]) buffer);
       break;
     case 'F':
       base = new F32Vector((float[]) buffer);
       break;
     default:
       throw new Error("bad type for makeFromSimple");
   }
   if (rank == 1 && (lowBounds == null || lowBounds[0] == 0)) return base;
   else return GeneralArray.makeSimple(lowBounds, dimensions, base);
 }