Fetch the repository succeeded.
package org.voovan.network.filter;
import org.voovan.network.IoFilter;
import org.voovan.network.IoSession;
import org.voovan.tools.buffer.TByteBuffer;
import java.nio.ByteBuffer;
/**
* String 过滤器
*
* @author helyho
*
* Voovan Framework.
* WebSite: https://github.com/helyho/Voovan
* Licence: Apache v2 License
*/
public class StringFilter implements IoFilter {
private boolean isByteBuffer;
/**
* 构造函数
* @param isByteBuffer 过滤类型是否是 ByteBuffer, true: 过滤类型 Bytebuffer, false: 过滤类型byte
*/
public StringFilter(boolean isByteBuffer){
this.isByteBuffer = isByteBuffer;
}
public StringFilter(){
this.isByteBuffer = true;
}
@Override
public Object encode(IoSession session, Object object) {
if(object instanceof String){
String sourceString = object.toString();
if(isByteBuffer) {
return ByteBuffer.wrap(sourceString.getBytes());
} else {
return sourceString.getBytes();
}
}
return object;
}
@Override
public Object decode(IoSession session,Object object) {
if(object instanceof ByteBuffer && isByteBuffer){
return TByteBuffer.toString((ByteBuffer)object);
}
if(object.getClass() == ByteFilter.BYTE_ARRAY_CLASS && !isByteBuffer){
return new String((byte[])object);
}
return object;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。