/droidcare-common/src/main/java/com/googlecode/droidcare/common/AppContext.java

https://bitbucket.org/pbuitvydas/droid-care · Java · 156 lines · 104 code · 33 blank · 19 comment · 2 complexity · 4e0631bce3c164d74883958cbeb63d61 MD5 · raw file

  1. package com.googlecode.droidcare.common;
  2. /*
  3. * #%L
  4. * droidcare-common
  5. * %%
  6. * Copyright (C) 2012 - 2013 Paulius Buitvydas
  7. * %%
  8. * Licensed under the Apache License, Version 2.0 (the "License");
  9. * you may not use this file except in compliance with the License.
  10. * You may obtain a copy of the License at
  11. *
  12. * http://www.apache.org/licenses/LICENSE-2.0
  13. *
  14. * Unless required by applicable law or agreed to in writing, software
  15. * distributed under the License is distributed on an "AS IS" BASIS,
  16. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17. * See the License for the specific language governing permissions and
  18. * limitations under the License.
  19. * #L%
  20. */
  21. import com.google.inject.Guice;
  22. import com.google.inject.Inject;
  23. import com.google.inject.Injector;
  24. import com.google.inject.Provider;
  25. import com.google.inject.Singleton;
  26. import com.googlecode.droidcare.common.api.exception.ExceptionHandler;
  27. import com.googlecode.droidcare.common.api.net.HttpService;
  28. import com.googlecode.droidcare.common.di.GuiceModule;
  29. import com.googlecode.droidcare.common.js.JsErrorManager;
  30. import com.googlecode.droidcare.common.js.JsLogger;
  31. import com.googlecode.droidcare.common.provider.ProviderManager;
  32. import com.googlecode.droidcare.common.provider.SelfServiceProvider;
  33. import com.googlecode.droidcare.common.usr.UserAccount;
  34. import com.googlecode.droidcare.common.view.ViewRenderer;
  35. @Singleton
  36. @SuppressWarnings("rawtypes")
  37. public final class AppContext {
  38. private ProviderManager providerManager;
  39. private ScriptEngine scriptEngine;
  40. private HttpService httpService;
  41. private UserAccount userAccount;
  42. private JsLogger logger;
  43. private JsErrorManager errorManager;
  44. private ViewRenderer viewRenderer;
  45. private Injector injector;
  46. @Inject
  47. protected static Provider<AppContext> contexProvider;
  48. @Inject
  49. protected static Provider<SelfServiceProvider> selfServiceProvider;
  50. @Inject
  51. protected static Provider<ExceptionHandler> exceptionHandlerProvider;
  52. public ProviderManager getProviderManager() {
  53. return providerManager;
  54. }
  55. @Inject
  56. public void setProviderManager(ProviderManager providerManager) {
  57. this.providerManager = providerManager;
  58. }
  59. public ScriptEngine getScriptEngine() {
  60. return scriptEngine;
  61. }
  62. @Inject
  63. public void setScriptEngine(ScriptEngine scriptEngine) {
  64. this.scriptEngine = scriptEngine;
  65. }
  66. public HttpService getHttpService() {
  67. return httpService;
  68. }
  69. @Inject
  70. public void setHttpService(HttpService httpService) {
  71. this.httpService = httpService;
  72. }
  73. public UserAccount getUserAccount() {
  74. return userAccount;
  75. }
  76. @Inject
  77. public void setUserAccount(UserAccount userAccount) {
  78. this.userAccount = userAccount;
  79. }
  80. public Injector getInjector() {
  81. return injector;
  82. }
  83. @Inject
  84. public void setInjector(Injector injector) {
  85. this.injector = injector;
  86. }
  87. public JsLogger getLogger() {
  88. return logger;
  89. }
  90. @Inject
  91. public void setLogger(JsLogger logger) {
  92. this.logger = logger;
  93. }
  94. public JsErrorManager getErrorManager() {
  95. return errorManager;
  96. }
  97. @Inject
  98. public void setErrorManager(JsErrorManager errorManager) {
  99. this.errorManager = errorManager;
  100. }
  101. public ViewRenderer getViewRenderer() {
  102. return viewRenderer;
  103. }
  104. @Inject
  105. public void setViewRenderer(ViewRenderer viewRenderer) {
  106. this.viewRenderer = viewRenderer;
  107. }
  108. public SelfServiceProvider newProvider() {
  109. return selfServiceProvider.get();
  110. }
  111. public static AppContext getInstance() {
  112. if (contexProvider == null) {
  113. bootstrap();
  114. }
  115. return contexProvider.get();
  116. }
  117. public static ExceptionHandler getExceptionHandler() {
  118. return exceptionHandlerProvider.get();
  119. }
  120. public static void bootstrap() {
  121. Guice.createInjector(new GuiceModule());
  122. }
  123. }