public class

ForeignKeyBundle

extends java.lang.Object

implements androidx.room.migration.bundle.SchemaEquality<ForeignKeyBundle>

 java.lang.Object

↳androidx.room.migration.bundle.ForeignKeyBundle

Overview

Holds the information about a foreign key reference.

Summary

Constructors
publicForeignKeyBundle(java.lang.String table, java.lang.String onDelete, java.lang.String onUpdate, java.util.List<java.lang.String> columns, java.util.List<java.lang.String> referencedColumns)

Creates a foreign key bundle with the given parameters.

Methods
public java.util.List<java.lang.String>getColumns()

Returns the ordered list of columns in the current table.

public java.lang.StringgetOnDelete()

Returns the SQLite foreign key action that will be performed when referenced row is deleted.

public java.lang.StringgetOnUpdate()

Returns the SQLite foreign key action that will be performed when referenced row is updated.

public java.util.List<java.lang.String>getReferencedColumns()

Returns the ordered list of columns in the referenced table.

public java.lang.StringgetTable()

Returns the table name

public booleanisSchemaEqual(ForeignKeyBundle other)

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

Constructors

public ForeignKeyBundle(java.lang.String table, java.lang.String onDelete, java.lang.String onUpdate, java.util.List<java.lang.String> columns, java.util.List<java.lang.String> referencedColumns)

Creates a foreign key bundle with the given parameters.

Parameters:

table: The target table
onDelete: OnDelete action
onUpdate: OnUpdate action
columns: The list of columns in the current table
referencedColumns: The list of columns in the referenced table

Methods

public java.lang.String getTable()

Returns the table name

Returns:

Returns the table name

public java.lang.String getOnDelete()

Returns the SQLite foreign key action that will be performed when referenced row is deleted.

Returns:

The SQLite on delete action

public java.lang.String getOnUpdate()

Returns the SQLite foreign key action that will be performed when referenced row is updated.

Returns:

The SQLite on update action

public java.util.List<java.lang.String> getColumns()

Returns the ordered list of columns in the current table.

Returns:

The list of columns in the current entity.

public java.util.List<java.lang.String> getReferencedColumns()

Returns the ordered list of columns in the referenced table.

Returns:

The list of columns in the referenced entity.

public boolean isSchemaEqual(ForeignKeyBundle other)

Source

/*
 * Copyright (C) 2017 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.migration.bundle;

import androidx.annotation.RestrictTo;

import com.google.gson.annotations.SerializedName;

import java.util.List;

/**
 * Holds the information about a foreign key reference.
 *
 * @hide
 */
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
public class ForeignKeyBundle implements SchemaEquality<ForeignKeyBundle> {
    @SerializedName("table")
    private String mTable;
    @SerializedName("onDelete")
    private String mOnDelete;
    @SerializedName("onUpdate")
    private String mOnUpdate;
    @SerializedName("columns")
    private List<String> mColumns;
    @SerializedName("referencedColumns")
    private List<String> mReferencedColumns;

    /**
     * Creates a foreign key bundle with the given parameters.
     *
     * @param table             The target table
     * @param onDelete          OnDelete action
     * @param onUpdate          OnUpdate action
     * @param columns           The list of columns in the current table
     * @param referencedColumns The list of columns in the referenced table
     */
    public ForeignKeyBundle(String table, String onDelete, String onUpdate,
            List<String> columns, List<String> referencedColumns) {
        mTable = table;
        mOnDelete = onDelete;
        mOnUpdate = onUpdate;
        mColumns = columns;
        mReferencedColumns = referencedColumns;
    }

    /**
     * Returns the table name
     *
     * @return Returns the table name
     */
    public String getTable() {
        return mTable;
    }

    /**
     * Returns the SQLite foreign key action that will be performed when referenced row is deleted.
     *
     * @return The SQLite on delete action
     */
    public String getOnDelete() {
        return mOnDelete;
    }

    /**
     * Returns the SQLite foreign key action that will be performed when referenced row is updated.
     *
     * @return The SQLite on update action
     */
    public String getOnUpdate() {
        return mOnUpdate;
    }

    /**
     * Returns the ordered list of columns in the current table.
     *
     * @return The list of columns in the current entity.
     */
    public List<String> getColumns() {
        return mColumns;
    }

    /**
     * Returns the ordered list of columns in the referenced table.
     *
     * @return The list of columns in the referenced entity.
     */
    public List<String> getReferencedColumns() {
        return mReferencedColumns;
    }

    @Override
    public boolean isSchemaEqual(ForeignKeyBundle other) {
        if (mTable != null ? !mTable.equals(other.mTable) : other.mTable != null) return false;
        if (mOnDelete != null ? !mOnDelete.equals(other.mOnDelete) : other.mOnDelete != null) {
            return false;
        }
        if (mOnUpdate != null ? !mOnUpdate.equals(other.mOnUpdate) : other.mOnUpdate != null) {
            return false;
        }
        // order matters
        return mColumns.equals(other.mColumns) && mReferencedColumns.equals(
                other.mReferencedColumns);
    }
}