void (final Parent parent, final FileGroup from, final DuplicateLevel duplicateLevel) { final FileGroup to = createOrGet(parent, from); for (FileGroup.UpdatedFile updatedFile : from.getUpdatedFiles()) { addFileToGroup(to, updatedFile.getPath(), duplicateLevel, updatedFile.getVcsName()); } for (FileGroup fromChild : from.getChildren()) { copyGroup(new GroupParent(to), fromChild, duplicateLevel); } }