@Test public void shouldFillWindowWithCursor() throws Exception { CursorWindow window = new CursorWindow("name"); MatrixCursor testCursor = new MatrixCursor(new String[] { "a", "b", "c", "d"}); testCursor.addRow(new Object[] { 12, "hello", null, new byte[] {(byte) 0xba, (byte) 0xdc, (byte) 0xaf, (byte) 0xfe} }); testCursor.addRow(new Object[] { 34, "baz", 1.2, null }); testCursor.addRow(new Object[] { 46, "foo", 2.4, new byte[]{} }); DatabaseUtils.cursorFillWindow(testCursor, 0, window); assertThat(window.getNumRows()).isEqualTo(3); assertThat(window.getInt(0, 0)).isEqualTo(12); assertThat(window.getString(0, 1)).isEqualTo("hello"); assertThat(window.getString(0, 2)).isNull(); assertThat(window.getBlob(0, 3)).isEqualTo(new byte[] {(byte) 0xba, (byte) 0xdc, (byte) 0xaf, (byte) 0xfe}); assertThat(window.getInt(1, 0)).isEqualTo(34); assertThat(window.getString(1, 1)).isEqualTo("baz"); assertThat(window.getFloat(1, 2)).isEqualTo(1.2f); assertThat(window.getBlob(1, 3)).isEqualTo(null); assertThat(window.getBlob(2, 3)).isEqualTo(new byte[]{}); } }
private void loadAllUnlockOnWindowBounds(Cursor cursor, CursorWindow window, List<T> list) { int windowEnd = window.getStartPosition() + window.getNumRows(); for (int row = 0; ; row++) { list.add(loadCurrent(cursor, 0, false)); row++; if (row >= windowEnd) { window = moveToNextUnlocked(cursor); if (window == null) { break; } windowEnd = window.getStartPosition() + window.getNumRows(); } else { if (!cursor.moveToNext()) { break; } } } }
@SuppressWarnings("deprecation") @Override public boolean isNull(int columnIndex) { return window.isNull(position, columnIndex); }
@Test public void shouldCreateWindowWithName() throws Exception { CursorWindow window = new CursorWindow("name"); assertThat(window.getName()).isEqualTo("name"); }
destination.clear(); destination.setNumColumns(numCols); while (i < origin.getNumRows() && destination.allocRow()) { if (origin.isNull(i, j)) { destination.putNull(i, j); } else if (origin.isFloat(i, j)) { Float cur = origin.getFloat(i, j); destination.putDouble(cur, i, j); } else if (origin.isLong(i, j)) { Long cur = origin.getLong(i, j); destination.putLong(cur, i, j); } else if (origin.isString(i, j)) { String cur = origin.getString(i, j); destination.putString(cur, i, j); } else if (origin.isBlob(i, j)) { byte[] cur = origin.getBlob(i, j); destination.putBlob(cur, i, j);
window.acquireReference(); try { int oldpos = this.getPosition(); this.moveToPosition(position - 1); window.clear(); window.setStartPosition(position); int columnNum = getColumnCount(); window.setNumColumns(columnNum); while (moveToNext() && window.allocRow()) { for (int i = 0; i < columnNum; i++) { if (field7 != null) { try { if (!window.putLong(new Long(field7), this.getPosition(), i)) { if (!window.putDouble(new Double(field7), this.getPosition(), i)) { if (!window.putString(field7, this.getPosition(), i)) { window.freeLastRow(); break; if (!window.putDouble(new Double(field7), this.getPosition(), i)) { if (!window.putString(field7, this.getPosition(), i)) { window.freeLastRow(); break; if (!window.putString(field7, this.getPosition(), i)) { window.freeLastRow(); break; if (!window.putNull(this.getPosition(), i)) {
for (int rowIndex = 0; rowIndex < builder.rows.size(); rowIndex++) { Map<String, Object> row = builder.rows.get(rowIndex); if (current == null || !current.allocRow()) { current = new CursorWindow(false); current.setStartPosition(rowIndex); current.setNumColumns(builder.columns.length); windows.add(current); if (!current.allocRow()) { windows.remove(current); return windows.toArray(new CursorWindow[windows.size()]); Object val = row.get(builder.columns[columnIndex]); if (val == null) { current.putNull(rowIndex, columnIndex); } else if (val instanceof String) { current.putString((String) val, rowIndex, columnIndex); } else if (val instanceof Long) { current.putLong((Long) val, rowIndex, columnIndex); } else if (val instanceof Integer) { current.putLong((Integer) val, rowIndex, columnIndex); } else if (val instanceof Boolean) { if ((Boolean) val) current.putLong(1, rowIndex, columnIndex); } else if (val instanceof byte[]) { current.putBlob((byte[]) val, rowIndex, columnIndex); } else if (val instanceof Double) { current.putDouble((Double) val, rowIndex, columnIndex); } else if (val instanceof Float) { current.putDouble((Float) val, rowIndex, columnIndex);
return; window.acquireReference(); try { moveToPosition(position - 1); window.clear(); window.setStartPosition(position); int columnNum = getColumnCount(); window.setNumColumns(columnNum); while (moveToNext() && window.allocRow()) { for (int i = 0; i < columnNum; i++) { String field = getString(i); if (field != null) { if (!window.putString(field, getPosition(), i)) { window.freeLastRow(); break; if (!window.putNull(getPosition(), i)) { window.freeLastRow(); break; window.releaseReference();
public FastCursor(CursorWindow window) { this.window = window; count = window.getNumRows(); }
CursorWindow window = new CursorWindow("collectDbStats"); try { executeForCursorWindow("PRAGMA database_list;", null, window, 0, 0, false, null); for (int i = 1; i < window.getNumRows(); i++) { String name = window.getString(i, 1); String path = window.getString(i, 2); pageCount = 0; pageSize = 0; window.close();
window.acquireReference(); try { int actualPos = -1; actualPos = (int)(result >> 32); countedRows = (int)result; filledRows = window.getNumRows(); window.setStartPosition(actualPos); return countedRows; } finally { window.releaseReference();
/** * Compat method so we can get type of column on API < 11. * Source: http://stackoverflow.com/a/20685546/2643666 */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static int getColumnType(Cursor cursor, int col) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { SQLiteCursor sqLiteCursor = (SQLiteCursor) cursor; CursorWindow cursorWindow = sqLiteCursor.getWindow(); int pos = cursor.getPosition(); int type = -1; if (cursorWindow.isNull(pos, col)) { type = FIELD_TYPE_NULL; } else if (cursorWindow.isLong(pos, col)) { type = FIELD_TYPE_INTEGER; } else if (cursorWindow.isFloat(pos, col)) { type = FIELD_TYPE_FLOAT; } else if (cursorWindow.isString(pos, col)) { type = FIELD_TYPE_STRING; } else if (cursorWindow.isBlob(pos, col)) { type = FIELD_TYPE_BLOB; } return type; } else { return cursor.getType(col); } } }
return; window.acquireReference(); try { int oldpos = getPosition(); moveToPosition(position - 1); window.clear(); window.setStartPosition(position); int columnNum = getColumnCount(); window.setNumColumns(columnNum); while (moveToNext() && window.allocRow()) { int pos = getPosition(); for (int i = 0; i < columnNum; i++) { window.releaseReference();
@Override public String getString(int columnIndex) { return window.getString(position, columnIndex); }
@Override public byte[] getBlob(int columnIndex) { return window.getBlob(position, columnIndex); }
@Override public long getLong(int columnIndex) { return window.getLong(position, columnIndex); }
@Override public int getInt(int columnIndex) { return window.getInt(position, columnIndex); }
private void awc_clearOrCreateWindow(String name){ CursorWindow win = getWindow(); if( win==null ){ win = new CursorWindow(name); setWindow(win); }else{ win.clear(); } } private void awc_closeWindow(){
@Override public float getFloat(int columnIndex) { return window.getFloat(position, columnIndex); }
public CursorWindowAssert hasStartPosition(int position) { isNotNull(); int actualPosition = actual.getStartPosition(); assertThat(actualPosition) // .overridingErrorMessage("Expected start position <%s> but was <%s>.", position, actualPosition) // .isEqualTo(position); return this; } }