StringBuffer requestUrl = new StringBuffer();
// server url
requestUrl.append(GadgetUtils.getGadgetserver(true));
GadgetConfig gadget = GadgetConfig.getGadgetConfig();
// servlet url
if (requestType != null)
requestUrl.append(requestType.getRequestURI());
else if(gadget.getGadgetType().equals(GadgetType.MINGLET))
requestUrl.append(ReqTypes.MINGLET.getRequestURI());
else
requestUrl.append(ReqTypes.BIZLET_SIGNED.getRequestURI());
// add gadget name
requestUrl.append(ReqParamNames.GADGET_PARAM_NAME.getParamName() + "="
+ gadget.getGadgetName());
// add action type
if (requestActionType != null)
requestUrl.append("&"
+ ReqParamNames.ACTION_PARAM_NAME.getParamName() + "="
+ requestActionType.getActionType());
// add content request name
if (customtActoinName != null)
requestUrl.append("&"
+ ReqParamNames.CUSTOM_ACTION_PARAM_NAME.getParamName()
+ "=" + customtActoinName);
if (customtContentName != null)
requestUrl.append("&"
+ ReqParamNames.CUSTOM_CONTENT_PARAM_NAME.getParamName()
+ "=" + customtContentName);
// add filter by
if (filterBy.size() > 0) {
requestUrl.append("&"
+ ReqParamNames.FILTER_BY_PARAM_NAME.getParamName() + "=");
int index = 0;
for (FilterByItem fItem : filterBy) {
if (index > 0)
requestUrl.append(URL.encodeComponent(" "
+ fItem.boolOpType.getOperatorType()));
requestUrl.append(URL.encodeComponent(" "
+ fItem.getFieldName()));
requestUrl.append(URL.encodeComponent(" "
+ fItem.getRelOpType().getOperatorType()));
requestUrl.append(URL.encodeComponent(" "
+ fItem.getParamName()));
}
}
if (filterByParamDecleration.size() > 0) {
requestUrl.append("&"
+ ReqParamNames.FILTER_BY_FIELDS_PARAM_NAME.getParamName()
+ "=");
for (FilterByParamDeclerationItem pitem : filterByParamDecleration) {
requestUrl.append(URL.encodeComponent(" "
+ pitem.getParamType().getParameterType() + " "
+ pitem.getParamName()));
}
}
// add sort by
if (sortBy.length() > 0)
requestUrl.append("&"
+ ReqParamNames.SORT_BY_PARAM_NAME.getParamName() + "="
+ URL.encodeComponent(sortBy.toString()));
// add returning fields
if (returnFields != null)
requestUrl.append("&"
+ ReqParamNames.RETURN_FIELDS_PARAM_NAME.getParamName()
+ "=" + URL.encodeComponent(this.returnFields));
// key field
if (this.itemkey != null)
requestUrl.append("&" + this.itemkey);
if (this.startFrom >= 0)
requestUrl.append("&"
+ ReqParamNames.ITEMS_START_FROM.getParamName() + "="
+ this.startFrom);
if (this.itemNum >= 0)
requestUrl.append("&" + ReqParamNames.ITEMS_NUM.getParamName()
+ "=" + this.itemNum);
if (viewType == null){
try{
requestUrl.append("&"
+ ReqParamNames.GADGET_VIEW_STATE.getParamName() + "="
+ GadgetNativeUtils.getCurrentView());}
catch(Exception e){
// when views not supported, set to home.
requestUrl.append("&"
+ ReqParamNames.GADGET_VIEW_STATE.getParamName() + "="
+ GadgetViewState.HOME.getviewType());
}
}
else
requestUrl.append("&"
+ ReqParamNames.GADGET_VIEW_STATE.getParamName() + "="
+ viewType.getviewType());
// add app parameters
for (String param : paramList)
requestUrl.append("&" + param);
GadgetConfig gc = GadgetConfig.getGadgetConfig();
if (gc.isDebugMode() && gc.getDebugServerCode() != null)
requestUrl.append("&"
+ ReqParamNames.GADGET_DEBUG_CODE.getParamName() + "="
+ gc.getDebugServerCode());
return requestUrl.toString();
}