Mercury-IM/persistence-room/src/main/java/org/mercury_im/messenger/persistence/room/model/RoomAvatarModel.java

88 lines
2.3 KiB
Java

package org.mercury_im.messenger.persistence.room.model;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.Index;
import androidx.room.PrimaryKey;
import org.mercury_im.messenger.persistence.model.AvatarModel;
import static androidx.room.ForeignKey.RESTRICT;
import static org.mercury_im.messenger.persistence.room.model.RoomAvatarModel.KEY_ENTITY_ID;
import static org.mercury_im.messenger.persistence.room.model.RoomAvatarModel.KEY_ID;
import static org.mercury_im.messenger.persistence.room.model.RoomAvatarModel.TABLE;
@Entity(tableName = TABLE,
indices = {
@Index(value = KEY_ID),
@Index(value = KEY_ENTITY_ID, unique = true)
},
foreignKeys = {
@ForeignKey(entity = RoomEntityModel.class,
parentColumns = RoomEntityModel.KEY_ID,
childColumns = KEY_ENTITY_ID,
onDelete = RESTRICT)
})
public class RoomAvatarModel implements AvatarModel {
public static final String TABLE = "avatars";
public static final String KEY_ID = "pk_avatar_id";
public static final String KEY_ENTITY_ID = "fk_entity_id";
public static final String KEY_SHA1_SUM = "sha1sum";
public static final String KEY_BYTES = "bytes";
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = KEY_ID)
private long avatarId;
@ColumnInfo(name = KEY_ENTITY_ID)
private long entityId;
@ColumnInfo(name = KEY_SHA1_SUM)
private String sha1Sum;
@ColumnInfo(name = KEY_BYTES)
private byte[] bytes;
@Override
public long getAvatarId() {
return avatarId;
}
@Override
public void setAvatarId(long id) {
this.avatarId = id;
}
@Override
public long entityId() {
return entityId;
}
@Override
public void setEntityId(long entityId) {
this.entityId = entityId;
}
@Override
public String getSha1Sum() {
return sha1Sum;
}
@Override
public void setSha1Sum(String sha1Sum) {
this.sha1Sum = sha1Sum;
}
@Override
public byte[] getBytes() {
return bytes.clone();
}
@Override
public void setBytes(byte[] bytes) {
this.bytes = bytes;
}
}