in clearcase-server/src/jetbrains/buildServer/buildTriggers/vcs/clearcase/CCParseUtil.java [168:211]
public static void processChangedDirectory(final HistoryElement element,
final ClearCaseConnection connection,
ChangedStructureProcessor processor) throws IOException, VcsException {
if (element.getObjectVersionInt() > 0) {
final String before = element.getObjectName() + CC_VERSION_SEPARATOR + element.getPreviousVersion(connection, true);
final String after = element.getObjectName() + CC_VERSION_SEPARATOR + element.getObjectVersion();
final List<SimpleDirectoryChildElement> elementsBefore = connection.getChildren(before);
final List<SimpleDirectoryChildElement> elementsAfter = connection.getChildren(after);
final Map<String, SimpleDirectoryChildElement> filesBefore = collectMap(elementsBefore);
final Map<String, SimpleDirectoryChildElement> filesAfter = collectMap(elementsAfter);
for (final String fileName : filesBefore.keySet()) {
if (!filesAfter.containsKey(fileName)) {
final SimpleDirectoryChildElement sourceElement = filesBefore.get(fileName);
switch (sourceElement.getType()) {
case DIRECTORY:
processor.directoryDeleted(sourceElement);
break;
case FILE:
processor.fileDeleted(sourceElement);
break;
}
}
}
for (final String fileName : filesAfter.keySet()) {
if (!filesBefore.containsKey(fileName)) {
final SimpleDirectoryChildElement targetElement = filesAfter.get(fileName);
switch (targetElement.getType()) {
case DIRECTORY:
processor.directoryAdded(targetElement);
break;
case FILE:
processor.fileAdded(targetElement);
break;
}
}
}
}
}