-
Notifications
You must be signed in to change notification settings - Fork 5
/
AppDIComponent.java
45 lines (35 loc) · 1.24 KB
/
AppDIComponent.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package io.catter2.di;
import android.content.Context;
import io.catter2.cat_api.TheCatAPI;
public class AppDIComponent {
private static AppDIComponent instance;
public static AppDIComponent get() {
return AppDIComponent.instance;
}
public static void initialize(AppDIModule appDIModule, TheCatAPIDIModule theCatAPIDIModule) {
if (AppDIComponent.get() != null) {
throw new RuntimeException("AppDIComponent already initialized.");
}
AppDIComponent.instance = new AppDIComponent(appDIModule, theCatAPIDIModule);
}
private AppDIModule appDIModule;
private TheCatAPIDIModule theCatAPIDIModule;
private Context appContext;
private TheCatAPI theCatAPI;
public AppDIComponent(AppDIModule appDIModule, TheCatAPIDIModule theCatAPIDIModule) {
this.appDIModule = appDIModule;
this.theCatAPIDIModule = theCatAPIDIModule;
}
public Context getAppContext() {
if (appContext == null) {
appContext = appDIModule.provideAppContext();
}
return appContext;
}
public TheCatAPI getTheCatAPI() {
if (theCatAPI == null) {
theCatAPI = theCatAPIDIModule.provideTheCatAPI();
}
return theCatAPI;
}
}