package org.arquillian.cube.docker.impl.client.containerobject;
import java.lang.annotation.Annotation;
import java.util.Optional;
import org.arquillian.cube.ContainerObjectFactory;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.api.annotation.Inject;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
public class ContainerObjectFactoryProvider implements ResourceProvider {
@Inject
private Instance<ContainerObjectFactory> instance;
@Override
public boolean canProvide(Class<?> type) {
return ContainerObjectFactory.class.isAssignableFrom(type);
}
@Override
public Object lookup(ArquillianResource resource, Annotation... qualifiers) {
return Optional.ofNullable(instance.get())
.orElseThrow(() -> new IllegalStateException(
String.format("%s was not found.", ContainerObjectFactory.class.getSimpleName())));
}
}