private IssueIteratorForSingleChunk nextChunk() { List<String> nextInput = iteratorOverChunks.next(); return new IssueIteratorForSingleChunk(dbClient, null, nextInput); }
IssueIteratorForSingleChunk(DbClient dbClient, @Nullable String projectUuid, @Nullable Collection<String> issueKeys) { checkArgument(issueKeys == null || issueKeys.size() <= DatabaseUtils.PARTITION_SIZE_FOR_ORACLE, "Cannot search for more than " + DatabaseUtils.PARTITION_SIZE_FOR_ORACLE + " issue keys at once. Please provide the keys in smaller chunks."); this.projectUuid = projectUuid; this.issueKeys = issueKeys; this.session = dbClient.openSession(false); try { String sql = createSql(); stmt = dbClient.getMyBatis().newScrollingSelectStatement(session, sql); iterator = createIterator(); } catch (Exception e) { session.close(); throw new IllegalStateException("Fail to prepare SQL request to select all issues", e); } }
@Override public boolean hasNext() { if (currentChunk != null && currentChunk.hasNext()) { return true; } return iteratorOverChunks.hasNext(); }
private IssueIteratorInternal createIterator() { try { setParameters(stmt); return new IssueIteratorInternal(stmt); } catch (SQLException e) { DatabaseUtils.closeQuietly(stmt); throw new IllegalStateException("Fail to prepare SQL request to select all issues", e); } }
@Override public boolean hasNext() { if (currentChunk != null && currentChunk.hasNext()) { return true; } return iteratorOverChunks.hasNext(); }
private IssueIteratorInternal createIterator() { try { setParameters(stmt); return new IssueIteratorInternal(stmt); } catch (SQLException e) { DatabaseUtils.closeQuietly(stmt); throw new IllegalStateException("Fail to prepare SQL request to select all issues", e); } }
IssueIteratorForSingleChunk(DbClient dbClient, @Nullable String projectUuid, @Nullable Collection<String> issueKeys) { checkArgument(issueKeys == null || issueKeys.size() <= DatabaseUtils.PARTITION_SIZE_FOR_ORACLE, "Cannot search for more than " + DatabaseUtils.PARTITION_SIZE_FOR_ORACLE + " issue keys at once. Please provide the keys in smaller chunks."); this.projectUuid = projectUuid; this.issueKeys = issueKeys; this.session = dbClient.openSession(false); try { String sql = createSql(); stmt = dbClient.getMyBatis().newScrollingSelectStatement(session, sql); iterator = createIterator(); } catch (Exception e) { session.close(); throw new IllegalStateException("Fail to prepare SQL request to select all issues", e); } }
public IssueIterator createForProject(@Nullable String projectUuid) { return new IssueIteratorForSingleChunk(dbClient, projectUuid, null); }
public IssueIterator createForProject(@Nullable String projectUuid) { return new IssueIteratorForSingleChunk(dbClient, projectUuid, null); }
private IssueIteratorForSingleChunk nextChunk() { List<String> nextInput = iteratorOverChunks.next(); return new IssueIteratorForSingleChunk(dbClient, null, nextInput); }