/*
- * Sone - SoneRescuer.java - Copyright © 2011–2012 David Roden
+ * Sone - SoneRescuer.java - Copyright © 2011–2019 David Roden
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/**
* The Sone rescuer downloads older editions of a Sone and updates the currently
* stored Sone with it.
- *
- * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
public class SoneRescuer extends AbstractService {
*
* @return {@code true} if the Sone rescuer is currently fetching a Sone
*/
+ @SuppressWarnings("unused") // used in rescue.html
public boolean isFetching() {
return fetching;
}
*
* @return The edition that is currently being downloaded
*/
+ @SuppressWarnings("unused") // used in rescue.html
public long getCurrentEdition() {
return currentEdition;
}
*
* @return The next edition the Sone rescuer can download
*/
+ @SuppressWarnings("unused") // used in rescue.html
public long getNextEdition() {
return currentEdition - 1;
}
/**
- * Sets the edition to rescue.
- *
- * @param edition
- * The edition to rescue
- * @return This Sone rescuer
- */
- public SoneRescuer setEdition(long edition) {
- currentEdition = edition;
- return this;
- }
-
- /**
* Sets whether the last fetch was successful.
*
* @return {@code true} if the last fetch was successful, {@code false}
* otherwise
*/
+ @SuppressWarnings("unused") // used in rescue.html
public boolean isLastFetchSuccessful() {
return lastFetchSuccessful;
}
//
/**
- * Starts the next fetch. If you want to fetch a different edition than “the
- * next older one,” remember to call {@link #setEdition(long)} before
- * calling this method.
+ * Starts the next fetch.
*/
public void startNextFetch() {
fetching = true;
}
if (fetching) {
core.lockSone(sone);
- FreenetURI soneUri = sone.getRequestUri().setKeyType("SSK").setDocName("Sone-" + currentEdition).setMetaString(new String[] { "sone.xml" });
+ FreenetURI soneUri = sone.getRequestUri().setKeyType("SSK").setDocName("Sone-" + getNextEdition()).setMetaString(new String[] { "sone.xml" });
System.out.println("URI: " + soneUri);
Sone fetchedSone = soneDownloader.fetchSone(sone, soneUri, true);
System.out.println("Sone: " + fetchedSone);
lastFetchSuccessful = (fetchedSone != null);
if (lastFetchSuccessful) {
core.updateSone(fetchedSone, true);
+ currentEdition = getNextEdition();
}
fetching = false;
}