public UploadListener(DataStore host, Timer timerInput, UploadDao uploadDao, UploadVO uploadObj, UploadMonitorImpl uploadMonitor, UploadCommand cmd, Long accountId,
String typeName, Type type, long eventId, long asyncJobId, AsyncJobManager asyncMgr) {
sserver = host;
this.uploadDao = uploadDao;
this.uploadMonitor = uploadMonitor;
this.cmd = cmd;
uploadId = uploadObj.getId();
this.accountId = accountId;
this.typeName = typeName;
this.type = type;
initStateMachine();
currState = getState(Status.NOT_UPLOADED.toString());
timer = timerInput;
timeoutTask = new TimeoutTask(this);
timer.schedule(timeoutTask, 3 * STATUS_POLL_INTERVAL);
this.eventId = eventId;
this.asyncJobId = asyncJobId;
this.asyncMgr = asyncMgr;
String extractId = null;
if (type == Type.VOLUME) {
extractId = ApiDBUtils.findVolumeById(uploadObj.getTypeId()).getUuid();
} else {
extractId = ApiDBUtils.findTemplateById(uploadObj.getTypeId()).getUuid();
}
resultObj =
new ExtractResponse(extractId, typeName, ApiDBUtils.findAccountById(accountId).getUuid(), Status.NOT_UPLOADED.toString(), ApiDBUtils.findUploadById(uploadId)
.getUuid());
resultObj.setResponseName(responseNameMap.get(type.toString()));
updateDatabase(Status.NOT_UPLOADED, cmd.getUrl(), "");
}