All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.relayr.java.RelayrJavaApp Maven / Gradle / Ivy

package io.relayr.java;

import dagger.ObjectGraph;

public class RelayrJavaApp {

    protected static String mToken;
    protected static RelayrJavaApp sApp;
    protected static ObjectGraph sObjectGraph;

    protected RelayrJavaApp(boolean mockMode) {
        sApp = this;
        buildObjectGraphAndInject(mockMode);
    }

    /**
     * Condition (sApp == null || mockMode) is used when Relayr app is already initialized
     * but you need to recreate it with another set of Dagger modules (e.g. while testing)
     * @param mockMode true for debug mode and tests
     */
    public static void init(String token, boolean mockMode) {
        reset();
        mToken = token;
        if (sApp == null || mockMode) {
            synchronized (new Object()) {
                if (sApp == null || mockMode) {
                    new RelayrJavaApp(mockMode);
                }
            }
        }
    }

    protected static void buildObjectGraphAndInject(boolean mockMode) {
        sObjectGraph = mockMode ? ObjectGraph.create(DebugModules.list()) :
                ObjectGraph.create(Modules.list());
        sObjectGraph.injectStatics();
        sObjectGraph.inject(sApp);
    }

    public static String getToken() {
        return mToken;
    }

    public static void setToken(String token) {
        mToken = token;
    }

    public static void inject(Object o) {
        sObjectGraph.inject(o);
    }

    protected static void reset() {
        mToken = null;
        sApp = null;
        sObjectGraph = null;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy