package com.alchemyapi.api; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class AlchemyAPI_Params { public static final String OUTPUT_XML = "xml"; public static final String OUTPUT_RDF = "rdf"; private String url; private String html; private String text; private String outputMode = OUTPUT_XML; private String customParameters; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getHtml() { return html; } public void setHtml(String html) { this.html = html; } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getOutputMode() { return outputMode; } public void setOutputMode(String outputMode) { if( !outputMode.equals(AlchemyAPI_Params.OUTPUT_XML) && !outputMode.equals(OUTPUT_RDF) ) { throw new RuntimeException("Invalid setting " + outputMode + " for parameter outputMode"); } this.outputMode = outputMode; } public String getCustomParameters() { return customParameters; } public void setCustomParameters(String... customParameters) { StringBuilder data = new StringBuilder(); try{ for (int i = 0; i < customParameters.length; ++i) { data.append('&').append(customParameters[i]); if (++i < customParameters.length) data.append('=').append(URLEncoder.encode(customParameters[i], "UTF8")); } } catch(UnsupportedEncodingException e){ this.customParameters = ""; return; } this.customParameters = data.toString(); } public String getParameterString(){ String retString = ""; try{ if(url!=null) retString+="&url="+URLEncoder.encode(url,"UTF-8"); if(html!=null) retString+="&html="+URLEncoder.encode(html,"UTF-8"); if(text!=null) retString+="&text="+URLEncoder.encode(text,"UTF-8"); if(customParameters!=null) retString+=customParameters; if(outputMode!=null) retString+="&outputMode="+outputMode; } catch(UnsupportedEncodingException e ){ retString = ""; } return retString; } }