package com.ocpsoft.socialpm.gwt.client.local.view.project.view;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.google.gwt.place.shared.Place;
import com.ocpsoft.socialpm.gwt.client.local.history.HistoryConstants;
import com.ocpsoft.socialpm.gwt.client.local.places.TypedPlaceTokenizer;
public class ProjectPlace extends Place
{
private final String username;
private final String slug;
public ProjectPlace(String username, String slug)
{
this.username = username;
this.slug = slug;
}
public static class Tokenizer implements TypedPlaceTokenizer<ProjectPlace>
{
@Override
public String getToken(ProjectPlace place)
{
return place.getUsername() + "/" + place.getSlug();
}
@Override
public ProjectPlace getPlace(String token)
{
String[] tokens = token.split(HistoryConstants.DELIMETER(), -1);
List<String> list = new ArrayList<String>(Arrays.asList(tokens));
if (list.size() == 2)
{
return new ProjectPlace(list.get(0), list.get(1));
}
return null;
}
@Override
public Class<ProjectPlace> getPlaceType()
{
return ProjectPlace.class;
}
}
public String getUsername()
{
return username;
}
public String getSlug()
{
return slug;
}
@Override
public String toString()
{
return getClass().getName() + "[" + username + "/" + slug + "]";
}
}