@Override public int hashCode() { return Objects.hash(getPaginationData(), getContainerResource()); } }
@Override public int hashCode() { int h = 1; h *= 1000003; h ^= this.state.hashCode(); h *= 1000003; h ^= this.exportService.hashCode(); h *= 1000003; h ^= this.importService.hashCode(); h *= 1000003; h ^= this.transferDataType.hashCode(); h *= 1000003; h ^= (exportInformation == null) ? 0 : this.exportInformation.hashCode(); h *= 1000003; h ^= this.createdTimestamp.hashCode(); h *= 1000003; h ^= this.lastUpdateTimestamp.hashCode(); h *= 1000003; h ^= this.jobAuthorization.hashCode(); return h; }
@Override public ExportResult<ContactsModelWrapper> export( UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation) { if (exportInformation.isPresent()) { StringPaginationToken stringPaginationToken = (StringPaginationToken) exportInformation.get().getPaginationData(); return exportContacts(authData, Optional.ofNullable(stringPaginationToken)); } else { return exportContacts(authData, Optional.empty()); } }
@Test(expected = IllegalStateException.class) public void testIllegalExport() { facebookPhotosExporter.export( uuid, new TokensAndUrlAuthData("accessToken", null, null), Optional.of(new ExportInformation(new StringPaginationToken(PHOTO_TOKEN_PREFIX), null))); } }
exportAuthData, importAuthData, Optional.of(new ExportInformation( continuationData.getPaginationData(), exportInformation.isPresent() ? exportInformation.get().getContainerResource() : null))); for (ContainerResource resource : continuationData.getContainerResources()) { copyHelper(jobId, exportAuthData, importAuthData, Optional.of(new ExportInformation(null, resource)));
@Override public ExportResult<TaskContainerResource> export( UUID jobId, AuthData authData, Optional<ExportInformation> exportInformation) { // Create new service for the authorized user RememberTheMilkService service = getOrCreateService(authData); IdOnlyContainerResource resource = exportInformation.isPresent() ? (IdOnlyContainerResource) exportInformation.get().getContainerResource() : null; if (resource != null) { return exportTask(service, resource); } else { return exportTaskList(service); } }
@Override public ExportResult<PhotosContainerResource> export(UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation) { if (exportInformation.isPresent()) { return exportPhotos(authData, Optional.ofNullable(exportInformation.get().getPaginationData())); } else { return exportPhotos(authData, Optional.empty()); } }
ExportInformation exportInformation = new ExportInformation(null, containerResource); eventListResponse.setNextPageToken(NEXT_TOKEN);
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ExportInformation that = (ExportInformation) o; return Objects.equals(getPaginationData(), that.getPaginationData()) && Objects.equals(getContainerResource(), that.getContainerResource()); }
@Override public ExportResult<ContactsModelWrapper> export( UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation) { GraphPagination graphPagination = exportInformation.isPresent() ? (GraphPagination) exportInformation.get() .getPaginationData() : null; if (graphPagination != null && graphPagination.getNextLink() != null) { return doExport(authData, graphPagination.getNextLink()); } else { return doExport(authData, contactsUrl); } }
@Test public void exportSubsequentPage() throws IOException { setUpSinglePersonResponse(); // Looking at a subsequent page, with no pages after it PaginationData paginationData = new StringPaginationToken(NEXT_PAGE_TOKEN); ExportInformation exportInformation = new ExportInformation(paginationData, null); listConnectionsResponse.setNextPageToken(null); when(listConnectionsRequest.setPageToken(NEXT_PAGE_TOKEN)).thenReturn(listConnectionsRequest); // Run test ExportResult<ContactsModelWrapper> result = contactsService.export(UUID.randomUUID(), null, Optional.of(exportInformation)); // Verify correct calls were made - i.e., token was added before execution InOrder inOrder = Mockito.inOrder(listConnectionsRequest); inOrder.verify(listConnectionsRequest).setPageToken(NEXT_PAGE_TOKEN); inOrder.verify(listConnectionsRequest).execute(); // Check continuation data ContinuationData continuationData = (ContinuationData) result.getContinuationData(); assertThat(continuationData.getContainerResources()).isEmpty(); assertThat(continuationData.getPaginationData()).isNull(); }
@Override public ExportResult<PhotosContainerResource> export( UUID jobId, TokenSecretAuthData authData, Optional<ExportInformation> exportInformation) throws IOException { StringPaginationToken paginationToken = exportInformation.isPresent() ? (StringPaginationToken) exportInformation.get().getPaginationData() : null; IdOnlyContainerResource resource = exportInformation.isPresent() ? (IdOnlyContainerResource) exportInformation.get().getContainerResource() : null; SmugMugInterface smugMugInterface; try { smugMugInterface = getOrCreateSmugMugInterface(authData); } catch (IOException e) { monitor.severe(() -> "Unable to create Smugmug service for user", e); throw e; } if (resource != null) { return exportPhotos(resource, paginationToken, smugMugInterface, jobId); } else { return exportAlbums(paginationToken, smugMugInterface); } }
@Override public ExportResult<SocialActivityContainerResource> export( UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation) throws IOException { Plus plus = getOrCreatePeopleService(authData); Plus.Activities.List listActivities = plus.activities().list("me", "public"); if (exportInformation.isPresent()) { StringPaginationToken pageToken = (StringPaginationToken) exportInformation.get().getPaginationData(); listActivities.setPageToken(pageToken.getToken()); } ActivityFeed activityFeed = listActivities.execute(); List<Activity> activities = activityFeed.getItems(); ContinuationData continuationData = null; SocialActivityContainerResource results = null; if (activities != null && !activities.isEmpty()) { List<com.ibm.common.activitystreams.Activity> parsedActivities = new ArrayList<>(); continuationData = new ContinuationData(new StringPaginationToken(activityFeed.getNextPageToken())); for (Activity activity : activities) { parsedActivities.add(postToActivityStream(activity)); } results = new SocialActivityContainerResource(jobId.toString(), parsedActivities, null); } return new ExportResult<>( ResultType.CONTINUE, results, continuationData); }
@Test public void exportCalendarSubsequentSet() throws IOException { setUpSingleCalendarResponse(); // Looking at subsequent page, with no page after it PaginationData paginationData = new StringPaginationToken(CALENDAR_TOKEN_PREFIX + NEXT_TOKEN); ExportInformation exportInformation = new ExportInformation(paginationData, null); calendarListResponse.setNextPageToken(null); // Run test ExportResult<CalendarContainerResource> result = googleCalendarExporter.export(UUID.randomUUID(), null, Optional.of(exportInformation)); // Check results // Verify correct calls were made InOrder inOrder = Mockito.inOrder(calendarListRequest); inOrder.verify(calendarListRequest).setPageToken(NEXT_TOKEN); inOrder.verify(calendarListRequest).execute(); // Check pagination token ContinuationData continuationData = (ContinuationData) result.getContinuationData(); StringPaginationToken paginationToken = (StringPaginationToken) continuationData.getPaginationData(); assertThat(paginationToken).isNull(); }
@Override public ExportResult<CalendarContainerResource> export( UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation) { if (!exportInformation.isPresent()) { return exportCalendars(authData, Optional.empty()); } else { StringPaginationToken paginationToken = (StringPaginationToken) exportInformation.get().getPaginationData(); if (paginationToken != null && paginationToken.getToken().startsWith(CALENDAR_TOKEN_PREFIX)) { // Next thing to export is more calendars return exportCalendars(authData, Optional.of(paginationToken)); } else { // Next thing to export is events IdOnlyContainerResource idOnlyContainerResource = (IdOnlyContainerResource) exportInformation.get().getContainerResource(); Optional<PaginationData> pageData = Optional.ofNullable(paginationToken); return getCalendarEvents(authData, idOnlyContainerResource.getId(), pageData); } } }
if (exportInformation.isPresent()) { StringPaginationToken pageData = (StringPaginationToken) exportInformation.get().getPaginationData(); if (!Strings.isNullOrEmpty(pageData.getToken())) { maxId = pageData.getToken();
@Test public void exportEventSubsequentSet() throws IOException { setUpSingleEventResponse(); // Looking at subsequent page, with no pages after it ContainerResource containerResource = new IdOnlyContainerResource(CALENDAR_ID); PaginationData paginationData = new StringPaginationToken(EVENT_TOKEN_PREFIX + NEXT_TOKEN); ExportInformation exportInformation = new ExportInformation(paginationData, containerResource); eventListResponse.setNextPageToken(null); // Run test ExportResult<CalendarContainerResource> result = googleCalendarExporter.export(UUID.randomUUID(), null, Optional.of(exportInformation)); // Check results // Verify correct methods were called in order InOrder inOrder = Mockito.inOrder(eventListRequest); inOrder.verify(eventListRequest).setPageToken(NEXT_TOKEN); inOrder.verify(eventListRequest).execute(); // Check pagination token ContinuationData continuationData = (ContinuationData) result.getContinuationData(); StringPaginationToken paginationToken = (StringPaginationToken) continuationData.getPaginationData(); assertThat(paginationToken).isNull(); }
@Override public ExportResult<TaskContainerResource> export( UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation) { // Create a new tasks service for the authorized user Tasks tasksService = getOrCreateTasksService(authData); IdOnlyContainerResource resource = exportInformation.isPresent() ? (IdOnlyContainerResource) exportInformation.get().getContainerResource() : null; PaginationData paginationData = exportInformation.isPresent() ? exportInformation.get().getPaginationData() : null; try { if (resource != null) { return getTasks(tasksService, resource, Optional.ofNullable(paginationData)); } else { return getTasksList(tasksService, Optional.ofNullable(paginationData)); } } catch (Exception e) { monitor.severe(() -> "Error occurred trying to retrieve task", e); return new ExportResult<>(e); } }
if (exportInformation.isPresent() && exportInformation.get().getPaginationData() != null) { request.setPageToken( ((StringPaginationToken) exportInformation.get().getPaginationData()).getToken());
@Test public void exportMessagesSubsequentSet() throws IOException { setUpSingleMessageResponse(); // Looking at subsequent page, with no page after it PaginationData paginationData = new StringPaginationToken(NEXT_TOKEN); ExportInformation exportInformation = new ExportInformation(paginationData, null); messageListResponse.setNextPageToken(null); // Run test ExportResult<MailContainerResource> result = googleMailExporter.export(JOB_ID, null, Optional.of(exportInformation)); // Check results // Verify correct calls were made (i.e., token was set before execution) InOrder inOrder = Mockito.inOrder(messageListRequest); inOrder.verify(messageListRequest).setPageToken(NEXT_TOKEN); inOrder.verify(messageListRequest).execute(); // Check pagination token (should be null) ContinuationData continuationData = (ContinuationData) result.getContinuationData(); StringPaginationToken paginationToken = (StringPaginationToken) continuationData.getPaginationData(); assertThat(paginationToken).isNull(); }