pb
This commit is contained in:
@@ -42,7 +42,7 @@ public class ProtobufArrayEncoder<T> extends ArrayEncoder<ProtobufWriter, T>
|
|||||||
|
|
||||||
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, T[] value) {
|
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, T[] value) {
|
||||||
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
||||||
//out.writeArrayB(value.length, itemEncoder, value);
|
// out.writeArrayB(value.length, itemEncoder, value);
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
for (T item : value) {
|
for (T item : value) {
|
||||||
if (!first) {
|
if (!first) {
|
||||||
@@ -55,7 +55,7 @@ public class ProtobufArrayEncoder<T> extends ArrayEncoder<ProtobufWriter, T>
|
|||||||
}
|
}
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
//out.writeArrayE();
|
// out.writeArrayE();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, T[] value) {
|
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, T[] value) {
|
||||||
@@ -70,6 +70,12 @@ public class ProtobufArrayEncoder<T> extends ArrayEncoder<ProtobufWriter, T>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 对象是否为空
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty(ProtobufWriter out, T[] value) {
|
||||||
|
return value == null || value.length == 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int computeSize(ProtobufWriter out, int tagSize, T[] value) {
|
public int computeSize(ProtobufWriter out, int tagSize, T[] value) {
|
||||||
if (value == null || value.length == 0) {
|
if (value == null || value.length == 0) {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class ProtobufCollectionEncoder<T> extends CollectionEncoder<ProtobufWrit
|
|||||||
|
|
||||||
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, Collection<T> value) {
|
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, Collection<T> value) {
|
||||||
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
||||||
//out.writeArrayB(value.size(), itemEncoder, value);
|
// out.writeArrayB(value.size(), itemEncoder, value);
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
for (T item : value) {
|
for (T item : value) {
|
||||||
if (!first) {
|
if (!first) {
|
||||||
@@ -55,7 +55,7 @@ public class ProtobufCollectionEncoder<T> extends CollectionEncoder<ProtobufWrit
|
|||||||
}
|
}
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
//out.writeArrayE();
|
// out.writeArrayE();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, Collection<T> value) {
|
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, Collection<T> value) {
|
||||||
@@ -70,6 +70,12 @@ public class ProtobufCollectionEncoder<T> extends CollectionEncoder<ProtobufWrit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 对象是否为空
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty(ProtobufWriter out, Collection<T> value) {
|
||||||
|
return value == null || value.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int computeSize(ProtobufWriter out, int tagSize, Collection<T> value) {
|
public int computeSize(ProtobufWriter out, int tagSize, Collection<T> value) {
|
||||||
if (value == null || value.isEmpty()) {
|
if (value == null || value.isEmpty()) {
|
||||||
|
|||||||
@@ -24,8 +24,11 @@ public interface ProtobufEncodeable<W extends Writer, T> extends Encodeable<W, T
|
|||||||
convertTo(out, value);
|
convertTo(out, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 对象是否为空
|
||||||
|
default boolean isEmpty(W out, T value) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// 计算内容长度
|
// 计算内容长度
|
||||||
public int computeSize(ProtobufWriter out, int tagSize, T value);
|
public int computeSize(ProtobufWriter out, int tagSize, T value);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V>
|
|||||||
BiFunction<K, V, V> mapFieldFunc = out.mapFieldFunc();
|
BiFunction<K, V, V> mapFieldFunc = out.mapFieldFunc();
|
||||||
ProtobufEncodeable kencoder = (ProtobufEncodeable) this.keyEncoder;
|
ProtobufEncodeable kencoder = (ProtobufEncodeable) this.keyEncoder;
|
||||||
ProtobufEncodeable vencoder = (ProtobufEncodeable) this.valueEncoder;
|
ProtobufEncodeable vencoder = (ProtobufEncodeable) this.valueEncoder;
|
||||||
//out.writeMapB(values.size(), kencoder, vencoder, value);
|
// out.writeMapB(values.size(), kencoder, vencoder, value);
|
||||||
AtomicBoolean first = new AtomicBoolean(true);
|
AtomicBoolean first = new AtomicBoolean(true);
|
||||||
values.forEach((key, val0) -> {
|
values.forEach((key, val0) -> {
|
||||||
if (ignoreColumns == null || !ignoreColumns.contains(key.toString())) {
|
if (ignoreColumns == null || !ignoreColumns.contains(key.toString())) {
|
||||||
@@ -76,7 +76,7 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V>
|
|||||||
first.set(false);
|
first.set(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//out.writeMapE();
|
// out.writeMapE();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int computeSize(ProtobufWriter out, K key, V val) {
|
protected int computeSize(ProtobufWriter out, K key, V val) {
|
||||||
@@ -87,6 +87,12 @@ public class ProtobufMapEncoder<K, V> extends MapEncoder<ProtobufWriter, K, V>
|
|||||||
return (keyMember.getTagSize() + keySize) + (valueMember.getTagSize() + valSize);
|
return (keyMember.getTagSize() + keySize) + (valueMember.getTagSize() + valSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 对象是否为空
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty(ProtobufWriter out, Map<K, V> value) {
|
||||||
|
return value == null || value.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int computeSize(ProtobufWriter out, int tagSize, Map<K, V> value) {
|
public int computeSize(ProtobufWriter out, int tagSize, Map<K, V> value) {
|
||||||
if (Utility.isEmpty(value)) {
|
if (Utility.isEmpty(value)) {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class ProtobufStreamEncoder<T> extends StreamEncoder<ProtobufWriter, T>
|
|||||||
|
|
||||||
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, Object[] value) {
|
protected void convertObjectTo(final ProtobufWriter out, @Nonnull EnMember member, Object[] value) {
|
||||||
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
ProtobufEncodeable itemEncoder = (ProtobufEncodeable) this.componentEncoder;
|
||||||
//out.writeArrayB(value.length, itemEncoder, value);
|
// out.writeArrayB(value.length, itemEncoder, value);
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
for (Object item : value) {
|
for (Object item : value) {
|
||||||
if (!first) {
|
if (!first) {
|
||||||
@@ -56,7 +56,7 @@ public class ProtobufStreamEncoder<T> extends StreamEncoder<ProtobufWriter, T>
|
|||||||
}
|
}
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
//out.writeArrayE();
|
// out.writeArrayE();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, Object[] value) {
|
protected void convertPrimitivedTo(final ProtobufWriter out, @Nonnull EnMember member, Object[] value) {
|
||||||
@@ -71,6 +71,13 @@ public class ProtobufStreamEncoder<T> extends StreamEncoder<ProtobufWriter, T>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 对象是否为空
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty(ProtobufWriter out, Stream<T> value) {
|
||||||
|
Object[] array = out.putStreamArray(value);
|
||||||
|
return array == null || array.length == 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int computeSize(ProtobufWriter out, int tagSize, Stream<T> value) {
|
public int computeSize(ProtobufWriter out, int tagSize, Stream<T> value) {
|
||||||
Object[] array = out.putStreamArray(value);
|
Object[] array = out.putStreamArray(value);
|
||||||
|
|||||||
@@ -1065,6 +1065,9 @@ public abstract class ProtobufWriter extends Writer {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ProtobufEncodeable encoder = (ProtobufEncodeable) member.getEncoder();
|
ProtobufEncodeable encoder = (ProtobufEncodeable) member.getEncoder();
|
||||||
|
if (encoder.isEmpty(this, value)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.writeField(member);
|
this.writeField(member);
|
||||||
encoder.convertTo(this, member, value);
|
encoder.convertTo(this, member, value);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user