public ConstantsCache<Resolution> get() { final List<ResolutionDTO> resolutionList = dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery().from(RESOLUTION) .orderBy(RESOLUTION.sequence.asc()).list(RESOLUTION)); final ImmutableMap.Builder<String, Resolution> builder = ImmutableMap.builder(); resolutionList.stream().map(issueConstantFactory::createResolution).forEach(r -> builder.put(r.getId(), r)); return new ConstantsCache<>(builder.build()); } }
public ConstantsCache<Priority> get() { final List<PriorityDTO> priorityList = dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery().from(PRIORITY) .orderBy(PRIORITY.sequence.asc()).list(PRIORITY)); final ImmutableMap.Builder<String, Priority> builder = ImmutableMap.builder(); priorityList.stream().map(issueConstantFactory::createPriority).forEach(p -> builder.put(p.getId(), p)); return new ConstantsCache<>(builder.build()); } }
public ConstantsCache<Status> get() { final List<StatusDTO> statusList = dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery().from(STATUS) .orderBy(STATUS.sequence.asc()).list(STATUS)); final ImmutableMap.Builder<String, Status> builder = ImmutableMap.builder(); statusList.stream().map(issueConstantFactory::createStatus).forEach(r -> builder.put(r.getId(), r)); return new ConstantsCache<>(builder.build()); } }
public IssueTypeCache get() { final List<IssueTypeDTO> issueTypeList = dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery().from(ISSUE_TYPE) .orderBy(ISSUE_TYPE.style.asc()).orderBy(ISSUE_TYPE.sequence.asc()).list(ISSUE_TYPE)); final ImmutableMap.Builder<String, IssueType> builder = ImmutableMap.builder(); final ImmutableList.Builder<IssueType> regularIssueTypesBuilder = ImmutableList.builder(); final ImmutableList.Builder<IssueType> subTaskIssueTypesBuilder = ImmutableList.builder(); issueTypeList.stream().map(issueConstantFactory::createIssueType).forEach(new Consumer<IssueType>() { @Override public void accept(final IssueType issueType) { if (issueType.isSubTask()) { subTaskIssueTypesBuilder.add(issueType); } else { regularIssueTypesBuilder.add(issueType); } builder.put(issueType.getId(), issueType); } }); return new IssueTypeCache(builder.build(), regularIssueTypesBuilder.build(), subTaskIssueTypesBuilder.build()); } }
@Override public List<Worklog> getWorklogsUpdateSince(final Long sinceInMiliseconds, final int maxResults) { return dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery() .from(WORKLOG) .leftJoin(QProjectRole.PROJECT_ROLE) .on(QProjectRole.PROJECT_ROLE.id.eq(WORKLOG.rolelevel)) .where(WORKLOG.updated.goe(new Timestamp(sinceInMiliseconds)) .and(WORKLOG.updated.loe(new Timestamp(minuteAgo())))) .orderBy(WORKLOG.updated.asc()) .limit(maxResults) .list(WORKLOG_ALIASED_PROJECT_ROLE_TUPLE) ).stream() .map(queryDSLWorklogFactory::createWorklogWithAliasedIdColumn) .collect(Collectors.toList()); }
@Override public List<Worklog> getByIssue(final Issue issue) { checkArgument(issue != null, "Cannot resolve worklogs for null issue."); final BooleanExpression query = issue.getId() != null ? WORKLOG.issue.eq(issue.getId()) : WORKLOG.issue.isNull(); return dbConnectionManager.executeQuery(dc -> dc.newSqlQuery() .from(WORKLOG) .leftJoin(QProjectRole.PROJECT_ROLE) .on(QProjectRole.PROJECT_ROLE.id.eq(WORKLOG.rolelevel)) .where(query) .orderBy(WORKLOG.created.asc()) .list(WORKLOG_PROJECT_ROLE_TUPLE) ).stream() .map(t -> queryDSLWorklogFactory.createWorklog(issue, t)) .collect(Collectors.toList()); }
private List<QueuedEmailDTO> selectQueuedEmailForUpdate(final int limit) { return querydslSupport.execute((connection, configuration) -> { QEmailQueue qEmailQueue = QEmailQueue.emailQueue; return new SQLQuery(connection, configuration) .from(qEmailQueue) .orderBy(qEmailQueue.timestamp_.asc(), qEmailQueue.queuedEmailId.asc()) .limit(limit) .forUpdate() .list(Projections.fields(QueuedEmailDTO.class, qEmailQueue.queuedEmailId, qEmailQueue.storedEmailId)); }); }
private Long prepareFallBackIconForIssueType(final DbConnection callback) { final QAvatar a = QAvatar.AVATAR; final Optional<Long> undefinedIconId = ofNullable(callback.newSqlQuery() .from(a) .where((a.avatarType.eq(ISSUE_TYPE_AVATAR)) .and(a.systemAvatar.eq(TRUE)) .and(a.fileName.eq("undefined.png"))) .orderBy(a.id.asc()) .singleResult(a.id)); return undefinedIconId.orElseGet( () -> callback.newSqlQuery() .from(a) .where(a.avatarType.eq(ISSUE_TYPE_AVATAR) .and(a.systemAvatar.eq(TRUE))) .singleResult(a.id)); }
private List<Tuple> getRemovedWorklogs(final Long sinceInMilliseconds, final int maxResults, final QChangeItem ci, final QChangeGroup cg, final QWorklog w, final NumberExpression<Long> oldValueExpression) { return dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery() .from(ci) .leftJoin(cg) .on(ci.group.eq(cg.id)) .where(ci.field.eq(IssueFieldConstants.WORKLOG_ID) .and(cg.created.goe(new Timestamp(sinceInMilliseconds)) .and(cg.created.loe(new Timestamp(minuteAgo())))) .and(oldValueExpression.notIn(new SQLSubQuery() .from(w) .list(w.id)) ) ) .groupBy(oldValueExpression) .orderBy(cg.created.max().asc()) .limit(maxResults) .list(oldValueExpression, cg.created.max())); }