in rest-api/src/jetbrains/buildServer/server/rest/data/changeLog/ChangeLogBeanCollector.java [215:266]
private static void fillFilterFromLocator(@NotNull ChangeLogFilter filter, @NotNull Locator locator) {
filter.setShowGraph(true);
filter.setBuildsActiveDays(-1);
if (locator.isAnyPresent(INCLUDE_BUILDS)) {
filter.setShowBuilds(locator.getSingleDimensionValueAsStrictBoolean(INCLUDE_BUILDS, false));
}
if (locator.isAnyPresent(COMMENT)) {
ValueCondition condition = ParameterCondition.createValueCondition(locator.getSingleDimensionValue(COMMENT));
if (condition != null) {
filter.setCommentRequirement(convertConditionToRequirement(condition));
}
}
if (locator.isAnyPresent(PATH)) {
ValueCondition condition = ParameterCondition.createValueCondition(locator.getSingleDimensionValue(PATH));
if (condition != null) {
filter.setPathRequirement(convertConditionToRequirement(condition));
}
}
if (locator.isAnyPresent(REVISION)) {
ValueCondition condition = ParameterCondition.createValueCondition(locator.getSingleDimensionValue(REVISION));
if (condition != null) {
filter.setRevisionRequirement(convertConditionToRequirement(condition));
}
}
// Set from and to before setting page as otherwise page will be overwritten
if (locator.isAnyPresent(FROM_BUILD_NUMBER)) {
filter.setFrom(locator.getSingleDimensionValue(FROM_BUILD_NUMBER));
}
if (locator.isAnyPresent(TO_BUILD_NUMBER)) {
filter.setTo(locator.getSingleDimensionValue(TO_BUILD_NUMBER));
}
if (locator.isAnyPresent(PAGE)) {
Long page = locator.getSingleDimensionValueAsLong(PAGE);
filter.setPage(page == null ? 0 : page.intValue());
}
if (locator.isAnyPresent(PAGE_SIZE)) {
Long pageSize = locator.getSingleDimensionValueAsLong(PAGE_SIZE);
filter.setRecordsPerPage(pageSize == null ? 0 : pageSize.intValue());
}
if (locator.isAnyPresent(VCS_USERNAME)) {
filter.setUserId("vcs:" + locator.getSingleDimensionValue(VCS_USERNAME));
}
if (locator.isAnyPresent(USER)) {
Locator userLocator = Locator.locator(locator.lookupSingleDimensionValue(USER));
assert userLocator != null; // make IDEA happy
if (!userLocator.isAnyPresent("id") || userLocator.getUnusedDimensions().size() > 1) {
throw new BadRequestException("User lookup is supported by id only.");
}
// at this point user dimension looks like "id:XXX" and that is exactly how filter wants it, so just pass it directly
filter.setUserId(locator.getSingleDimensionValue(USER));
}
}