Android Open Source - droidkit-engines Key Value Engine Dao






From Project

Back to project page droidkit-engines.

License

The source code is released under:

MIT License

If you think the Android project droidkit-engines listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.droidkit.engine.keyvalue.sqlite.internal;
/*from  ww  w  . j a  v a2  s. co  m*/
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;

import com.droidkit.engine.keyvalue.DataAdapter;
import com.droidkit.engine._internal.sqlite.AbstractDao;

import java.util.ArrayList;

public class KeyValueEngineDao<V> extends AbstractDao<V> {

    private final DataAdapter<V> classConnector;

    public KeyValueEngineDao(String keyValueEngineName,
                                SQLiteDatabase db,
                                DataAdapter<V> classConnector) {
        super(keyValueEngineName, db, new KeyValueEngineTableStatements(db, keyValueEngineName), classConnector);
        this.classConnector = classConnector;
    }

    @Override
    protected void createTable() {
        if (!isTableExists()) {
            String constraint = "IF NOT EXISTS ";
            db.execSQL("CREATE TABLE " + constraint + "'" + tableName + "' (" + //
                            "'ID' INTEGER NOT NULL," + // 0: id
                            "'BYTES' BLOB NOT NULL," + // 1: bytes
                            "PRIMARY KEY('ID'));"
            );
        }
    }

    @Override
    protected void bindValues(SQLiteStatement stmt, V entity) {
        stmt.clearBindings();

        Long id = classConnector.getId(entity);
        if (id != null) {
            stmt.bindLong(1, id);
        }
        byte[] bytes = binarySerializator.serialize(entity);
        if (bytes != null) {
            stmt.bindBlob(2, bytes);
        }
    }

    @Override
    protected V readEntity(Cursor cursor) {
        return (V) binarySerializator.deserialize(cursor.isNull(1) ? null : cursor.getBlob(1));
    }

    @Override
    protected void deleteByKeyInsideSynchronized(long id, SQLiteStatement stmt) {
        stmt.clearBindings();
        stmt.bindLong(1, id);
        stmt.execute();
    }

    @Override
    public ArrayList<V> getAll() {
        final String stmt = statements.getAllStatement();
        return loadAllAndCloseCursor(db.rawQuery(stmt, null));
    }

    @Override
    public V getById(long id) {
        final String stmt = statements.getGetByIdStatement();

        return loadSingleAndCloseCursor(db.rawQuery(stmt,
                new String[]{
                        String.valueOf(id)
                }
        ));
    }
}




Java Source Code List

com.droidkit.engine.Engines.java
com.droidkit.engine.common.KeyCallback.java
com.droidkit.engine.common.ValueCallback.java
com.droidkit.engine.common.ValuesCallback.java
com.droidkit.engine.event.Events.java
com.droidkit.engine.event.NotificationCenter.java
com.droidkit.engine.event.NotificationListener.java
com.droidkit.engine.event.StateInitValue.java
com.droidkit.engine.event.State.java
com.droidkit.engine._internal.RunnableActor.java
com.droidkit.engine._internal.sqlite.AbstractDao.java
com.droidkit.engine._internal.sqlite.BinarySerializator.java
com.droidkit.engine._internal.sqlite.DbHelper.java
com.droidkit.engine._internal.sqlite.DbProvider.java
com.droidkit.engine._internal.sqlite.FastCursor.java
com.droidkit.engine._internal.sqlite.SqlStatements.java
com.droidkit.engine._internal.util.SortedArrayList.java
com.droidkit.engine._internal.util.Utils.java
com.droidkit.engine._internal.util.WeakEqualReference.java
com.droidkit.engine.keyvalue.DataAdapter.java
com.droidkit.engine.keyvalue.KeyValueEngine.java
com.droidkit.engine.keyvalue.StorageAdapter.java
com.droidkit.engine.keyvalue.sqlite.SQLiteStorageAdapter.java
com.droidkit.engine.keyvalue.sqlite.internal.KeyValueEngineDao.java
com.droidkit.engine.keyvalue.sqlite.internal.KeyValueEngineTableStatements.java
com.droidkit.engine.list.DataAdapter.java
com.droidkit.engine.list.ListEngine.java
com.droidkit.engine.list.StorageAdapter.java
com.droidkit.engine.list.sqlite.SQLiteMultipleStorageAdapter.java
com.droidkit.engine.list.sqlite.SQLiteStorageAdapter.java
com.droidkit.engine.list.sqlite.internal.ListEngineDao.java
com.droidkit.engine.list.sqlite.internal.ListEngineTableStatements.java
com.droidkit.sample.ActivityHelper.java
com.droidkit.sample.BaseActivity.java
com.droidkit.sample.TestMainActivity.java
com.droidkit.sample.listenginetest.TestListEngineActivity.java
com.droidkit.sample.listenginetest.TestProto.java
com.droidkit.sample.view.BlockingListView.java