コード例 #1
0
ファイル: ArrayTable.java プロジェクト: sreev/optiq
 public Object freeze(ColumnLoader.ValueSet valueSet) {
   final int n = valueSet.map.keySet().size();
   int extra = valueSet.containsNull ? 1 : 0;
   Comparable[] codeValues = valueSet.map.keySet().toArray(new Comparable[n + extra]);
   Arrays.sort(codeValues, 0, n);
   ColumnLoader.ValueSet codeValueSet = new ColumnLoader.ValueSet(int.class);
   for (Comparable value : valueSet.values) {
     int code;
     if (value == null) {
       code = n;
     } else {
       code = Arrays.binarySearch(codeValues, value);
       assert code >= 0 : code + ", " + value;
     }
     codeValueSet.add(code);
   }
   Object codes = representation.freeze(codeValueSet);
   return Pair.of(codes, codeValues);
 }