public abstract class

EntityDeletionOrUpdateAdapter<T>

extends SharedSQLiteStatement

 java.lang.Object

androidx.room.SharedSQLiteStatement

↳androidx.room.EntityDeletionOrUpdateAdapter<T>

Gradle dependencies

compile group: 'androidx.room', name: 'room-runtime', version: '2.5.0-alpha01'

  • groupId: androidx.room
  • artifactId: room-runtime
  • version: 2.5.0-alpha01

Artifact androidx.room:room-runtime:2.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Androidx artifact mapping:

androidx.room:room-runtime android.arch.persistence.room:runtime

Androidx class mapping:

androidx.room.EntityDeletionOrUpdateAdapter android.arch.persistence.room.EntityDeletionOrUpdateAdapter

Overview

Implementations of this class knows how to delete or update a particular entity.

This is an internal library class and all of its implementations are auto-generated.

Summary

Constructors
publicEntityDeletionOrUpdateAdapter(RoomDatabase database)

Creates a DeletionOrUpdateAdapter that can delete or update the entity type T on the given database.

Methods
protected abstract voidbind(SupportSQLiteStatement statement, java.lang.Object entity)

Binds the entity into the given statement.

protected abstract java.lang.StringcreateQuery()

Create the deletion or update query

public final inthandle(java.lang.Object entity)

Deletes or updates the given entities in the database and returns the affected row count.

public final inthandleMultiple(java.lang.Iterable<java.lang.Object> entities)

Deletes or updates the given entities in the database and returns the affected row count.

public final inthandleMultiple(java.lang.Object entities[])

Deletes or updates the given entities in the database and returns the affected row count.

from SharedSQLiteStatementacquire, assertNotMainThread, release
from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public EntityDeletionOrUpdateAdapter(RoomDatabase database)

Creates a DeletionOrUpdateAdapter that can delete or update the entity type T on the given database.

Parameters:

database: The database to delete / update the item in.

Methods

protected abstract java.lang.String createQuery()

Create the deletion or update query

Returns:

An SQL query that can delete or update instances of T.

protected abstract void bind(SupportSQLiteStatement statement, java.lang.Object entity)

Binds the entity into the given statement.

Parameters:

statement: The SQLite statement that prepared for the query returned from createQuery.
entity: The entity of type T.

public final int handle(java.lang.Object entity)

Deletes or updates the given entities in the database and returns the affected row count.

Parameters:

entity: The entity to delete or update

Returns:

The number of affected rows

public final int handleMultiple(java.lang.Iterable<java.lang.Object> entities)

Deletes or updates the given entities in the database and returns the affected row count.

Parameters:

entities: Entities to delete or update

Returns:

The number of affected rows

public final int handleMultiple(java.lang.Object entities[])

Deletes or updates the given entities in the database and returns the affected row count.

Parameters:

entities: Entities to delete or update

Returns:

The number of affected rows

Source

/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.room;

import androidx.annotation.RestrictTo;
import androidx.sqlite.db.SupportSQLiteStatement;

/**
 * Implementations of this class knows how to delete or update a particular entity.
 * <p>
 * This is an internal library class and all of its implementations are auto-generated.
 *
 * @param <T> The type parameter of the entity to be deleted
 * @hide
 */
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
@SuppressWarnings({"WeakerAccess", "unused"})
public abstract class EntityDeletionOrUpdateAdapter<T> extends SharedSQLiteStatement {
    /**
     * Creates a DeletionOrUpdateAdapter that can delete or update the entity type T on the given
     * database.
     *
     * @param database The database to delete / update the item in.
     */
    public EntityDeletionOrUpdateAdapter(RoomDatabase database) {
        super(database);
    }

    /**
     * Create the deletion or update query
     *
     * @return An SQL query that can delete or update instances of T.
     */
    @Override
    protected abstract String createQuery();

    /**
     * Binds the entity into the given statement.
     *
     * @param statement The SQLite statement that prepared for the query returned from
     *                  createQuery.
     * @param entity    The entity of type T.
     */
    protected abstract void bind(SupportSQLiteStatement statement, T entity);

    /**
     * Deletes or updates the given entities in the database and returns the affected row count.
     *
     * @param entity The entity to delete or update
     * @return The number of affected rows
     */
    public final int handle(T entity) {
        final SupportSQLiteStatement stmt = acquire();
        try {
            bind(stmt, entity);
            return stmt.executeUpdateDelete();
        } finally {
            release(stmt);
        }
    }

    /**
     * Deletes or updates the given entities in the database and returns the affected row count.
     *
     * @param entities Entities to delete or update
     * @return The number of affected rows
     */
    public final int handleMultiple(Iterable<? extends T> entities) {
        final SupportSQLiteStatement stmt = acquire();
        try {
            int total = 0;
            for (T entity : entities) {
                bind(stmt, entity);
                total += stmt.executeUpdateDelete();
            }
            return total;
        } finally {
            release(stmt);
        }
    }

    /**
     * Deletes or updates the given entities in the database and returns the affected row count.
     *
     * @param entities Entities to delete or update
     * @return The number of affected rows
     */
    public final int handleMultiple(T[] entities) {
        final SupportSQLiteStatement stmt = acquire();
        try {
            int total = 0;
            for (T entity : entities) {
                bind(stmt, entity);
                total += stmt.executeUpdateDelete();
            }
            return total;
        } finally {
            release(stmt);
        }
    }
}