in nuget-server/src/jetbrains/buildServer/nuget/server/exec/impl/ListPackagesArguments.java [79:131]
public Map<SourcePackageReference, ListPackagesResult> decodeParameters(@NotNull final File file) throws IOException {
final Element root;
try {
root = FileUtil.parseDocument(file);
} catch (final JDOMException e) {
throw new IOException("Failed to parse " + file + ". " + e.getMessage(), e);
}
if (!root.getName().equals(NUGET_PACKAGES)) throw new IOException("Invalid xml");
final Element packages = root.getChild(PACKAGES);
if (packages == null) throw new IOException("Invalid xml");
final Map<SourcePackageReference, ListPackagesResult> result = new HashMap<SourcePackageReference, ListPackagesResult>();
for (Object pElement : packages.getChildren(PACKAGE)) {
final Element pkg = (Element) pElement;
final String id = trim(pkg.getAttributeValue("id"));
final String spec = trim(pkg.getAttributeValue(VERSIONS));
final String source = trim(pkg.getAttributeValue(SOURCE_ATTRIBUTE));
if (id == null) continue;
final SourcePackageReference ref = new SourcePackageReference(source, parseCredentials(pkg), id, spec, parseIncludePrerelease(pkg));
final Collection<SourcePackageInfo> versions = new ArrayList<SourcePackageInfo>();
final String packageErrorMessage = pkg.getChildText("error-message");
final Element pkgChild = pkg.getChild("package-entries");
if (pkgChild != null) {
for (Object pEntry : pkgChild.getChildren("package-entry")) {
final Element entry = (Element) pEntry;
final String version = entry.getAttributeValue("version");
if (version == null || jetbrains.buildServer.util.StringUtil.isEmptyOrSpaces(version)) continue;
versions.add(ref.toInfo(version));
}
}
result.put(ref, new ListPackagesResult() {
@Nullable
public String getErrorMessage() {
return packageErrorMessage;
}
@NotNull
public Collection<SourcePackageInfo> getCollectedInfos() {
return Collections.unmodifiableCollection(versions);
}
});
}
return result;
}