package org.ovirt.engine.ui.webadmin.uicommon;
import org.ovirt.engine.ui.uicommonweb.Configurator;
import org.ovirt.engine.ui.uicommonweb.ILogger;
import org.ovirt.engine.ui.uicommonweb.ITimer;
import org.ovirt.engine.ui.uicommonweb.ITypeResolver;
import org.ovirt.engine.ui.uicommonweb.models.vms.IRdp;
import org.ovirt.engine.ui.uicommonweb.models.vms.ISpice;
import org.ovirt.engine.ui.uicommonweb.models.vms.IVnc;
import com.google.inject.Inject;
public class UiCommonDefaultTypeResolver implements ITypeResolver {
private final WebAdminConfigurator configurator;
private final ILogger logger;
@Inject
public UiCommonDefaultTypeResolver(WebAdminConfigurator configurator, ILogger logger) {
this.configurator = configurator;
this.logger = logger;
}
@SuppressWarnings("rawtypes")
@Override
public Object Resolve(Class type) {
if (type == Configurator.class) {
return configurator;
} else if (type == ILogger.class) {
return logger;
} else if (type == ITimer.class) {
return new TimerImpl();
} else if (type == ISpice.class) {
return new SpiceInterfaceImpl();
} else if (type == IVnc.class) {
return new IVncImpl();
} else if (type == IRdp.class) {
return new IRdpImpl();
}
throw new RuntimeException("UiCommon Resolver cannot resolve type: " + type);
}
}