UrlEncodedToken.java
package cn.home1.oss.lib.webmvc.api;
import static com.google.common.base.Preconditions.checkNotNull;
import cn.home1.oss.lib.common.CodecUtils;
/**
* Created by zhanghaolun on 16/11/14.
*/
public class UrlEncodedToken<T> implements TypeSafeToken<T> {
private final TypeSafeToken<T> delegate;
public UrlEncodedToken(final TypeSafeToken<T> delegate) {
this.delegate = checkNotNull(delegate, "delegate must not null");
}
@Override
public String toToken(final T obj) {
final String token = this.delegate.toToken(obj);
return CodecUtils.urlEncode(token);
}
@Override
public T fromToken(final String token) {
final String decoded = CodecUtils.urlDecode(token);
return this.delegate.fromToken(decoded);
}
}