readField
This commit is contained in:
@@ -377,7 +377,7 @@ public class ObjectDecoder<R extends Reader, T> implements Decodeable<R, T> {
|
||||
if (this.creatorConstructorMembers == null) { // 空构造函数
|
||||
final T result = this.creator == null ? null : this.creator.create();
|
||||
while (in.hasNext()) {
|
||||
DeMember member = in.readFieldName(info);
|
||||
DeMember member = in.readField(info);
|
||||
in.readBlank();
|
||||
if (member == null) {
|
||||
in.skipValue(); // 跳过不存在的属性的值
|
||||
@@ -394,7 +394,7 @@ public class ObjectDecoder<R extends Reader, T> implements Decodeable<R, T> {
|
||||
final Object[][] otherParams = new Object[info.length()][2];
|
||||
int oc = 0;
|
||||
while (in.hasNext()) {
|
||||
DeMember member = in.readFieldName(info);
|
||||
DeMember member = in.readField(info);
|
||||
in.readBlank();
|
||||
if (member == null) {
|
||||
in.skipValue(); // 跳过不存在的属性的值
|
||||
|
||||
@@ -119,7 +119,7 @@ public abstract class Reader {
|
||||
*
|
||||
* @return 匹配的DeMember
|
||||
*/
|
||||
public abstract DeMember readFieldName(final DeMemberInfo memberInfo);
|
||||
public abstract DeMember readField(final DeMemberInfo memberInfo);
|
||||
|
||||
/**
|
||||
* 读取一个boolean值
|
||||
|
||||
@@ -137,7 +137,7 @@ public abstract class Writer {
|
||||
if (value == null) {
|
||||
if (nullable()) {
|
||||
Attribute attr = member.getAttribute();
|
||||
this.writeFieldName(member, attr.field(), attr.genericType(), member.getPosition());
|
||||
this.writeField(member, attr.field(), attr.genericType(), member.getPosition());
|
||||
writeNull();
|
||||
this.comma = true;
|
||||
}
|
||||
@@ -155,7 +155,7 @@ public abstract class Writer {
|
||||
}
|
||||
}
|
||||
Attribute attr = member.getAttribute();
|
||||
this.writeFieldName(member, attr.field(), attr.genericType(), member.getPosition());
|
||||
this.writeField(member, attr.field(), attr.genericType(), member.getPosition());
|
||||
member.encoder.convertTo(this, value);
|
||||
this.comma = true;
|
||||
}
|
||||
@@ -174,7 +174,7 @@ public abstract class Writer {
|
||||
final String fieldName, Type fieldType, int fieldPos, Encodeable anyEncoder, Object value) {
|
||||
if (value == null) {
|
||||
if (nullable()) {
|
||||
this.writeFieldName(null, fieldName, fieldType, fieldPos);
|
||||
this.writeField(null, fieldName, fieldType, fieldPos);
|
||||
writeNull();
|
||||
this.comma = true;
|
||||
}
|
||||
@@ -195,7 +195,7 @@ public abstract class Writer {
|
||||
}
|
||||
}
|
||||
}
|
||||
this.writeFieldName(null, fieldName, fieldType, fieldPos);
|
||||
this.writeField(null, fieldName, fieldType, fieldPos);
|
||||
anyEncoder.convertTo(this, value);
|
||||
this.comma = true;
|
||||
}
|
||||
@@ -205,9 +205,9 @@ public abstract class Writer {
|
||||
*
|
||||
* @param member 字段
|
||||
*/
|
||||
public final void writeFieldName(final EnMember member) {
|
||||
public final void writeField(final EnMember member) {
|
||||
Attribute attr = member.getAttribute();
|
||||
this.writeFieldName(member, attr.field(), attr.genericType(), member.getPosition());
|
||||
this.writeField(member, attr.field(), attr.genericType(), member.getPosition());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -265,7 +265,7 @@ public abstract class Writer {
|
||||
* @param fieldType 字段类型
|
||||
* @param fieldPos 字段顺序
|
||||
*/
|
||||
public abstract void writeFieldName(EnMember member, String fieldName, Type fieldType, int fieldPos);
|
||||
public abstract void writeField(EnMember member, String fieldName, Type fieldType, int fieldPos);
|
||||
|
||||
/**
|
||||
* 写入一个boolean值
|
||||
|
||||
@@ -216,7 +216,7 @@ public class BsonReader extends Reader {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final DeMember readFieldName(final DeMemberInfo memberInfo) {
|
||||
public final DeMember readField(final DeMemberInfo memberInfo) {
|
||||
final String exceptedField = readStandardString();
|
||||
this.fieldTypeEnum = readByte();
|
||||
return memberInfo.getMemberByField(exceptedField);
|
||||
|
||||
@@ -251,7 +251,7 @@ public class BsonWriter extends Writer implements ByteTuple {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void writeFieldName(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
public final void writeField(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
writeByte(BsonReader.SIGN_HASNEXT);
|
||||
writeStandardString(fieldName);
|
||||
writeByte(BsonFactory.typeEnum(fieldType));
|
||||
|
||||
@@ -590,7 +590,7 @@ public class JsonByteBufferReader extends JsonReader {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeMember readFieldName(final DeMemberInfo memberInfo) {
|
||||
public DeMember readField(final DeMemberInfo memberInfo) {
|
||||
char ch = nextGoodChar(true);
|
||||
if (ch == 0) {
|
||||
return null;
|
||||
|
||||
@@ -114,7 +114,7 @@ public class JsonBytesWriter extends JsonWriter implements ByteTuple {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void writeFieldName(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
public final void writeField(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
if (this.comma) {
|
||||
writeTo(BYTE_COMMA);
|
||||
}
|
||||
|
||||
@@ -667,7 +667,7 @@ public class JsonReader extends Reader {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeMember readFieldName(final DeMemberInfo memberInfo) {
|
||||
public DeMember readField(final DeMemberInfo memberInfo) {
|
||||
final int eof = this.limit;
|
||||
if (this.position == eof) {
|
||||
return null;
|
||||
|
||||
@@ -141,7 +141,7 @@ public abstract class JsonWriter extends Writer {
|
||||
public abstract void writeString(String value);
|
||||
|
||||
@Override // 只容许JsonBytesWriter重写此方法
|
||||
public void writeFieldName(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
public void writeField(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
if (this.comma) {
|
||||
writeTo(BYTE_COMMA);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class ProtobufArrayEncoder<T> extends ArrayEncoder<ProtobufWriter, T> {
|
||||
T[] array = value;
|
||||
out.writeArrayB(array.length, itemEncoder, array);
|
||||
for (T item : array) {
|
||||
out.writeFieldName(member);
|
||||
out.writeField(member);
|
||||
if (item == null) {
|
||||
out.writeUInt32(0);
|
||||
} else if (componentSimpled) {
|
||||
|
||||
@@ -31,7 +31,7 @@ public class ProtobufCollectionEncoder<T> extends CollectionEncoder<ProtobufWrit
|
||||
Encodeable itemEncoder = this.componentEncoder;
|
||||
out.writeArrayB(value.size(), itemEncoder, value);
|
||||
for (T item : value) {
|
||||
out.writeFieldName(member);
|
||||
out.writeField(member);
|
||||
if (item == null) {
|
||||
out.writeUInt32(0);
|
||||
} else if (componentSimpled) {
|
||||
|
||||
@@ -458,16 +458,6 @@ public class ProtobufFactory extends ConvertFactory<ProtobufReader, ProtobufWrit
|
||||
return computeUInt32SizeNoTag(encodeZigZag32(value));
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
for (int i = 0; i < 10000; i++) {
|
||||
int len1 = computeRawVarint32Size(encodeZigZag32(i));
|
||||
int len2 = computeSInt32SizeNoTag(i);
|
||||
if (len1 != len2) {
|
||||
throw new RuntimeException(" i = " + i + ", len1: " + len1 + ", len2: " + len2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected static int computeSInt64SizeNoTag(final long value) {
|
||||
if (value == 0) return 1;
|
||||
return computeUInt64SizeNoTag(encodeZigZag64(value));
|
||||
|
||||
@@ -45,7 +45,7 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V> {
|
||||
if (ignoreColumns == null || !ignoreColumns.contains(key)) {
|
||||
V v = mapFieldFunc == null ? val : mapFieldFunc.apply(key, val);
|
||||
if (v != null) {
|
||||
out.writeFieldName(member);
|
||||
out.writeField(member);
|
||||
|
||||
ProtobufWriter tmp = out.pollChild();
|
||||
tmp.writeTag(keyTag);
|
||||
|
||||
@@ -156,7 +156,7 @@ public class ProtobufReader extends Reader {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final DeMember readFieldName(final DeMemberInfo memberInfo) {
|
||||
public final DeMember readField(final DeMemberInfo memberInfo) {
|
||||
int tag = readTag();
|
||||
DeMember member = memberInfo.getMemberByTag(tag);
|
||||
if (member != null) {
|
||||
|
||||
@@ -32,7 +32,7 @@ public class ProtobufStreamEncoder<T> extends StreamEncoder<ProtobufWriter, T> {
|
||||
Encodeable itemEncoder = this.componentEncoder;
|
||||
out.writeArrayB(array.length, itemEncoder, array);
|
||||
for (Object item : array) {
|
||||
out.writeFieldName(member);
|
||||
out.writeField(member);
|
||||
if (item == null) {
|
||||
out.writeUInt32(0);
|
||||
} else if (componentSimpled) {
|
||||
|
||||
@@ -327,7 +327,7 @@ public class ProtobufWriter extends Writer implements ByteTuple {
|
||||
|
||||
// 被ObjectEncoder调用
|
||||
@Override
|
||||
public final void writeFieldName(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
public final void writeField(EnMember member, String fieldName, Type fieldType, int fieldPos) {
|
||||
writeTag(member != null ? member.getTag() : fieldPos);
|
||||
}
|
||||
|
||||
@@ -1321,7 +1321,7 @@ public class ProtobufWriter extends Writer implements ByteTuple {
|
||||
ProtobufStreamEncoder streamEncoder = (ProtobufStreamEncoder) encoder;
|
||||
streamEncoder.convertTo(this, member, (Stream) value);
|
||||
} else {
|
||||
this.writeFieldName(member);
|
||||
this.writeField(member);
|
||||
encoder.convertTo(this, value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public class InnerCoderEntityTest {
|
||||
int index = 0;
|
||||
final Object[] params = new Object[deMembers.length];
|
||||
while (in.hasNext()) {
|
||||
DeMember member = in.readFieldName(memberInfo); // 读取字段名
|
||||
DeMember member = in.readField(memberInfo); // 读取字段名
|
||||
in.readBlank(); // 读取字段名与字段值之间的间隔符,JSON则是跳过冒号:
|
||||
if (member == null) {
|
||||
in.skipValue(); // 跳过不存在的字段的值, 一般不会发生
|
||||
|
||||
Reference in New Issue
Block a user