
com.gluonhq.ignite.dagger.DaggerContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ignite-dagger Show documentation
Show all versions of ignite-dagger Show documentation
Creates a common abstraction over dagger
package com.gluonhq.ignite.dagger;
import com.gluonhq.ignite.DIContext;
import dagger.Module;
import dagger.ObjectGraph;
import dagger.Provides;
import javafx.fxml.FXMLLoader;
import javax.inject.Singleton;
import java.util.Collection;
import java.util.HashSet;
import java.util.Objects;
import java.util.function.Supplier;
/**
* Implementation of Dependency Injection context for Dagger
*/
public class DaggerContext implements DIContext {
private final Object contextRoot;
private final Supplier> modules;
private ObjectGraph injector;
/**
* Create the Dagger context
* @param contextRoot root object to inject
* @param modules custom Dagger modules
*/
public DaggerContext( Object contextRoot, Supplier> modules) {
this.contextRoot = Objects.requireNonNull(contextRoot);
this.modules = Objects.requireNonNull(modules);
}
/**
* {@inheritDoc}
*/
@Override
public void injectMembers(Object instance) {
injector.inject(instance);
}
/**
* {@inheritDoc}
*/
@Override
public T getInstance(Class cls) {
return injector.get(cls);
}
/**
* {@inheritDoc}
*/
public final void init() {
Collection
© 2015 - 2025 Weber Informatics LLC | Privacy Policy