* the request.
* @return the token.
*/
public String getHistoryToken(final CreateUrlRequest request)
{
Page inPage = currentPage;
List<String> inViews = currentViews;
// determine page
if (request.getPage() != null)
{
inPage = request.getPage();
}
if (inPage == null)
{
inPage = Page.START;
}
// determine views
if (request.getViews() != null)
{
inViews = request.getViews();
}
// determine parameters
Map<String, String> parameters;
if (request.getReplacePrevious())
{
parameters = request.getParameters();
}
else
{
parameters = new HashMap<String, String>(currentValues);
for (Entry<String, String> entry : request.getParameters().entrySet())
{
if (entry.getValue() == null)
{
parameters.remove(entry.getKey());
}
else
{
parameters.put(entry.getKey(), entry.getValue());
}
}
}
// stringify page and views
StringBuilder sb = new StringBuilder(inPage.toString());
for (String view : inViews)
{
if (view != null && !view.isEmpty())
{
sb.append("/").append(view);