package com.sequenceiq.cloudbreak.cloud.azure.task;
import javax.inject.Inject;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import com.sequenceiq.cloudbreak.cloud.azure.context.AzureInteractiveLoginStatusCheckerContext;
import com.sequenceiq.cloudbreak.cloud.azure.task.interactivelogin.AzureInteractiveLoginStatusCheckerTask;
import com.sequenceiq.cloudbreak.cloud.context.CloudContext;
import com.sequenceiq.cloudbreak.cloud.task.PollTask;
@Component
public class AzurePollTaskFactory {
@Inject
private ApplicationContext applicationContext;
public PollTask<Boolean> interactiveLoginStatusCheckerTask(CloudContext cloudContext,
AzureInteractiveLoginStatusCheckerContext armInteractiveLoginStatusCheckerContext) {
return createPollTask(AzureInteractiveLoginStatusCheckerTask.NAME, cloudContext, armInteractiveLoginStatusCheckerContext);
}
@SuppressWarnings("unchecked")
private <T> T createPollTask(String name, Object... args) {
return (T) applicationContext.getBean(name, args);
}
}