You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/app/src/main/java/org/tasks/data/Tag.java

108 lines
2.3 KiB
Java

package org.tasks.data;
import androidx.annotation.NonNull;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.Index;
import androidx.room.PrimaryKey;
import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.andlib.data.Table;
import com.todoroo.astrid.data.Task;
import org.tasks.backup.XmlReader;
@Entity(tableName = "tags", indices = @Index(name = "tag_task", value = "task"))
public class Tag {
public static final String KEY = "tags-tag"; // $NON-NLS-1$
public static final Table TABLE = new Table("tags");
public static final StringProperty TASK_UID = new StringProperty(TABLE, "task_uid");
public static final StringProperty NAME = new StringProperty(TABLE, "name");
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
private transient long id;
@ColumnInfo(name = "task")
private transient long task;
@ColumnInfo(name = "name")
private String name;
@ColumnInfo(name = "tag_uid")
private String tagUid;
@ColumnInfo(name = "task_uid")
private transient String taskUid;
public Tag() {}
@Ignore
public Tag(Task task, TagData tagData) {
this(task, tagData.getName(), tagData.getRemoteId());
}
@Ignore
public Tag(Task task, String name, String tagUid) {
this(task.getId(), task.getUuid(), name, tagUid);
}
@Ignore
public Tag(long taskId, String taskUid, String name, String tagUid) {
this.task = taskId;
this.taskUid = taskUid;
this.name = name;
this.tagUid = tagUid;
}
@Ignore
public Tag(XmlReader xmlReader) {
xmlReader.readString("name", this::setName);
xmlReader.readString("tag_uid", this::setTagUid);
xmlReader.readString("task_uid", this::setTaskUid);
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getTask() {
return task;
}
public void setTask(long task) {
this.task = task;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTagUid() {
return tagUid;
}
public void setTagUid(String tagUid) {
this.tagUid = tagUid;
}
@NonNull
public String getTaskUid() {
return taskUid;
}
public void setTaskUid(@NonNull String taskUid) {
this.taskUid = taskUid;
}
}