package net.iubris.ulysses.tasks.search.aware.locationstate.provider;
import javax.inject.Inject;
import net.iubris.diane.searcher.aware.location.exceptions.base.LocationNotSoUsefulException;
import net.iubris.ulysses.tasks.search.aware.SearchAwareTaskLocationStateable;
import net.iubris.ulysses.tasks.search.aware.locationstate.LocationExceptionAfterFirstResult;
import net.iubris.ulysses.tasks.search.aware.locationstate.LocationExceptionStateBeforeFirstResult;
import net.iubris.ulysses.tasks.search.aware.locationstate.annotations.UIMessageForLocationStateHandlerAfterFirstResultForLocationNotSoUsefulException;
import net.iubris.ulysses.tasks.search.aware.locationstate.annotations.UIMessageForLocationStateHandlerBeforeFirstResultForLocationNotSoUsefulException;
import net.iubris.ulysses.tasks.search.aware.locationstate.uimessage.UIMessageForLocationStateHandlerAfterFirstResult;
import net.iubris.ulysses.tasks.search.aware.locationstate.uimessage.UIMessageForLocationStateHandlerBeforeFirstResult;
import roboguice.util.Ln;
public class DefaultMetaProviderForLocationExceptionStateForLocationNotSoUsefulException
extends AbstractMetaProviderForLocationExceptionState
implements MetaProviderForLocationExceptionStateForLocationNotSoUsefulException {
private LocationExceptionAfterFirstResult locationExceptionDefault;
@Inject
public DefaultMetaProviderForLocationExceptionStateForLocationNotSoUsefulException(
@UIMessageForLocationStateHandlerBeforeFirstResultForLocationNotSoUsefulException UIMessageForLocationStateHandlerBeforeFirstResult uiMessageForLocationStateNeverHappenedBeforeHandler,
@UIMessageForLocationStateHandlerAfterFirstResultForLocationNotSoUsefulException UIMessageForLocationStateHandlerAfterFirstResult uiMessageForLocationStateDefaultHandler) {
super(uiMessageForLocationStateNeverHappenedBeforeHandler, uiMessageForLocationStateDefaultHandler);
}
@Override
public MetaProviderForLocationExceptionState eventuallyInit(SearchAwareTaskLocationStateable searchAwareTaskLocationStateable) {
if (locationExceptionState==null) {
Ln.d("Init DefaultMetaProviderForLocationExceptionStateForLocationNotSoUsefulException");
locationExceptionState = new LocationExceptionStateBeforeFirstResult(searchAwareTaskLocationStateable, LocationNotSoUsefulException.class, uiMessageForLocationStateHandlerBeforeFirstResult, locationExceptionDefault);
locationExceptionDefault = new LocationExceptionAfterFirstResult(searchAwareTaskLocationStateable, LocationNotSoUsefulException.class, uiMessageForLocationStateHandlerAfterFirstResult);
}
return this;
}
@Override
public void setAfterFirstResult() {
locationExceptionState = locationExceptionDefault;
Ln.d("locationExceptionState is set to LocationExceptionAfterFirstResult");
}
}