package io.airlift.airship.coordinator;
import com.google.common.base.Preconditions;
import io.airlift.airship.shared.CoordinatorLifecycleState;
import io.airlift.airship.shared.CoordinatorStatus;
import java.util.Map;
public class MockRemoteCoordinatorFactory
implements RemoteCoordinatorFactory
{
private final Map<String, CoordinatorStatus> coordinators;
public MockRemoteCoordinatorFactory(Map<String, CoordinatorStatus> coordinators)
{
Preconditions.checkNotNull(coordinators, "coordinators is null");
this.coordinators = coordinators;
}
@Override
public RemoteCoordinator createRemoteCoordinator(Instance instance, CoordinatorLifecycleState state)
{
CoordinatorStatus coordinatorStatus = coordinators.get(instance.getInstanceId());
Preconditions.checkArgument(coordinatorStatus != null, "Unknown instance %s", instance.getInstanceId());
return new MockRemoteCoordinator(instance.getInstanceId(), coordinators);
}
}