package hudson.plugins.synergy.impl; import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; import java.util.Set; /** * Performs finduse on specified object but ignoring the project version. */ public class FindUseWithoutVersionCommand extends FindUseCommand { public FindUseWithoutVersionCommand(String object, Set<String> projects, String delimiter) { super(object, projects, delimiter, false); } @Override public void parseResult(String result) { // Trim the version out of projects List<String> trimmedProjects = new ArrayList<String>(); for (String project : projects) { int versionDelimIndex = project.indexOf(delimiter); if (versionDelimIndex != -1) { trimmedProjects.add(project.substring(0, versionDelimIndex)); } else { trimmedProjects.add(project); } } // Find the object in various projects BufferedReader reader = new BufferedReader(new StringReader(result)); try { String line = reader.readLine(); while (line!=null) { int projectIndex = line.indexOf('@'); if (projectIndex!=-1) { String usingProject = line.substring(projectIndex+1); int versionDelimIndex = usingProject.indexOf(delimiter); if (versionDelimIndex != -1) { usingProject = usingProject.substring(0, versionDelimIndex); } if (trimmedProjects.contains(usingProject)) { path = line.substring(0, line.indexOf(delimiter)).trim(); break; } } line = reader.readLine(); } } catch (IOException e) { throw new RuntimeException(e); } } }