Example usage for android.database Cursor FIELD_TYPE_STRING

List of usage examples for android.database Cursor FIELD_TYPE_STRING

Introduction

In this page you can find the example usage for android.database Cursor FIELD_TYPE_STRING.

Prototype

int FIELD_TYPE_STRING

To view the source code for android.database Cursor FIELD_TYPE_STRING.

Click Source Link

Document

Value returned by #getType(int) if the specified column type is string

Usage

From source file:Main.java

public static String logCursor(String prefix, Cursor cr) {
    StringBuilder sb = new StringBuilder().append(prefix + ": ");
    for (int i = 0; i < cr.getColumnCount(); i++) {
        sb.append(cr.getColumnName(i)).append("=");
        switch (cr.getType(i)) {
        case Cursor.FIELD_TYPE_NULL:
            sb.append("NULL");
            break;
        case Cursor.FIELD_TYPE_STRING:
            sb.append("\"").append(cr.getString(i)).append("\"");
            break;
        case Cursor.FIELD_TYPE_INTEGER:
            sb.append(cr.getInt(i));//from   w  ww. ja  va 2s . c  o  m
            break;
        case Cursor.FIELD_TYPE_FLOAT:
            sb.append(cr.getFloat(i));
            break;
        case Cursor.FIELD_TYPE_BLOB:
            sb.append("BIN(").append(cr.getBlob(i).length).append("b)");
            break;
        }
        sb.append(" ");
    }
    return sb.toString();
}

From source file:Main.java

/**
 * Get the cursor/*from w ww  . j  av  a2  s .  co m*/
 * @param cursor Cursor from where read value
 * @param index int to read
 * @return Object read
 */
private static Object getCursorValue(Cursor cursor, int index) {
    switch (cursor.getType(index)) {
    case Cursor.FIELD_TYPE_INTEGER:
        return Integer.valueOf(cursor.getInt(index));
    case Cursor.FIELD_TYPE_FLOAT:
        return Float.valueOf(cursor.getFloat(index));
    case Cursor.FIELD_TYPE_STRING:
        return cursor.getString(index);
    case Cursor.FIELD_TYPE_BLOB:
        return cursor.getBlob(index);
    default:
        return null;
    }
}

From source file:Main.java

private static String dumpRow(Cursor c) {
    String result = "VALUES(";

    for (int pos = 0; pos < c.getColumnCount(); pos++) {
        switch (c.getType(pos)) {
        case Cursor.FIELD_TYPE_NULL:
            result += "null";
            break;
        case Cursor.FIELD_TYPE_INTEGER:
            result += Integer.toString(c.getInt(pos));
            break;
        case Cursor.FIELD_TYPE_FLOAT:
            result += Float.toString(c.getFloat(pos));
            break;
        case Cursor.FIELD_TYPE_STRING:
            result += DatabaseUtils.sqlEscapeString(c.getString(pos));
            break;
        case Cursor.FIELD_TYPE_BLOB:
            result += "X'";
            for (byte b : c.getBlob(pos)) {
                result += String.format("%02X", b);
            }/*from   w w  w  .jav  a  2  s . com*/
            result += "'";
            break;
        default:
            return "Invalid field type " + c.getType(pos) + " at position " + pos;
        }

        if (pos < c.getColumnCount() - 1) {
            result += ", ";
        }
    }
    return result + ")";
}

From source file:Main.java

static Object getObject(Cursor cursor, int columnIndex) throws Exception {
    int type = getType(cursor, columnIndex);
    Object value;//from  w  w  w.  j a va 2 s. co m
    switch (type) {
    case Cursor.FIELD_TYPE_BLOB:
        value = cursor.getBlob(columnIndex);
        break;
    case Cursor.FIELD_TYPE_FLOAT:
        value = cursor.getFloat(columnIndex);
        break;
    case Cursor.FIELD_TYPE_INTEGER:
        value = cursor.getLong(columnIndex);
        break;
    case Cursor.FIELD_TYPE_NULL:
        value = null;
        break;
    case Cursor.FIELD_TYPE_STRING:
        value = cursor.getString(columnIndex);
        break;
    default:
        value = cursor.getString(columnIndex);
    }
    return value;
}

From source file:Main.java

/**
 * Retrieve the data type of the [i] field in the Cursor.
 * /*  w  ww  . j  av a  2 s .  c o  m*/
 * @param c
 * @param i
 * @return
 */
public static final Class<?> getIndexDataType(Cursor c, int i) {
    switch (c.getType(i)) {
    case Cursor.FIELD_TYPE_STRING:
        return String.class;
    case Cursor.FIELD_TYPE_FLOAT:
        return Double.class;
    case Cursor.FIELD_TYPE_INTEGER:
        return Long.class;
    case Cursor.FIELD_TYPE_NULL:
        return String.class;
    default:
    case Cursor.FIELD_TYPE_BLOB:
        throw new IllegalStateException("Unexpected data type in SQLite table");
    }
}

From source file:Main.java

public static Object cursorValue(String column, Cursor cr) {
    Object value = false;/*from   w  w  w  .j  a v  a 2  s . c o m*/
    int index = cr.getColumnIndex(column);
    switch (cr.getType(index)) {
    case Cursor.FIELD_TYPE_NULL:
        value = false;
        break;
    case Cursor.FIELD_TYPE_STRING:
        value = cr.getString(index);
        break;
    case Cursor.FIELD_TYPE_INTEGER:
        value = cr.getInt(index);
        break;
    case Cursor.FIELD_TYPE_FLOAT:
        value = cr.getFloat(index);
        break;
    case Cursor.FIELD_TYPE_BLOB:
        value = cr.getBlob(index);
        break;
    }
    return value;
}

From source file:Main.java

/**
 * Return the data stored in the cursor at the given index and given position
 * (ie the given row which the cursor is currently on) as null OR a String.
 * <p>//from   w  w  w .java 2 s.  c  o  m
 * NB: Currently only checks for Strings, long, int, and double.
 *
 * @param c
 * @param i
 * @return
 */
@SuppressLint("NewApi")
public static String getIndexAsString(Cursor c, int i) {
    // If you add additional return types here be sure to modify the javadoc.
    if (i == -1)
        return null;
    if (c.isNull(i)) {
        return null;
    }
    switch (c.getType(i)) {
    case Cursor.FIELD_TYPE_STRING:
        return c.getString(i);
    case Cursor.FIELD_TYPE_FLOAT: {
        // the static version of this seems to have problems...
        Double d = c.getDouble(i);
        String v = d.toString();
        return v;
    }
    case Cursor.FIELD_TYPE_INTEGER: {
        // the static version of this seems to have problems...
        Long l = c.getLong(i);
        String v = l.toString();
        return v;
    }
    case Cursor.FIELD_TYPE_NULL:
        return c.getString(i);
    default:
    case Cursor.FIELD_TYPE_BLOB:
        throw new IllegalStateException("Unexpected data type in SQLite table");
    }
}

From source file:Main.java

/**
 * Returns data type of the given object's value.
 * <p>//from ww w  .  j  ava 2s.c  o m
 * Returned values are
 * <ul>
 * <li>{@link Cursor#FIELD_TYPE_NULL}</li>
 * <li>{@link Cursor#FIELD_TYPE_INTEGER}</li>
 * <li>{@link Cursor#FIELD_TYPE_FLOAT}</li>
 * <li>{@link Cursor#FIELD_TYPE_STRING}</li>
 * <li>{@link Cursor#FIELD_TYPE_BLOB}</li>
 * </ul>
 * </p>
 *
 * @param obj the object whose value type is to be returned
 * @return object value type
 */
public static int getTypeOfObject(Object obj) {
    if (obj == null) {
        return Cursor.FIELD_TYPE_NULL;
    } else if (obj instanceof byte[]) {
        return Cursor.FIELD_TYPE_BLOB;
    } else if (obj instanceof Float || obj instanceof Double) {
        return Cursor.FIELD_TYPE_FLOAT;
    } else if (obj instanceof Long || obj instanceof Integer || obj instanceof Short || obj instanceof Byte) {
        return Cursor.FIELD_TYPE_INTEGER;
    } else {
        return Cursor.FIELD_TYPE_STRING;
    }
}

From source file:Main.java

private static int getType(Cursor cursor, int columnIndex) throws Exception {

    if (Build.VERSION.SDK_INT >= 11) {
        return cursor.getType(columnIndex);
    }/*  w w  w. ja v a2s .co  m*/

    SQLiteCursor sqLiteCursor = (SQLiteCursor) cursor;
    CursorWindow cursorWindow = sqLiteCursor.getWindow();
    int pos = cursor.getPosition();
    int type = -1;
    if (cursorWindow.isNull(pos, columnIndex)) {
        type = Cursor.FIELD_TYPE_NULL;
    } else if (cursorWindow.isLong(pos, columnIndex)) {
        type = Cursor.FIELD_TYPE_INTEGER;
    } else if (cursorWindow.isFloat(pos, columnIndex)) {
        type = Cursor.FIELD_TYPE_FLOAT;
    } else if (cursorWindow.isString(pos, columnIndex)) {
        type = Cursor.FIELD_TYPE_STRING;
    } else if (cursorWindow.isBlob(pos, columnIndex)) {
        type = Cursor.FIELD_TYPE_BLOB;
    }

    return type;
}

From source file:org.chromium.chrome.browser.util.CompatibilityFileProvider.java

@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
    Cursor source = super.query(uri, projection, selection, selectionArgs, sortOrder);

    String[] columnNames = source.getColumnNames();
    String[] newColumnNames = columnNamesWithData(columnNames);
    if (columnNames == newColumnNames)
        return source;

    MatrixCursor cursor = new MatrixCursor(newColumnNames, source.getCount());

    source.moveToPosition(-1);// www  .ja  v a2s  .  co m
    while (source.moveToNext()) {
        MatrixCursor.RowBuilder row = cursor.newRow();
        for (int i = 0; i < columnNames.length; i++) {
            switch (source.getType(i)) {
            case Cursor.FIELD_TYPE_INTEGER:
                row.add(source.getInt(i));
                break;
            case Cursor.FIELD_TYPE_FLOAT:
                row.add(source.getFloat(i));
                break;
            case Cursor.FIELD_TYPE_STRING:
                row.add(source.getString(i));
                break;
            case Cursor.FIELD_TYPE_BLOB:
                row.add(source.getBlob(i));
                break;
            case Cursor.FIELD_TYPE_NULL:
            default:
                row.add(null);
                break;
            }
        }
    }

    source.close();
    return cursor;
}