in org.apache.ivyde.eclipse/src/java/org/apache/ivyde/common/ivyfile/IvyFileUpdater.java [99:141]
private UpdateInfo findUpdateInfoToAddDependency(String content, ModuleRevisionId depId,
String confMapping) {
UpdateInfo info = new UpdateInfo();
info.insert = getDependencyToAdd(depId, confMapping);
Pattern dependenciesClose = Pattern.compile("<\\s*/dependencies");
Matcher depsCloseMatcher = dependenciesClose.matcher(content);
if (depsCloseMatcher.find()) {
info.insertFromIndex = findLastDependencyEnd(content, depsCloseMatcher.start());
if (info.insertFromIndex == -1) {
info.insertFromIndex = getLastMatchIndex(Pattern.compile("<\\s*dependencies.*?>"),
content, depsCloseMatcher.start());
if (info.insertFromIndex == -1) {
info.insertFromIndex = depsCloseMatcher.start();
} else {
info.prefix = NL;
}
} else {
info.prefix = NL;
}
info.insertToIndex = info.insertFromIndex;
return info;
}
Pattern depsOpenClose = Pattern.compile("<\\s*dependencies\\s*/>");
Matcher depsOpenCloseMatcher = depsOpenClose.matcher(content);
if (depsOpenCloseMatcher.find()) {
info.insertFromIndex = depsOpenCloseMatcher.start();
info.insertToIndex = depsOpenCloseMatcher.end();
info.prefix = "<dependencies>" + NL;
info.suffix = NL + " </dependencies>";
return info;
}
Pattern moduleClose = Pattern.compile("</\\s*ivy-module\\s*>");
Matcher moduleCloseMatcher = moduleClose.matcher(content);
if (moduleCloseMatcher.find()) {
info.insertFromIndex = moduleCloseMatcher.start();
info.insertToIndex = info.insertFromIndex;
info.prefix = " <dependencies>" + NL;
info.suffix = NL + " </dependencies>" + NL;
return info;
}
return info;
}