private void buildSQL() throws SQLException {
      StringBuilder sb = new StringBuilder(128);
      sb.append("INSERT INTO ");
      sb.append(mTableName);
      sb.append(" (");

      StringBuilder sbv = new StringBuilder(128);
      sbv.append("VALUES (");

      int i = 1;
      Cursor cur = null;
      try {
        cur = mDb.rawQuery("PRAGMA table_info(" + mTableName + ")", null);
        mColumns = new HashMap<String, Integer>(cur.getCount());
        while (cur.moveToNext()) {
          String columnName = cur.getString(TABLE_INFO_PRAGMA_COLUMNNAME_INDEX);
          String defaultValue = cur.getString(TABLE_INFO_PRAGMA_DEFAULT_INDEX);

          mColumns.put(columnName, i);
          sb.append("'");
          sb.append(columnName);
          sb.append("'");

          if (defaultValue == null) {
            sbv.append("?");
          } else {
            sbv.append("COALESCE(?, ");
            sbv.append(defaultValue);
            sbv.append(")");
          }

          sb.append(i == cur.getCount() ? ") " : ", ");
          sbv.append(i == cur.getCount() ? ");" : ", ");
          ++i;
        }
      } finally {
        if (cur != null) cur.close();
      }

      sb.append(sbv);

      mInsertSQL = sb.toString();
      if (LOCAL_LOGV) Log.v(TAG, "insert statement is " + mInsertSQL);
    }
 private void buildSQL()
 {
   Object localObject1 = null;
   StringBuilder localStringBuilder1 = new StringBuilder(128);
   localStringBuilder1.append("INSERT INTO ");
   localStringBuilder1.append(mTableName);
   localStringBuilder1.append(" (");
   StringBuilder localStringBuilder2 = new StringBuilder(128);
   localStringBuilder2.append("VALUES (");
   Cursor localCursor;
   for (;;)
   {
     try
     {
       localCursor = mDb.rawQuery("PRAGMA table_info(" + mTableName + ")", null);
       localObject1 = localCursor;
       mColumns = new HashMap(localCursor.getCount());
       int i = 1;
       localObject1 = localCursor;
       if (!localCursor.moveToNext()) {
         break;
       }
       localObject1 = localCursor;
       String str1 = localCursor.getString(1);
       localObject1 = localCursor;
       String str3 = localCursor.getString(4);
       localObject1 = localCursor;
       mColumns.put(str1, Integer.valueOf(i));
       localObject1 = localCursor;
       localStringBuilder1.append("'");
       localObject1 = localCursor;
       localStringBuilder1.append(str1);
       localObject1 = localCursor;
       localStringBuilder1.append("'");
       if (str3 == null)
       {
         localObject1 = localCursor;
         localStringBuilder2.append("?");
         localObject1 = localCursor;
         if (i == localCursor.getCount())
         {
           str1 = ") ";
           localObject1 = localCursor;
           localStringBuilder1.append(str1);
           localObject1 = localCursor;
           if (i != localCursor.getCount()) {
             break label335;
           }
           str1 = ");";
           localObject1 = localCursor;
           localStringBuilder2.append(str1);
           i += 1;
         }
       }
       else
       {
         localObject1 = localCursor;
         localStringBuilder2.append("COALESCE(?, ");
         localObject1 = localCursor;
         localStringBuilder2.append(str3);
         localObject1 = localCursor;
         localStringBuilder2.append(")");
         continue;
       }
       str2 = ", ";
     }
     finally
     {
       if (localObject1 != null) {
         ((Cursor)localObject1).close();
       }
     }
     continue;
     label335:
     String str2 = ", ";
   }
   if (localCursor != null) {
     localCursor.close();
   }
   localStringBuilder1.append(localStringBuilder2);
   mInsertSQL = localStringBuilder1.toString();
 }
 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);
  }