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/com/todoroo/astrid/dao/TagDataDao.java

55 lines
1.6 KiB
Java

/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.dao;
import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Insert;
import android.arch.persistence.room.OnConflictStrategy;
import android.arch.persistence.room.Query;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.helper.UUIDHelper;
import java.util.List;
@Dao
public abstract class TagDataDao {
@Query("SELECT * FROM tagdata WHERE name = :name COLLATE NOCASE LIMIT 1")
public abstract TagData getTagByName(String name);
// TODO: does this need to be ordered?
@Query("SELECT * FROM tagdata WHERE deleted = 0 ORDER BY _id ASC")
public abstract List<TagData> allTags();
@Query("SELECT * FROM tagdata WHERE remoteId = :uuid LIMIT 1")
public abstract TagData getByUuid(String uuid);
@Query("SELECT * FROM tagdata WHERE deleted = 0 AND name IS NOT NULL ORDER BY UPPER(name) ASC")
public abstract List<TagData> tagDataOrderedByName();
@Insert(onConflict = OnConflictStrategy.REPLACE)
public abstract void persist(TagData tagData);
@Query("UPDATE tagdata SET name = :name WHERE remoteId = :remoteId")
public abstract void rename(String remoteId, String name);
@Query("DELETE FROM tagdata WHERE _id = :id")
public abstract void delete(Long id);
@Insert
public abstract void insert(TagData tag);
public void createNew(TagData tag) {
if (RemoteModel.isUuidEmpty(tag.getRemoteId())) {
tag.setRemoteId(UUIDHelper.newUUID());
}
insert(tag);
}
}