Skip to content

Commit 687565a

Browse files
committed
string value impl for big int and big decimal sync value
1 parent 390e450 commit 687565a

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed
Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
package com.cleanroommc.modularui.value.sync;
22

3+
import com.cleanroommc.modularui.api.value.IStringValue;
4+
import com.cleanroommc.modularui.utils.ICopy;
35
import com.cleanroommc.modularui.utils.serialization.ByteBufAdapters;
46

57
import org.jetbrains.annotations.NotNull;
68
import org.jetbrains.annotations.Nullable;
79

810
import java.math.BigDecimal;
9-
import java.math.BigInteger;
1011
import java.util.function.Consumer;
1112
import java.util.function.Supplier;
1213

13-
public class BigDecimalSyncValue extends GenericSyncValue<BigDecimal> {
14+
public class BigDecimalSyncValue extends GenericSyncValue<BigDecimal> implements IStringValue<BigDecimal> {
1415

1516
public BigDecimalSyncValue(@NotNull Supplier<BigDecimal> getter, @Nullable Consumer<BigDecimal> setter) {
16-
super(getter, setter, ByteBufAdapters.BIG_DECIMAL, v -> new BigDecimal(v.unscaledValue(), v.scale()));
17+
super(getter, setter, ByteBufAdapters.BIG_DECIMAL, ICopy.immutable());
18+
}
19+
20+
@Override
21+
public String getStringValue() {
22+
return getValue().toString();
23+
}
24+
25+
@Override
26+
public void setStringValue(String val) {
27+
setValue(new BigDecimal(val));
1728
}
1829
}
Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.cleanroommc.modularui.value.sync;
22

3+
import com.cleanroommc.modularui.api.value.IStringValue;
4+
import com.cleanroommc.modularui.utils.ICopy;
35
import com.cleanroommc.modularui.utils.serialization.ByteBufAdapters;
46

57
import org.jetbrains.annotations.NotNull;
@@ -9,9 +11,19 @@
911
import java.util.function.Consumer;
1012
import java.util.function.Supplier;
1113

12-
public class BigIntSyncValue extends GenericSyncValue<BigInteger> {
14+
public class BigIntSyncValue extends GenericSyncValue<BigInteger> implements IStringValue<BigInteger> {
1315

1416
public BigIntSyncValue(@NotNull Supplier<BigInteger> getter, @Nullable Consumer<BigInteger> setter) {
15-
super(getter, setter, ByteBufAdapters.BIG_INT, v -> new BigInteger(v.toByteArray()));
17+
super(getter, setter, ByteBufAdapters.BIG_INT, ICopy.immutable());
18+
}
19+
20+
@Override
21+
public String getStringValue() {
22+
return getValue().toString();
23+
}
24+
25+
@Override
26+
public void setStringValue(String val) {
27+
setValue(new BigInteger(val));
1628
}
1729
}

0 commit comments

Comments
 (0)