Java tutorial
/* * Copyright (C) 2013 uPhyca Inc. http://www.uphyca.com/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.uphyca.kitkat.storage; import android.app.Activity; import android.app.Application; import android.app.Service; import android.content.ContentProvider; import android.content.Context; import android.support.v4.app.Fragment; import dagger.ObjectGraph; /** * DI???? * ????aspect?? * * @see com.uphyca.kitkat.storage.aspects.InjectionAspect * @author masui@uphyca.com */ public abstract class InjectionUtil { private InjectionUtil() { throw new UnsupportedOperationException(); } /** * activity??? * * @param activity activity */ public static void inject(Activity activity) { inject(acquireInjector(activity.getApplication()), activity); } /** * service??? * * @param service service */ public static void inject(Service service) { inject(acquireInjector(service.getApplication()), service); } /** * fragment??? * * @param fragment */ public static void inject(Fragment fragment) { inject(acquireInjector(fragment.getActivity().getApplication()), fragment); } /** * provider??? * * @param provider */ public static void inject(ContentProvider provider) { inject(acquireInjector(provider.getContext()), provider); } private static ObjectGraph acquireInjector(Context context) { return acquireInjector(Application.class .cast((context instanceof Application) ? context : context.getApplicationContext())); } private static ObjectGraph acquireInjector(Application application) { return HelloKitKatApplication.class.cast(application).getInjector(); } private static void inject(ObjectGraph injector, Object obj) { if (injector == null) { return; } injector.inject(obj); } }