package org.ourgrid.peer.business.requester; import java.util.ArrayList; import java.util.List; import org.ourgrid.common.internal.IResponseTO; import org.ourgrid.common.statistics.control.PeerControl; import org.ourgrid.peer.PeerConstants; import org.ourgrid.peer.request.GetCompleteHistoryStatusRequestTO; import org.ourgrid.peer.response.HereIsCompleteHistoryStatusResponseTO; import org.ourgrid.peer.status.PeerCompleteHistoryStatus; import org.ourgrid.peer.status.PeerCompleteHistoryStatusBuilder; public class GetCompleteHistoryStatusRequester extends AbstractGetStatusRequester<GetCompleteHistoryStatusRequestTO> { public List<IResponseTO> execute(GetCompleteHistoryStatusRequestTO request) { List<IResponseTO> responses = new ArrayList<IResponseTO>(); if (request.canStatusBeUsed()) { long time = request.getTime(); if (time == 0L) { time = PeerControl.getInstance().getFirstDBUpdateDate(responses); } long until = Math.min(time + PeerConstants.AGGREGATOR_DATA_INTERVAL, System.currentTimeMillis()); HereIsCompleteHistoryStatusResponseTO to = new HereIsCompleteHistoryStatusResponseTO(); to.setClientAddress(request.getClientAddress()); to.setPeerAddress(request.getPeerAddress()); to.setUntilTime(until); to.setPeerCompleteHistoryStatus(getCompleteHistoryStatus(request, time, until, responses)); responses.add(to); } return responses; } private PeerCompleteHistoryStatus getCompleteHistoryStatus(GetCompleteHistoryStatusRequestTO request, long since, long until, List<IResponseTO> responses) { PeerCompleteHistoryStatusBuilder builder = new PeerCompleteHistoryStatusBuilder(); PeerCompleteHistoryStatus completeStatus = builder.buildCompleteHistoryStatus(responses, since, until, /*getServiceManager().getContainerDAO().getUpTime()*/request.getUpTime(), getDescription(request.getContextString(), request.getPropConfDir(), request.getPropLabel(), request.getPropJoinCommunity(), request.isJoinCommunityEnabled()), request.getPeerAddress()); return completeStatus; } }