private void updateRoot(@NotNull P4VcsRootSettings settings,
@NotNull VcsDirectoryMapping directoryMapping) {
VirtualFile root = DirectoryMappingUtil.getDirectory(getProject(), directoryMapping);
List<ConfigPart> parts = settings.getConfigParts();
MultipleConfigPart parentPart = new MultipleConfigPart("Project Registry", parts);
if (LOG.isDebugEnabled()) {
LOG.debug("Add mapping for " + root + " -> " + parentPart + " (directory mapping dir [" + directoryMapping.getDirectory() + "])");
}
try {
if (ServerConfig.isValidServerConfig(parentPart)) {
ServerConfig serverConfig = ServerConfig.createFrom(parentPart);
if (ClientConfig.isValidClientConfig(serverConfig, parentPart)) {
ClientConfig clientConfig = ClientConfig.createFrom(serverConfig, parentPart);
addClientConfig(clientConfig, root);
return;
}
if (LOG.isDebugEnabled()) {
LOG.debug(root + ": skipping invalid config " + parentPart);
}
} else if (LOG.isDebugEnabled()) {
LOG.debug(root + ": skipping invalid config " + parentPart);
}
} catch (IllegalArgumentException e) {
LOG.info("Problem with config under " + root + ": " + parentPart, e);
}
removeClientConfigAt(root);
}