/* _____ _
* |_ _| |_ _ _ ___ ___ _ __ __ _
* | | | ' \| '_/ -_) -_) ' \/ _` |_
* |_| |_||_|_| \___\___|_|_|_\__,_(_)
*
* Threema for Android
* Copyright (c) 2018-2023 Threema GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package ch.threema.storage;
import net.sqlcipher.Cursor;
import androidx.collection.SimpleArrayMap;
public class ColumnIndexCache {
private final SimpleArrayMap indexMap = new SimpleArrayMap<>();
public int getColumnIndex(Cursor cursor, String columnName) {
synchronized (indexMap) {
if (!indexMap.containsKey(columnName)) {
int index = cursor.getColumnIndex(columnName);
indexMap.put(columnName, index);
return index;
}
return indexMap.get(columnName);
}
}
public void clear() {
synchronized (indexMap) {
indexMap.clear();
}
}
}