package org.wikipedia.miner.web.service; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import org.wikipedia.miner.model.Wikipedia; import org.dmilne.xjsf.Service; import org.dmilne.xjsf.param.StringArrayParameter; @SuppressWarnings("serial") public abstract class WMService extends Service { public WMService(String groupName, String shortDescription, String detailsMarkup, boolean supportsDirectResponse) { super(groupName, shortDescription, detailsMarkup, supportsDirectResponse); } private WMHub wmHub ; protected StringArrayParameter prmWikipedia ; @Override public void init(ServletConfig config) throws ServletException { super.init(config); wmHub = WMHub.getInstance(config.getServletContext()) ; String[] valsWikipedia = getWMHub().getWikipediaNames() ; String[] dscsWikipedia = new String[valsWikipedia.length] ; for (int i=0 ; i<valsWikipedia.length ; i++) { dscsWikipedia[i] = getWMHub().getWikipediaDescription(valsWikipedia[i]) ; if (dscsWikipedia[i] == null) dscsWikipedia[i] = "No description available" ; } prmWikipedia = new StringArrayParameter("wikipedia", "Which edition of Wikipedia to retrieve information from", getWMHub().getDefaultWikipediaName(), valsWikipedia, dscsWikipedia) ; addBaseParameter(prmWikipedia) ; } public WMHub getWMHub() { return wmHub ; } public Wikipedia getWikipedia(HttpServletRequest request) { String wikiName = prmWikipedia.getValue(request) ; Wikipedia wiki = wmHub.getWikipedia(wikiName) ; return wiki ; } public String getWikipediaName(HttpServletRequest request) { return prmWikipedia.getValue(request) ; } }