in rest-api/src/jetbrains/buildServer/server/rest/model/change/VcsRootInstance.java [210:253]
public static String getFieldValue(final jetbrains.buildServer.vcs.VcsRootInstance rootInstance,
final String field,
final DataProvider dataProvider) {
if ("id".equals(field)) {
return String.valueOf(rootInstance.getId());
} else if ("name".equals(field)) {
return rootInstance.getName();
} else if ("vcsName".equals(field)) {
return rootInstance.getVcsName();
} else if ("projectInternalId".equals(field)) { //Not documented, do we actually need this?
return rootInstance.getParent().getScope().getOwnerProjectId();
} else if ("projectId".equals(field)) { //Not documented
final SProject projectOfTheRoot = VcsRoot.getProjectByRoot(rootInstance.getParent());
return projectOfTheRoot != null ? projectOfTheRoot.getExternalId() : "";
} else if ("repositoryMappings".equals(field)) { //Not documented
try {
return String.valueOf(VcsRoot.getRepositoryMappings(rootInstance, dataProvider.getVcsManager())); //todo: fix presentation. Curently this returns "[MappingElement{..."
} catch (VcsException e) {
throw new InvalidStateException("Error retrieving mapping", e);
}
} else if (LAST_VERSION.equals(field)) {
final RepositoryVersion currentRevision = rootInstance.getLastUsedRevision();
return currentRevision != null ? currentRevision.getDisplayVersion() : ""; //if we return null, status code for this case is 204/not changed and cached value can be used
} else if (LAST_VERSION_INTERNAL.equals(field)) {
final RepositoryVersion currentRevision = rootInstance.getLastUsedRevision();
return currentRevision != null ? currentRevision.getVersion() : "";
} else if ("currentVersion".equals(field)) {
try {
return rootInstance.getCurrentRevision().getDisplayVersion();
} catch (VcsException e) {
throw new InvalidStateException("Error while getting current revision: ", e);
}
} else if ("currentVersionInternal".equals(field)) {
try {
return rootInstance.getCurrentRevision().getVersion();
} catch (VcsException e) {
throw new InvalidStateException("Error while getting current revision: ", e);
}
} else if (COMMIT_HOOK_MODE.equals(field)) {
return String.valueOf(!((VcsRootInstanceEx)rootInstance).isPollingMode());
}
throw new NotFoundException(
"Field '" + field + "' is not supported. Supported are: id, name, vcsName, " + LAST_VERSION + ", " + LAST_VERSION_INTERNAL + ", currentVersion, currentVersionInternal.");
}