/*
- * Copyright © 2021 Damyan Ivanov.
+ * Copyright © 2022 Damyan Ivanov.
* This file is part of MoLe.
* MoLe is free software: you can distribute it and/or modify it
* under the term of the GNU General Public License as published by
import androidx.annotation.Nullable;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
+import androidx.room.Index;
import androidx.room.PrimaryKey;
import net.ktnx.mobileledger.utils.Misc;
import org.jetbrains.annotations.NotNull;
-@Entity(tableName = "templates")
+import java.util.UUID;
+
+@Entity(tableName = "templates",
+ indices = {@Index(name = "templates_uuid_idx", unique = true, value = "uuid")})
public class TemplateHeader extends TemplateBase {
@PrimaryKey(autoGenerate = true)
- @NonNull
- private Long id;
+ private long id;
@ColumnInfo(name = "name")
@NonNull
private String name;
@NonNull
+ @ColumnInfo
+ private String uuid;
+ @NonNull
@ColumnInfo(name = "regular_expression")
private String regularExpression;
@ColumnInfo(name = "test_text")
private Integer dateDay;
@ColumnInfo(name = "date_day_match_group")
private Integer dateDayMatchGroup;
+ @ColumnInfo(name = "is_fallback")
+ private boolean isFallback;
public TemplateHeader(@NotNull Long id, @NonNull String name,
@NonNull String regularExpression) {
this.id = id;
this.name = name;
this.regularExpression = regularExpression;
+ this.uuid = UUID.randomUUID()
+ .toString();
}
public TemplateHeader(TemplateHeader origin) {
id = origin.id;
name = origin.name;
+ uuid = origin.uuid;
regularExpression = origin.regularExpression;
testText = origin.testText;
transactionDescription = origin.transactionDescription;
dateMonthMatchGroup = origin.dateMonthMatchGroup;
dateDay = origin.dateDay;
dateDayMatchGroup = origin.dateDayMatchGroup;
+ isFallback = origin.isFallback;
+ }
+ @NonNull
+ public String getUuid() {
+ return uuid;
+ }
+ public void setUuid(@NonNull String uuid) {
+ this.uuid = uuid;
+ }
+ public boolean isFallback() {
+ return isFallback;
+ }
+ public void setFallback(boolean fallback) {
+ isFallback = fallback;
}
public String getTestText() {
return testText;
public void setDateDay(Integer dateDay) {
this.dateDay = dateDay;
}
- @NonNull
- public Long getId() {
+ public long getId() {
return id;
}
- public void setId(@NonNull Long id) {
+ public void setId(long id) {
this.id = id;
}
@NonNull
}
public TemplateHeader createDuplicate() {
TemplateHeader dup = new TemplateHeader(this);
- dup.id = null;
+ dup.id = 0;
+ dup.uuid = UUID.randomUUID()
+ .toString();
return dup;
}