basbeu/theSofties

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

Summary

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

import android.util.Log;

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;

/**
 * The API keys are used to provide the mail service for Favors
 * (and the maps service?)
 */
public class ApiKeys extends DatabaseEntity {
    public enum StringFields implements DatabaseStringField {mailGun}

    public enum LongFields implements DatabaseLongField {}

    public enum ObjectFields implements DatabaseObjectField {}

    public enum BooleanFields implements DatabaseBooleanField {}

    private static String COLLECTION = "apiKeys";
    private static String DOC_ID = "keys";
    private static String TAG = "API_KEYS";

    private static ApiKeys mInstance;

    private ApiKeys() {
        super(ApiKeys.StringFields.values(), LongFields.values(), ApiKeys.BooleanFields.values(),
                ApiKeys.ObjectFields.values(), COLLECTION, DOC_ID);
        Log.d(TAG, "Creating new api key object");
        if (mInstance != null) throw new UnsupportedOperationException("Instance already exists");
    }

    /**
     * You need to call Database.getInstance.updateFromDb(apiKey) to be sure that the key is loaded
     *
     * @return An API key object
     */
    public static synchronized ApiKeys getInstance() {
        if (mInstance == null) {
            mInstance = new ApiKeys();
        }
        return mInstance;
    }


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