package org.bonitasoft.console.client.angular;
import com.google.gwt.regexp.shared.MatchResult;
import com.google.gwt.regexp.shared.RegExp;
class AngularUrlBuilder {
String url;
public AngularUrlBuilder(final String url) {
this.url = url;
}
/**
* Parse provided query string to get parameter and append its value as url token
* e.g
* url: /admin/cases/list
* queryString: ?caseId=2
* become: /admin/cases/list/2
*
* @param param
* @param queryString
* @return
*/
public AngularUrlBuilder appendQueryStringParameter(final String param, final String queryString) {
if (queryString != null) {
final MatchResult paramMatcher = RegExp.compile("(^|[&\\?#])" + param + "=([^&\\?#]*)([&\\?#]|$)").exec(queryString);
if (paramMatcher != null && paramMatcher.getGroupCount() > 0) {
url += "/" + paramMatcher.getGroup(2);
}
}
return this;
}
public String build() {
return "../portal.js/" + url;
}
}