This commit is contained in:
38
com/wentch/redkale/convert/ext/BigIntegerSimpledCoder.java
Normal file
38
com/wentch/redkale/convert/ext/BigIntegerSimpledCoder.java
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import java.math.BigInteger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class BigIntegerSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, BigInteger> {
|
||||
|
||||
public static final BigIntegerSimpledCoder instance = new BigIntegerSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, BigInteger value) {
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
ByteArraySimpledCoder.instance.convertTo(out, value.toByteArray());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigInteger convertFrom(R in) {
|
||||
byte[] bytes = ByteArraySimpledCoder.instance.convertFrom(in);
|
||||
return bytes == null ? null : new BigInteger(bytes);
|
||||
}
|
||||
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/BoolArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/BoolArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class BoolArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, boolean[]> {
|
||||
|
||||
public static final BoolArraySimpledCoder instance = new BoolArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, boolean[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (boolean v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeBoolean(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
boolean[] data = new boolean[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
boolean[] newdata = new boolean[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readBoolean();
|
||||
}
|
||||
in.readArrayE();
|
||||
boolean[] newdata = new boolean[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
boolean[] values = new boolean[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readBoolean();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
32
com/wentch/redkale/convert/ext/BoolSimpledCoder.java
Normal file
32
com/wentch/redkale/convert/ext/BoolSimpledCoder.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class BoolSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Boolean> {
|
||||
|
||||
public static final BoolSimpledCoder instance = new BoolSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Boolean value) {
|
||||
out.writeBoolean(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean convertFrom(R in) {
|
||||
return in.readBoolean();
|
||||
}
|
||||
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/ByteArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/ByteArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class ByteArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, byte[]> {
|
||||
|
||||
public static final ByteArraySimpledCoder instance = new ByteArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, byte[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (byte v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeByte(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
byte[] data = new byte[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
byte[] newdata = new byte[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readByte();
|
||||
}
|
||||
in.readArrayE();
|
||||
byte[] newdata = new byte[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
byte[] values = new byte[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readByte();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
32
com/wentch/redkale/convert/ext/ByteSimpledCoder.java
Normal file
32
com/wentch/redkale/convert/ext/ByteSimpledCoder.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class ByteSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Byte> {
|
||||
|
||||
public static final ByteSimpledCoder instance = new ByteSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Byte value) {
|
||||
out.writeByte(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Byte convertFrom(R in) {
|
||||
return in.readByte();
|
||||
}
|
||||
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/CharArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/CharArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class CharArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, char[]> {
|
||||
|
||||
public static final CharArraySimpledCoder instance = new CharArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, char[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (char v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeChar(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public char[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
char[] data = new char[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
char[] newdata = new char[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readChar();
|
||||
}
|
||||
in.readArrayE();
|
||||
char[] newdata = new char[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
char[] values = new char[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readChar();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
33
com/wentch/redkale/convert/ext/CharSimpledCoder.java
Normal file
33
com/wentch/redkale/convert/ext/CharSimpledCoder.java
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class CharSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Character> {
|
||||
|
||||
public static final CharSimpledCoder instance = new CharSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Character value) {
|
||||
out.writeChar(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Character convertFrom(R in) {
|
||||
return in.readChar();
|
||||
}
|
||||
|
||||
}
|
||||
40
com/wentch/redkale/convert/ext/DLongSimpledCoder.java
Normal file
40
com/wentch/redkale/convert/ext/DLongSimpledCoder.java
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.util.DLong;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class DLongSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, DLong> {
|
||||
|
||||
public static final DLongSimpledCoder instance = new DLongSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(final W out, final DLong value) {
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.getFirst() + "_" + value.getSecond());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DLong convertFrom(R in) {
|
||||
String str = in.readString();
|
||||
if (str == null) return null;
|
||||
int pos = str.indexOf('_');
|
||||
return new DLong(Long.parseLong(str.substring(0, pos)), Long.parseLong(str.substring(pos + 1)));
|
||||
}
|
||||
|
||||
}
|
||||
33
com/wentch/redkale/convert/ext/DateSimpledCoder.java
Normal file
33
com/wentch/redkale/convert/ext/DateSimpledCoder.java
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class DateSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Date> {
|
||||
|
||||
public static final DateSimpledCoder instance = new DateSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Date value) {
|
||||
out.writeLong(value.getTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date convertFrom(R in) {
|
||||
return new Date(in.readLong());
|
||||
}
|
||||
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/DoubleArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/DoubleArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class DoubleArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, double[]> {
|
||||
|
||||
public static final DoubleArraySimpledCoder instance = new DoubleArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, double[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (double v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeDouble(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
double[] data = new double[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
double[] newdata = new double[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readDouble();
|
||||
}
|
||||
in.readArrayE();
|
||||
double[] newdata = new double[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
double[] values = new double[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readDouble();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
32
com/wentch/redkale/convert/ext/DoubleSimpledCoder.java
Normal file
32
com/wentch/redkale/convert/ext/DoubleSimpledCoder.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class DoubleSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Double> {
|
||||
|
||||
public static final DoubleSimpledCoder instance = new DoubleSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Double value) {
|
||||
out.writeDouble(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double convertFrom(R in) {
|
||||
return in.readDouble();
|
||||
}
|
||||
|
||||
}
|
||||
44
com/wentch/redkale/convert/ext/EnumSimpledCoder.java
Normal file
44
com/wentch/redkale/convert/ext/EnumSimpledCoder.java
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
* @param <E>
|
||||
*/
|
||||
public final class EnumSimpledCoder<R extends Reader, W extends Writer, E extends Enum> extends SimpledCoder<R, W, E> {
|
||||
|
||||
private final Class<E> type;
|
||||
|
||||
public EnumSimpledCoder(Class<E> type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertTo(final W out, final E value) {
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public E convertFrom(final R in) {
|
||||
String value = in.readSmallString();
|
||||
if (value == null) return null;
|
||||
return (E) Enum.valueOf(type, value);
|
||||
}
|
||||
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/FloatArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/FloatArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class FloatArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, float[]> {
|
||||
|
||||
public static final FloatArraySimpledCoder instance = new FloatArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, float[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (float v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeFloat(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
float[] data = new float[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
float[] newdata = new float[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readFloat();
|
||||
}
|
||||
in.readArrayE();
|
||||
float[] newdata = new float[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
float[] values = new float[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readFloat();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
32
com/wentch/redkale/convert/ext/FloatSimpledCoder.java
Normal file
32
com/wentch/redkale/convert/ext/FloatSimpledCoder.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class FloatSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Float> {
|
||||
|
||||
public static final FloatSimpledCoder instance = new FloatSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Float value) {
|
||||
out.writeFloat(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Float convertFrom(R in) {
|
||||
return in.readFloat();
|
||||
}
|
||||
|
||||
}
|
||||
70
com/wentch/redkale/convert/ext/InetAddressSimpledCoder.java
Normal file
70
com/wentch/redkale/convert/ext/InetAddressSimpledCoder.java
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import java.net.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class InetAddressSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, InetAddress> {
|
||||
|
||||
public static final InetAddressSimpledCoder instance = new InetAddressSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, InetAddress value) {
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
ByteArraySimpledCoder.instance.convertTo(out, value.getAddress());
|
||||
}
|
||||
|
||||
@Override
|
||||
public InetAddress convertFrom(R in) {
|
||||
byte[] bytes = ByteArraySimpledCoder.instance.convertFrom(in);
|
||||
if (bytes == null) return null;
|
||||
try {
|
||||
return InetAddress.getByAddress(bytes);
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public final static class InetSocketAddressSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, InetSocketAddress> {
|
||||
|
||||
public static final InetSocketAddressSimpledCoder instance = new InetSocketAddressSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, InetSocketAddress value) {
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
ByteArraySimpledCoder.instance.convertTo(out, value.getAddress().getAddress());
|
||||
out.writeInt(value.getPort());
|
||||
}
|
||||
|
||||
@Override
|
||||
public InetSocketAddress convertFrom(R in) {
|
||||
byte[] bytes = ByteArraySimpledCoder.instance.convertFrom(in);
|
||||
if (bytes == null) return null;
|
||||
int port = in.readInt();
|
||||
try {
|
||||
return new InetSocketAddress(InetAddress.getByAddress(bytes), port);
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/IntArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/IntArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class IntArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, int[]> {
|
||||
|
||||
public static final IntArraySimpledCoder instance = new IntArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, int[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (int v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeInt(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
int[] data = new int[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
int[] newdata = new int[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readInt();
|
||||
}
|
||||
in.readArrayE();
|
||||
int[] newdata = new int[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
int[] values = new int[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readInt();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
32
com/wentch/redkale/convert/ext/IntSimpledCoder.java
Normal file
32
com/wentch/redkale/convert/ext/IntSimpledCoder.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class IntSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Integer> {
|
||||
|
||||
public static final IntSimpledCoder instance = new IntSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Integer value) {
|
||||
out.writeInt(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer convertFrom(R in) {
|
||||
return in.readInt();
|
||||
}
|
||||
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/LongArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/LongArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class LongArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, long[]> {
|
||||
|
||||
public static final LongArraySimpledCoder instance = new LongArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, long[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (long v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeLong(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
long[] data = new long[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
long[] newdata = new long[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readInt();
|
||||
}
|
||||
in.readArrayE();
|
||||
long[] newdata = new long[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
long[] values = new long[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readInt();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
33
com/wentch/redkale/convert/ext/LongSimpledCoder.java
Normal file
33
com/wentch/redkale/convert/ext/LongSimpledCoder.java
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class LongSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Long> {
|
||||
|
||||
public static final LongSimpledCoder instance = new LongSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Long value) {
|
||||
out.writeLong(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long convertFrom(R in) {
|
||||
return in.readLong();
|
||||
}
|
||||
|
||||
}
|
||||
32
com/wentch/redkale/convert/ext/NumberSimpledCoder.java
Normal file
32
com/wentch/redkale/convert/ext/NumberSimpledCoder.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class NumberSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Number> {
|
||||
|
||||
public static final NumberSimpledCoder instance = new NumberSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Number value) {
|
||||
out.writeLong(value == null ? 0L : value.longValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Number convertFrom(R in) {
|
||||
return in.readLong();
|
||||
}
|
||||
|
||||
}
|
||||
38
com/wentch/redkale/convert/ext/PatternSimpledCoder.java
Normal file
38
com/wentch/redkale/convert/ext/PatternSimpledCoder.java
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.*;
|
||||
import java.util.regex.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public class PatternSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Pattern> {
|
||||
|
||||
public static final PatternSimpledCoder instance = new PatternSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Pattern value) {
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeString(value.flags() + "," + value.pattern());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pattern convertFrom(R in) {
|
||||
String value = in.readString();
|
||||
if (value == null) return null;
|
||||
int pos = value.indexOf(',');
|
||||
return Pattern.compile(value.substring(pos + 1), Integer.parseInt(value.substring(0, pos)));
|
||||
}
|
||||
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/ShortArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/ShortArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class ShortArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, short[]> {
|
||||
|
||||
public static final ShortArraySimpledCoder instance = new ShortArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, short[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (short v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeShort(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public short[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
short[] data = new short[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
short[] newdata = new short[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readShort();
|
||||
}
|
||||
in.readArrayE();
|
||||
short[] newdata = new short[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
short[] values = new short[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readShort();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
32
com/wentch/redkale/convert/ext/ShortSimpledCoder.java
Normal file
32
com/wentch/redkale/convert/ext/ShortSimpledCoder.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class ShortSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Short> {
|
||||
|
||||
public static final ShortSimpledCoder instance = new ShortSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, Short value) {
|
||||
out.writeShort(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Short convertFrom(R in) {
|
||||
return in.readShort();
|
||||
}
|
||||
|
||||
}
|
||||
68
com/wentch/redkale/convert/ext/StringArraySimpledCoder.java
Normal file
68
com/wentch/redkale/convert/ext/StringArraySimpledCoder.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class StringArraySimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, String[]> {
|
||||
|
||||
public static final StringArraySimpledCoder instance = new StringArraySimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, String[] values) {
|
||||
if (values == null) {
|
||||
out.writeNull();
|
||||
return;
|
||||
}
|
||||
out.writeArrayB(values.length);
|
||||
boolean flag = false;
|
||||
for (String v : values) {
|
||||
if (flag) out.writeArrayMark();
|
||||
out.writeString(v);
|
||||
flag = true;
|
||||
}
|
||||
out.writeArrayE();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] convertFrom(R in) {
|
||||
int len = in.readArrayB();
|
||||
if (len == Reader.SIGN_NULL) {
|
||||
return null;
|
||||
} else if (len == Reader.SIGN_NOLENGTH) {
|
||||
int size = 0;
|
||||
String[] data = new String[8];
|
||||
while (in.hasNext()) {
|
||||
if (size >= data.length) {
|
||||
String[] newdata = new String[data.length + 4];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
data = newdata;
|
||||
}
|
||||
data[size++] = in.readString();
|
||||
}
|
||||
in.readArrayE();
|
||||
String[] newdata = new String[size];
|
||||
System.arraycopy(data, 0, newdata, 0, size);
|
||||
return newdata;
|
||||
} else {
|
||||
String[] values = new String[len];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
values[i] = in.readString();
|
||||
}
|
||||
in.readArrayE();
|
||||
return values;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
32
com/wentch/redkale/convert/ext/StringSimpledCoder.java
Normal file
32
com/wentch/redkale/convert/ext/StringSimpledCoder.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public final class StringSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, String> {
|
||||
|
||||
public static final StringSimpledCoder instance = new StringSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(W out, String value) {
|
||||
out.writeString(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertFrom(R in) {
|
||||
return in.readString();
|
||||
}
|
||||
|
||||
}
|
||||
42
com/wentch/redkale/convert/ext/TypeSimpledCoder.java
Normal file
42
com/wentch/redkale/convert/ext/TypeSimpledCoder.java
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.wentch.redkale.convert.ext;
|
||||
|
||||
import com.wentch.redkale.convert.Reader;
|
||||
import com.wentch.redkale.convert.Writer;
|
||||
import com.wentch.redkale.convert.SimpledCoder;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhangjx
|
||||
* @param <R>
|
||||
* @param <W>
|
||||
*/
|
||||
public class TypeSimpledCoder<R extends Reader, W extends Writer> extends SimpledCoder<R, W, Class> {
|
||||
|
||||
public static final TypeSimpledCoder instance = new TypeSimpledCoder();
|
||||
|
||||
@Override
|
||||
public void convertTo(final W out, final Class value) {
|
||||
if (value == null) {
|
||||
out.writeNull();
|
||||
} else {
|
||||
out.writeSmallString(value.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class convertFrom(R in) {
|
||||
String str = in.readSmallString();
|
||||
if (str == null) return null;
|
||||
try {
|
||||
return Class.forName(str);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user