File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed
nbt/src/main/java/core/nbt/serialization Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change 99import core .nbt .serialization .adapter .FloatAdapter ;
1010import core .nbt .serialization .adapter .IntegerAdapter ;
1111import core .nbt .serialization .adapter .LongAdapter ;
12+ import core .nbt .serialization .adapter .PathAdapter ;
1213import core .nbt .serialization .adapter .ShortAdapter ;
1314import core .nbt .serialization .adapter .StringAdapter ;
1415import core .nbt .serialization .adapter .UUIDAdapter ;
1920import java .io .File ;
2021import java .lang .reflect .Type ;
2122import java .net .InetSocketAddress ;
23+ import java .nio .file .Path ;
2224import java .time .Duration ;
2325import java .util .HashMap ;
2426import java .util .Map ;
@@ -141,6 +143,7 @@ public SerializationRegistry() {
141143 registerTypeAdapter (InetSocketAddress .class , AddressAdapter .INSTANCE );
142144 registerTypeAdapter (Integer .class , IntegerAdapter .INSTANCE );
143145 registerTypeAdapter (Long .class , LongAdapter .INSTANCE );
146+ registerTypeAdapter (Path .class , PathAdapter .INSTANCE );
144147 registerTypeAdapter (Short .class , ShortAdapter .INSTANCE );
145148 registerTypeAdapter (String .class , StringAdapter .INSTANCE );
146149 registerTypeAdapter (UUID .class , UUIDAdapter .INSTANCE );
Original file line number Diff line number Diff line change 1+ package core .nbt .serialization .adapter ;
2+
3+ import core .nbt .serialization .ParserException ;
4+ import core .nbt .serialization .TagAdapter ;
5+ import core .nbt .serialization .TagDeserializationContext ;
6+ import core .nbt .serialization .TagSerializationContext ;
7+ import core .nbt .tag .StringTag ;
8+ import core .nbt .tag .Tag ;
9+ import org .jetbrains .annotations .ApiStatus ;
10+ import org .jspecify .annotations .NullMarked ;
11+
12+ import java .nio .file .Path ;
13+
14+ @ NullMarked
15+ @ ApiStatus .Internal
16+ public final class PathAdapter implements TagAdapter <Path > {
17+ public static final PathAdapter INSTANCE = new PathAdapter ();
18+
19+ private PathAdapter () {
20+ }
21+
22+ @ Override
23+ public Path deserialize (Tag tag , TagDeserializationContext context ) throws ParserException {
24+ return Path .of (tag .getAsString ());
25+ }
26+
27+ @ Override
28+ public Tag serialize (Path path , TagSerializationContext context ) throws ParserException {
29+ return new StringTag (path .toString ());
30+ }
31+ }
You can’t perform that action at this time.
0 commit comments