package org.wikipedia.miner.web.service; import javax.servlet.http.HttpServletRequest; import org.simpleframework.xml.Attribute; import org.wikipedia.miner.model.Wikipedia; import org.dmilne.xjsf.Service; import com.google.gson.annotations.Expose; @SuppressWarnings("serial") public class ProgressService extends WMService { public ProgressService() { super("meta","Monitors progress of service initialization", "<p>Wikipedia Miner can take a while to get started. This service allows polling to see how much progress has been made loading up a particular edition of Wikipedia</p>", false ); } public Message buildWrappedResponse(HttpServletRequest request) { Wikipedia wikipedia = getWikipedia(request) ; double progress = wikipedia.getEnvironment().getProgress() ; return new Message(request, progress) ; } @Override public int getUsageCost(HttpServletRequest request) { return 0 ; } public static class Message extends Service.Message { @Expose @Attribute private double progress ; private Message(HttpServletRequest request, double progress) { super(request) ; this.progress = progress ; } public double getProgress() { return progress; } } }