1 /* 2 * Copyright (C) 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.adservices.data.measurement.migration; 18 19 import android.database.sqlite.SQLiteDatabase; 20 21 /** 22 * Its implementations will have logic to migration from a version to next version. The logic would 23 * essentially have pre data migration, data transfer and post migration (cleanup) steps. Caller 24 * should invoke {@link #performMigration(SQLiteDatabase)} API to perform the migration. 25 */ 26 public interface IMeasurementDbMigrator { 27 /** 28 * Migrates from a certain version to the next DB version. 29 * 30 * @param db db to perform migration on 31 * @param oldVersion device version before migration 32 * @param newVersion target version post migration 33 */ performMigration(SQLiteDatabase db, int oldVersion, int newVersion)34 void performMigration(SQLiteDatabase db, int oldVersion, int newVersion); 35 } 36