com.hubspot.singularity.data.history.BlendedHistoryHelper Maven / Gradle / Ivy
package com.hubspot.singularity.data.history;
import java.util.List;
import com.google.common.collect.Lists;
public abstract class BlendedHistoryHelper {
protected abstract List getFromZk(String id);
protected abstract List getFromHistory(String id, int historyStart, int numFromHistory);
public List getBlendedHistory(String id, Integer limitStart, Integer limitCount) {
final List fromZk = getFromZk(id);
final int numFromZk = Math.max(0, Math.min(limitCount, fromZk.size() - limitStart));
final Integer numFromHistory = limitCount - numFromZk;
final Integer historyStart = Math.max(0, limitStart - fromZk.size());
List returned = Lists.newArrayListWithCapacity(limitCount);
if (numFromZk > 0) {
returned.addAll(fromZk.subList(limitStart, limitStart + numFromZk));
}
if (numFromHistory > 0) {
returned.addAll(getFromHistory(id, historyStart, numFromHistory));
}
return returned;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy