public static GetObjectHeadsEvent newInProgressEvent(ThreadWatcher threadWatcher, S3Object[] completedObjects, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_IN_PROGRESS, uniqueOperationId); event.setThreadWatcher(threadWatcher); event.setObjects(completedObjects); return event; }
@Override public void s3ServiceEventPerformed(GetObjectHeadsEvent event) { super.s3ServiceEventPerformed(event); if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { objectList.addAll(Arrays.asList(event.getCompletedObjects())); } }; };
public static GetObjectHeadsEvent newCancelledEvent(S3Object[] incompletedObjects, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_CANCELLED, uniqueOperationId); event.setObjects(incompletedObjects); return event; }
public static GetObjectHeadsEvent newStartedEvent(ThreadWatcher threadWatcher, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_STARTED, uniqueOperationId); event.setThreadWatcher(threadWatcher); return event; }
if (ServiceEvent.EVENT_STARTED == event.getEventCode()) { if (event.getThreadWatcher().getThreadCount() > 0) { startProgressDialog("Retrieved details for 0 of " + event.getThreadWatcher().getThreadCount() + " objects", "", 0, (int) event.getThreadWatcher().getThreadCount(), "Cancel Retrieval", event.getThreadWatcher().getCancelEventListener()); else if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { final ThreadWatcher progressStatus = event.getThreadWatcher(); updateProgressDialog(statusText, "", (int) progressStatus.getCompletedThreads()); else if (ServiceEvent.EVENT_COMPLETED == event.getEventCode()) { else if (ServiceEvent.EVENT_CANCELLED == event.getEventCode()) { stopProgressDialog(); else if (ServiceEvent.EVENT_ERROR == event.getEventCode()) { stopProgressDialog(); log.error(message, event.getErrorCause()); ErrorDialog.showDialog(ownerFrame, this, message, event.getErrorCause());
public static GetObjectHeadsEvent newIgnoredErrorsEvent(ThreadWatcher threadWatcher, Throwable[] ignoredErrors, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_IGNORED_ERRORS, uniqueOperationId); event.setIgnoredErrors(ignoredErrors); return event; }
public static GetObjectHeadsEvent newErrorEvent(Throwable t, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_ERROR, uniqueOperationId); event.setErrorCause(t); return event; }
@Override public void fireProgressEvent(ThreadWatcher threadWatcher, List completedResults) { S3Object[] completedObjects = (S3Object[]) completedResults .toArray(new S3Object[completedResults.size()]); for (int i = 0; i < completedObjects.length; i++) { pendingObjectKeysList.remove(completedObjects[i].getKey()); } fireServiceEvent(GetObjectHeadsEvent.newInProgressEvent(threadWatcher, completedObjects, uniqueOperationId)); } @Override
@Override public void fireIgnoredErrorsEvent(ThreadWatcher threadWatcher, Throwable[] ignoredErrors) { success[0] = false; fireServiceEvent(GetObjectHeadsEvent.newIgnoredErrorsEvent(threadWatcher, ignoredErrors, uniqueOperationId)); } }).run();
/** * @return * the S3Objects that were not retrieved before the operation was cancelled. * @throws IllegalStateException * cancelled objects are only available from EVENT_CANCELLED events. */ public S3Object[] getCancelledObjects() throws IllegalStateException { if (getEventCode() != EVENT_CANCELLED) { throw new IllegalStateException("Cancelled Objects are only available from EVENT_CANCELLED events"); } return objects; }
@Override public void fireErrorEvent(Throwable throwable) { success[0] = false; fireServiceEvent(GetObjectHeadsEvent.newErrorEvent(throwable, uniqueOperationId)); } @Override
public void run() { // Update object in table with the retrieved details. for (int i = 0; i < event.getCompletedObjects().length; i++) { S3Object objectWithDetails = event.getCompletedObjects()[i]; S3Object originalObject = objectTableModel.getObjectByKey( objectWithDetails.getKey()); originalObject.replaceAllMetadata(objectWithDetails.getMetadataMap()); originalObject.setMetadataComplete(true); log.debug("Updated table with " + originalObject.getKey() + ", content-type=" + originalObject.getContentType()); } } });
@Override public void fireCompletedEvent() { fireServiceEvent(GetObjectHeadsEvent.newCompletedEvent(uniqueOperationId)); } @Override
@Override public void fireCancelEvent() { List cancelledObjectsList = new ArrayList(); Iterator iter = pendingObjectKeysList.iterator(); while (iter.hasNext()) { String key = (String) iter.next(); cancelledObjectsList.add(new S3Object(key)); } S3Object[] cancelledObjects = (S3Object[]) cancelledObjectsList .toArray(new S3Object[cancelledObjectsList.size()]); success[0] = false; fireServiceEvent(GetObjectHeadsEvent.newCancelledEvent(cancelledObjects, uniqueOperationId)); } @Override
public static GetObjectHeadsEvent newCompletedEvent(Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_COMPLETED, uniqueOperationId); return event; }
if (ServiceEvent.EVENT_STARTED == event.getEventCode()) { if (event.getThreadWatcher().getThreadCount() > 0) { startProgressDialog("Retrieved details for 0 of " + event.getThreadWatcher().getThreadCount() + " objects", "", 0, (int) event.getThreadWatcher().getThreadCount(), "Cancel Retrieval", event.getThreadWatcher().getCancelEventListener()); else if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { final ThreadWatcher progressStatus = event.getThreadWatcher(); updateProgressDialog(statusText, "", (int) progressStatus.getCompletedThreads()); else if (ServiceEvent.EVENT_COMPLETED == event.getEventCode()) { else if (ServiceEvent.EVENT_CANCELLED == event.getEventCode()) { stopProgressDialog(); else if (ServiceEvent.EVENT_ERROR == event.getEventCode()) { stopProgressDialog(); log.error(message, event.getErrorCause()); ErrorDialog.showDialog(ownerFrame, this, message, event.getErrorCause());
public static GetObjectHeadsEvent newCancelledEvent(S3Object[] incompletedObjects, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_CANCELLED, uniqueOperationId); event.setObjects(incompletedObjects); return event; }
public static GetObjectHeadsEvent newStartedEvent(ThreadWatcher threadWatcher, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_STARTED, uniqueOperationId); event.setThreadWatcher(threadWatcher); return event; }
public static GetObjectHeadsEvent newIgnoredErrorsEvent(ThreadWatcher threadWatcher, Throwable[] ignoredErrors, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_IGNORED_ERRORS, uniqueOperationId); event.setIgnoredErrors(ignoredErrors); return event; }
public static GetObjectHeadsEvent newErrorEvent(Throwable t, Object uniqueOperationId) { GetObjectHeadsEvent event = new GetObjectHeadsEvent(EVENT_ERROR, uniqueOperationId); event.setErrorCause(t); return event; }