This commit is contained in:
redkale
2024-10-19 23:10:49 +08:00
parent 9cf402f18c
commit a19b083478
3 changed files with 66 additions and 3 deletions

View File

@@ -42,6 +42,12 @@ public abstract class ProtobufCoders {
return computeSize(value);
}
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, Boolean value) {
return (value == null || !value) && out.tiny();
}
@Override
public int computeSize(Boolean value) {
return value == null ? 0 : 1;
@@ -68,6 +74,12 @@ public abstract class ProtobufCoders {
return computeSize(value);
}
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, Byte value) {
return (value == null || value.byteValue() == 0) && out.tiny();
}
@Override
public int computeSize(Byte value) {
return value == null ? 0 : 1;
@@ -94,6 +106,12 @@ public abstract class ProtobufCoders {
return computeSize(value);
}
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, Character value) {
return (value == null || value.charValue() == 0) && out.tiny();
}
@Override
public int computeSize(Character value) {
return value == null ? 0 : ProtobufFactory.computeSInt32SizeNoTag(value);
@@ -120,6 +138,12 @@ public abstract class ProtobufCoders {
return computeSize(value);
}
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, Short value) {
return (value == null || value.shortValue() == 0) && out.tiny();
}
@Override
public int computeSize(Short value) {
return value == null ? 0 : ProtobufFactory.computeSInt32SizeNoTag(value);
@@ -146,6 +170,12 @@ public abstract class ProtobufCoders {
return computeSize(value);
}
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, Integer value) {
return (value == null || value.intValue() == 0) && out.tiny();
}
@Override
public int computeSize(Integer value) {
return value == null ? 0 : ProtobufFactory.computeSInt32SizeNoTag(value);
@@ -172,6 +202,12 @@ public abstract class ProtobufCoders {
return computeSize(value);
}
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, Float value) {
return (value == null || value.floatValue() == 0) && out.tiny();
}
@Override
public int computeSize(Float value) {
return value == null ? 0 : 4;
@@ -198,6 +234,12 @@ public abstract class ProtobufCoders {
return computeSize(value);
}
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, Long value) {
return (value == null || value.longValue() == 0) && out.tiny();
}
@Override
public int computeSize(Long value) {
return value == null ? 0 : ProtobufFactory.computeSInt64SizeNoTag(value);
@@ -224,6 +266,12 @@ public abstract class ProtobufCoders {
return computeSize(value);
}
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, Double value) {
return (value == null || value.doubleValue() == 0) && out.tiny();
}
@Override
public int computeSize(Double value) {
return value == null ? 0 : 8;
@@ -245,6 +293,12 @@ public abstract class ProtobufCoders {
public static final ProtobufStringSimpledCoder instance = new ProtobufStringSimpledCoder();
// 对象是否为空
@Override
public boolean isEmpty(ProtobufWriter out, String value) {
return (value == null || value.isEmpty()) && out.tiny();
}
@Override
public int computeSize(ProtobufWriter out, int tagSize, String value) {
if (value == null || value.isEmpty()) {

View File

@@ -98,6 +98,11 @@ public abstract class AnyValue {
return value;
}
@Override
public String toString() {
return "{'" + name + "': " + value + "}";
}
static Entry<AnyValue>[] getEntryAnyValueArray(
BiPredicate<String, String> comparison, Entry<AnyValue>[] entitys, String name) {
int len = 0;