- /* parse known Sones. */
- SimpleXML knownSonesXml = soneXml.getNode("known-sones");
- Set<Sone> knownSones = new HashSet<Sone>();
- if (knownSonesXml == null) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded Sone %s has no known Sones!", new Object[] { sone });
- } else {
- for (SimpleXML knownSoneXml : knownSonesXml.getNodes("known-sone")) {
- String knownSoneId = knownSoneXml.getValue("sone-id", null);
- String knownSoneKey = knownSoneXml.getValue("sone-key", null);
- String knownSoneName = knownSoneXml.getValue("sone-name", null);
- if ((knownSoneId == null) || (knownSoneKey == null) || (knownSoneName == null)) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded known Sone for Sone %s with missing data! ID: %s, Key: %s, Name: %s", new Object[] { sone, knownSoneId, knownSoneKey, knownSoneName });
- return null;
- }
- try {
- knownSones.add(core.getSone(knownSoneId).setRequestUri(new FreenetURI(knownSoneKey)).setName(knownSoneName));
- } catch (MalformedURLException mue1) {
- /* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, "Downloaded known Sone for Sone %s with invalid key: %s", new Object[] { sone, knownSoneKey });
- return null;
- }
- }
- }
-