package org.infinispan.xsite.status;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
* Abstract class to create mixed {@link SiteStatus}.
* <p>
* Mixed {@link SiteStatus} are status in which some considers the site to be online and other to be offline.
*
* @author Pedro Ruivo
* @since 8.2
*/
public abstract class AbstractMixedSiteStatus<E> implements SiteStatus {
protected final List<E> online;
protected final List<E> offline;
protected AbstractMixedSiteStatus(Collection<E> online, Collection<E> offline) {
this.online = toImmutable(online);
this.offline = toImmutable(offline);
}
protected static <E> List<E> toImmutable(Collection<E> collection) {
return Collections.unmodifiableList(new ArrayList<>(collection));
}
@Override
public final boolean isOnline() {
return false;
}
@Override
public final boolean isOffline() {
return false;
}
public List<E> getOnline() {
return online;
}
public List<E> getOffline() {
return offline;
}
}