basbeu/theSofties

View on GitHub
app/src/main/java/ch/epfl/sweng/favors/database/NotificationEntity.java

Summary

Maintainability
A
0 mins
Test Coverage
package ch.epfl.sweng.favors.database;

import ch.epfl.sweng.favors.database.fields.DatabaseBooleanField;
import ch.epfl.sweng.favors.database.fields.DatabaseLongField;
import ch.epfl.sweng.favors.database.fields.DatabaseObjectField;
import ch.epfl.sweng.favors.database.fields.DatabaseStringField;

public class NotificationEntity extends DatabaseEntity{
    private static final String TAG = "DB_NOTIFICATION";

    public enum StringFields implements DatabaseStringField {message}
    public enum LongFields implements DatabaseLongField {}
    public enum ObjectFields implements DatabaseObjectField {}
    public enum BooleanFields implements DatabaseBooleanField {}


    public NotificationEntity(String userId){
        this(null, userId);
    }

    public NotificationEntity(String id,String userId){
        super(StringFields.values(), LongFields.values(), BooleanFields.values(), ObjectFields.values(), getCollection(userId), id);

        if(db != null)
            db.updateFromDb(this);
    }

    private NotificationEntity(NotificationEntity notif){
        super(StringFields.values(), LongFields.values(), BooleanFields.values(), ObjectFields.values(), notif.collection, notif.documentID);
    }

    @Override
    public DatabaseEntity copy() {
        return new NotificationEntity(this);
    }

    public static String getCollection(String userId){
        return "users/" + userId + "/notifications";
    }
}