예제 #1
0
 /** @see EntityInput#skipField */
 public void skipField(Format declaredFormat) {
   if (declaredFormat != null && declaredFormat.isPrimitive()) {
     declaredFormat.skipContents(this);
   } else {
     int formatId = readPackedInt();
     if (formatId > 0) {
       Format format = catalog.getFormat(formatId, true /*expectStored*/);
       format.skipContents(this);
     }
   }
 }
  @Override
  void copySecMultiKey(RecordInput input, Format keyFormat, Set results) throws RefreshException {

    int len = input.readPackedInt();
    for (int i = 0; i < len; i += 1) {
      KeyLocation loc = input.getKeyLocation(useComponentFormat);
      if (loc == null) {
        throw new IllegalArgumentException("Secondary key values in array may not be null");
      }
      if (loc.format != useComponentFormat) {
        throw DbCompat.unexpectedState(useComponentFormat.getClassName());
      }
      int off1 = loc.input.getBufferOffset();
      useComponentFormat.skipContents(loc.input);
      int off2 = loc.input.getBufferOffset();
      DatabaseEntry entry = new DatabaseEntry(loc.input.getBufferBytes(), off1, off2 - off1);
      results.add(entry);
    }
  }
예제 #3
0
 @Override
 void skipContents(RecordInput input) {
   proxyFormat.skipContents(input);
 }