/**
   * Prints the contents of a Cursor to a StringBuilder. The position is restored after printing.
   *
   * @param cursor the cursor to print
   * @param sb the StringBuilder to print to
   */
  public static void dumpCursor(Cursor cursor, StringBuilder sb) {
    sb.append(">>>>> Dumping cursor " + cursor + "\n");
    if (cursor != null) {
      int startPos = cursor.getPosition();

      cursor.moveToPosition(-1);
      while (cursor.moveToNext()) {
        dumpCurrentRow(cursor, sb);
      }
      cursor.moveToPosition(startPos);
    }
    sb.append("<<<<<\n");
  }
  /**
   * Prints the contents of a Cursor to a PrintSteam. The position is restored after printing.
   *
   * @param cursor the cursor to print
   * @param stream the stream to print to
   */
  public static void dumpCursor(Cursor cursor, PrintStream stream) {
    stream.println(">>>>> Dumping cursor " + cursor);
    if (cursor != null) {
      int startPos = cursor.getPosition();

      cursor.moveToPosition(-1);
      while (cursor.moveToNext()) {
        dumpCurrentRow(cursor, stream);
      }
      cursor.moveToPosition(startPos);
    }
    stream.println("<<<<<");
  }
 public static void dumpCursor(Cursor paramCursor, StringBuilder paramStringBuilder)
 {
   paramStringBuilder.append(">>>>> Dumping cursor " + paramCursor + "\n");
   if (paramCursor != null)
   {
     int i = paramCursor.getPosition();
     paramCursor.moveToPosition(-1);
     while (paramCursor.moveToNext()) {
       dumpCurrentRow(paramCursor, paramStringBuilder);
     }
     paramCursor.moveToPosition(i);
   }
   paramStringBuilder.append("<<<<<\n");
 }
 public static void dumpCursor(Cursor paramCursor, PrintStream paramPrintStream)
 {
   paramPrintStream.println(">>>>> Dumping cursor " + paramCursor);
   if (paramCursor != null)
   {
     int i = paramCursor.getPosition();
     paramCursor.moveToPosition(-1);
     while (paramCursor.moveToNext()) {
       dumpCurrentRow(paramCursor, paramPrintStream);
     }
     paramCursor.moveToPosition(i);
   }
   paramPrintStream.println("<<<<<");
 }
 public static void cursorFillWindow(Cursor paramCursor, int paramInt, CursorWindow paramCursorWindow)
 {
   if ((paramInt < 0) || (paramInt >= paramCursor.getCount())) {
     return;
   }
   int j = paramCursor.getPosition();
   int k = paramCursor.getColumnCount();
   paramCursorWindow.clear();
   paramCursorWindow.setStartPosition(paramInt);
   paramCursorWindow.setNumColumns(k);
   int i;
   if (paramCursor.moveToPosition(paramInt)) {
     if (paramCursorWindow.allocRow()) {
       i = 0;
     }
   }
   for (;;)
   {
     Object localObject;
     boolean bool;
     if (i < k) {
       switch (paramCursor.getType(i))
       {
       case 3: 
       default: 
         localObject = paramCursor.getString(i);
         if (localObject != null) {
           bool = paramCursorWindow.putString((String)localObject, paramInt, i);
         }
         break;
       }
     }
     for (;;)
     {
       if (bool) {
         break label264;
       }
       paramCursorWindow.freeLastRow();
       paramInt += 1;
       if (paramCursor.moveToNext()) {
         break;
       }
       paramCursor.moveToPosition(j);
       return;
       bool = paramCursorWindow.putNull(paramInt, i);
       continue;
       bool = paramCursorWindow.putLong(paramCursor.getLong(i), paramInt, i);
       continue;
       bool = paramCursorWindow.putDouble(paramCursor.getDouble(i), paramInt, i);
       continue;
       localObject = paramCursor.getBlob(i);
       if (localObject != null)
       {
         bool = paramCursorWindow.putBlob((byte[])localObject, paramInt, i);
       }
       else
       {
         bool = paramCursorWindow.putNull(paramInt, i);
         continue;
         bool = paramCursorWindow.putNull(paramInt, i);
       }
     }
     label264:
     i += 1;
   }
 }
  public static void cursorFillWindow(
      final Cursor cursor, int position, final android.database.CursorWindow window) {
    if (position < 0 || position >= cursor.getCount()) {
      return;
    }
    final int oldPos = cursor.getPosition();
    final int numColumns = cursor.getColumnCount();
    window.clear();
    window.setStartPosition(position);
    window.setNumColumns(numColumns);
    if (cursor.moveToPosition(position)) {
      do {
        if (!window.allocRow()) {
          break;
        }
        for (int i = 0; i < numColumns; i++) {
          final int type = cursor.getType(i);
          final boolean success;
          switch (type) {
            case Cursor.FIELD_TYPE_NULL:
              success = window.putNull(position, i);
              break;

            case Cursor.FIELD_TYPE_INTEGER:
              success = window.putLong(cursor.getLong(i), position, i);
              break;

            case Cursor.FIELD_TYPE_FLOAT:
              success = window.putDouble(cursor.getDouble(i), position, i);
              break;

            case Cursor.FIELD_TYPE_BLOB:
              {
                final byte[] value = cursor.getBlob(i);
                success =
                    value != null
                        ? window.putBlob(value, position, i)
                        : window.putNull(position, i);
                break;
              }

            default: // assume value is convertible to String
            case Cursor.FIELD_TYPE_STRING:
              {
                final String value = cursor.getString(i);
                success =
                    value != null
                        ? window.putString(value, position, i)
                        : window.putNull(position, i);
                break;
              }
          }
          if (!success) {
            window.freeLastRow();
            break;
          }
        }
        position += 1;
      } while (cursor.moveToNext());
    }
    cursor.moveToPosition(oldPos);
  }