package org.ourgrid.peer.business.util; import java.util.List; import org.ourgrid.common.interfaces.to.RequestSpecification; import org.ourgrid.common.internal.IResponseTO; import org.ourgrid.common.internal.response.LoggerResponseTO; import org.ourgrid.peer.business.controller.messages.RequestMessages; import org.ourgrid.peer.business.dao.PeerDAOFactory; import org.ourgrid.peer.business.dao.RequestDAO; import org.ourgrid.peer.response.CancelRequestFutureResponseTO; import org.ourgrid.peer.response.ScheduleRequestResponseTO; import org.ourgrid.peer.to.Request; public class RequestUtils { public static boolean isRequestUnknown( String userPubKey, Request request ) { return request == null || !request.getConsumer().getPublicKey().equals(userPubKey); } public static void scheduleRequest(List<IResponseTO> responses, RequestSpecification requestSpec) { RequestDAO requestDAO = PeerDAOFactory.getInstance().getRequestDAO(); if(! requestDAO.containsScheduledRequest(requestSpec.getRequestId())) { int delay = PeerDAOFactory.getInstance().getPeerPropertiesDAO().getRequestRepeatDelayInSeconds(); long requestID = requestSpec.getRequestId(); ScheduleRequestResponseTO scheduleRequest = new ScheduleRequestResponseTO(); scheduleRequest.setDelay(delay); scheduleRequest.setRequestId(requestID); responses.add(scheduleRequest); LoggerResponseTO loggerResponse = new LoggerResponseTO( RequestMessages.getRequestRepetitionMessage(delay, requestID), LoggerResponseTO.DEBUG); responses.add(loggerResponse); requestDAO.addScheduledRequest(requestID); } } public static void cancelScheduledRequest(List<IResponseTO> responses, Long requestId) { if (PeerDAOFactory.getInstance().getRequestDAO().removeScheduledRequest(requestId)) { CancelRequestFutureResponseTO to = new CancelRequestFutureResponseTO(); to.setRequestId(requestId); responses.add(to); } } }