package com.campus.prime.core.client; import java.lang.reflect.Type; import java.util.Map; import com.campus.prime.core.utils.UrlUtils; public class CampusRequest { private String uri; private Map<String,String> params; private Type type; private Type arrayType; public CampusRequest setArrayType(Type arrayType){ this.arrayType = arrayType; return this; } public Type getArrayType(){ return this.arrayType; } public CampusRequest setType(Type type){ this.type = type; return this; } public Type getType(){ return this.type; } public CampusRequest() { // TODO Auto-generated constructor stub } public CampusRequest setUri(String uri){ this.uri = uri; return this; } public String getUri(){ return uri; } public CampusRequest setParams(Map<String,String> params){ this.params = params; return this; } public Map<String,String> getParams(){ return this.params; } /** * * Add request params to uri * * @param uri */ public void addParams(final StringBuilder uri){ UrlUtils.addParams(getParams(), uri); } /** * Generate full uri * * @return */ public String generateUri(){ final String baseUri = uri; if(baseUri == null) return null; if(baseUri.indexOf('?') != -1) return baseUri; final StringBuilder params = new StringBuilder(); addParams(params); if(params.length() > 0) return baseUri + '?' + params; else return baseUri; } public int hashCode(){ final String fullUri = generateUri(); return fullUri != null ? fullUri.hashCode() : super.hashCode(); } public boolean equals(final Object obj){ if(obj == this) return true; if(!(obj instanceof CampusRequest)) return false; final String fullUri = generateUri(); final String objUri = ((CampusRequest) obj).generateUri(); return fullUri != null && objUri != null && fullUri.equals(objUri); } public String toString(){ final String fullUri = generateUri(); return fullUri != null ? fullUri : super.toString(); } }