/**
* @author Alejandro Alcalde <algui91@gmail.com>
* @author Vicente
* @JSONRestRequest.java
* Nov 10, 2012
*/
package com.elbauldelprogramador.restlib;
import org.json.JSONStringer;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
*
* Encapsula los datos de la peticiĆ³n en JSON
*
*/
public class JSONRestRequest extends RestRequest {
@Override
public boolean setContent(HashMap<String, Object> data) {
if (this.getMethod() == RestRequest.GET_METHOD)
buildGetURI(data);
try {
JSONStringer holder = new JSONStringer().object();
Iterator<Entry<String, Object>> it = data.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> e = it.next();
holder.key(e.getKey().toString()).value(e.getValue());
}
holder.endObject();
content = holder.toString();
} catch (Exception e) {
return false;
}
return true;
}
private void buildGetURI(HashMap<String, Object> data){
String query = "?";
for (Iterator<Entry<String, Object>> iterator = data.entrySet().iterator(); iterator.hasNext();) {
Map.Entry<String, Object> e = iterator.next();
query = query.concat(e.getKey() + "=" + e.getValue() + "&");
}
query = query.replaceAll("\\s", "%20");
this.setURL(getURI().concat(query.substring(0,query.length()-1)));
}
}