package com.yoghurt.crypto.transactions.client.place;
import com.google.gwt.place.shared.Place;
import com.google.gwt.place.shared.PlaceTokenizer;
import com.yoghurt.crypto.transactions.client.util.misc.StringUtils;
public abstract class DelimitedTokenizer<E extends Place> implements PlaceTokenizer<E> {
private static final String DELIMITER = ":";
@Override
public E getPlace(final String token) {
final String[] tokens = token.split(DELIMITER);
return createPlace(tokens);
}
protected abstract E createPlace(final String[] tokens);
@Override
public String getToken(final E place) {
return StringUtils.join(DELIMITER, getTokens(place));
}
protected abstract String[] getTokens(final E place);
}