- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
202 lines
7.7 KiB
Java
202 lines
7.7 KiB
Java
package androidx.room;
|
|
|
|
import android.database.sqlite.SQLiteConstraintException;
|
|
import androidx.annotation.RestrictTo;
|
|
import java.util.Collection;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import kotlin.collections.CollectionsKt__CollectionsJVMKt;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlin.jvm.internal.SourceDebugExtension;
|
|
import kotlin.text.StringsKt__StringsKt;
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
@SourceDebugExtension({"SMAP\nEntityUpsertionAdapter.kt\nKotlin\n*S Kotlin\n*F\n+ 1 EntityUpsertionAdapter.kt\nandroidx/room/EntityUpsertionAdapter\n+ 2 _Arrays.kt\nkotlin/collections/ArraysKt___ArraysKt\n+ 3 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,224:1\n13579#2,2:225\n13579#2,2:229\n1855#3,2:227\n1855#3,2:231\n*S KotlinDebug\n*F\n+ 1 EntityUpsertionAdapter.kt\nandroidx/room/EntityUpsertionAdapter\n*L\n78#1:225,2\n151#1:229,2\n89#1:227,2\n165#1:231,2\n*E\n"})
|
|
/* loaded from: classes.dex */
|
|
public final class EntityUpsertionAdapter<T> {
|
|
private final EntityInsertionAdapter<T> insertionAdapter;
|
|
private final EntityDeletionOrUpdateAdapter<T> updateAdapter;
|
|
|
|
public EntityUpsertionAdapter(EntityInsertionAdapter<T> insertionAdapter, EntityDeletionOrUpdateAdapter<T> updateAdapter) {
|
|
Intrinsics.checkNotNullParameter(insertionAdapter, "insertionAdapter");
|
|
Intrinsics.checkNotNullParameter(updateAdapter, "updateAdapter");
|
|
this.insertionAdapter = insertionAdapter;
|
|
this.updateAdapter = updateAdapter;
|
|
}
|
|
|
|
public final void upsert(T t) {
|
|
try {
|
|
this.insertionAdapter.insert((EntityInsertionAdapter<T>) t);
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(t);
|
|
}
|
|
}
|
|
|
|
public final long upsertAndReturnId(T t) {
|
|
try {
|
|
return this.insertionAdapter.insertAndReturnId(t);
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(t);
|
|
return -1L;
|
|
}
|
|
}
|
|
|
|
public final long[] upsertAndReturnIdsArray(T[] entities) {
|
|
long j;
|
|
Intrinsics.checkNotNullParameter(entities, "entities");
|
|
int length = entities.length;
|
|
long[] jArr = new long[length];
|
|
for (int i = 0; i < length; i++) {
|
|
try {
|
|
j = this.insertionAdapter.insertAndReturnId(entities[i]);
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(entities[i]);
|
|
j = -1;
|
|
}
|
|
jArr[i] = j;
|
|
}
|
|
return jArr;
|
|
}
|
|
|
|
public final long[] upsertAndReturnIdsArray(Collection<? extends T> entities) {
|
|
long j;
|
|
Intrinsics.checkNotNullParameter(entities, "entities");
|
|
Iterator<? extends T> it = entities.iterator();
|
|
int size = entities.size();
|
|
long[] jArr = new long[size];
|
|
for (int i = 0; i < size; i++) {
|
|
T next = it.next();
|
|
try {
|
|
j = this.insertionAdapter.insertAndReturnId(next);
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(next);
|
|
j = -1;
|
|
}
|
|
jArr[i] = j;
|
|
}
|
|
return jArr;
|
|
}
|
|
|
|
public final List<Long> upsertAndReturnIdsList(T[] entities) {
|
|
List createListBuilder;
|
|
List<Long> build;
|
|
Intrinsics.checkNotNullParameter(entities, "entities");
|
|
createListBuilder = CollectionsKt__CollectionsJVMKt.createListBuilder();
|
|
for (T t : entities) {
|
|
try {
|
|
createListBuilder.add(Long.valueOf(this.insertionAdapter.insertAndReturnId(t)));
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(t);
|
|
createListBuilder.add(-1L);
|
|
}
|
|
}
|
|
build = CollectionsKt__CollectionsJVMKt.build(createListBuilder);
|
|
return build;
|
|
}
|
|
|
|
public final List<Long> upsertAndReturnIdsList(Collection<? extends T> entities) {
|
|
List createListBuilder;
|
|
List<Long> build;
|
|
Intrinsics.checkNotNullParameter(entities, "entities");
|
|
createListBuilder = CollectionsKt__CollectionsJVMKt.createListBuilder();
|
|
for (T t : entities) {
|
|
try {
|
|
createListBuilder.add(Long.valueOf(this.insertionAdapter.insertAndReturnId(t)));
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(t);
|
|
createListBuilder.add(-1L);
|
|
}
|
|
}
|
|
build = CollectionsKt__CollectionsJVMKt.build(createListBuilder);
|
|
return build;
|
|
}
|
|
|
|
public final Long[] upsertAndReturnIdsArrayBox(T[] entities) {
|
|
long j;
|
|
Intrinsics.checkNotNullParameter(entities, "entities");
|
|
int length = entities.length;
|
|
Long[] lArr = new Long[length];
|
|
for (int i = 0; i < length; i++) {
|
|
try {
|
|
j = this.insertionAdapter.insertAndReturnId(entities[i]);
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(entities[i]);
|
|
j = -1;
|
|
}
|
|
lArr[i] = Long.valueOf(j);
|
|
}
|
|
return lArr;
|
|
}
|
|
|
|
public final Long[] upsertAndReturnIdsArrayBox(Collection<? extends T> entities) {
|
|
long j;
|
|
Intrinsics.checkNotNullParameter(entities, "entities");
|
|
Iterator<? extends T> it = entities.iterator();
|
|
int size = entities.size();
|
|
Long[] lArr = new Long[size];
|
|
for (int i = 0; i < size; i++) {
|
|
T next = it.next();
|
|
try {
|
|
j = this.insertionAdapter.insertAndReturnId(next);
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(next);
|
|
j = -1;
|
|
}
|
|
lArr[i] = Long.valueOf(j);
|
|
}
|
|
return lArr;
|
|
}
|
|
|
|
private final void checkUniquenessException(SQLiteConstraintException sQLiteConstraintException) {
|
|
boolean contains$default;
|
|
boolean contains$default2;
|
|
String message = sQLiteConstraintException.getMessage();
|
|
if (message == null) {
|
|
throw sQLiteConstraintException;
|
|
}
|
|
if (StringsKt__StringsKt.contains(message, "unique", true)) {
|
|
return;
|
|
}
|
|
contains$default = StringsKt__StringsKt.contains$default(message, "2067", false, 2, null);
|
|
if (contains$default) {
|
|
return;
|
|
}
|
|
contains$default2 = StringsKt__StringsKt.contains$default(message, "1555", false, 2, null);
|
|
if (!contains$default2) {
|
|
throw sQLiteConstraintException;
|
|
}
|
|
}
|
|
|
|
public final void upsert(Iterable<? extends T> entities) {
|
|
Intrinsics.checkNotNullParameter(entities, "entities");
|
|
for (T t : entities) {
|
|
try {
|
|
this.insertionAdapter.insert((EntityInsertionAdapter<T>) t);
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(t);
|
|
}
|
|
}
|
|
}
|
|
|
|
public final void upsert(T[] entities) {
|
|
Intrinsics.checkNotNullParameter(entities, "entities");
|
|
for (T t : entities) {
|
|
try {
|
|
this.insertionAdapter.insert((EntityInsertionAdapter<T>) t);
|
|
} catch (SQLiteConstraintException e) {
|
|
checkUniquenessException(e);
|
|
this.updateAdapter.handle(t);
|
|
}
|
|
}
|
|
}
|
|
}
|