Skip to content

Commit e3830d0

Browse files
committed
Refactor parent field to use NBTParent interface
1 parent 9bf2d0f commit e3830d0

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

src/main/java/org/glavo/nbt/tag/Tag.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
import org.glavo.nbt.MinecraftEdition;
1919
import org.glavo.nbt.NBTElement;
20+
import org.glavo.nbt.NBTParent;
21+
import org.glavo.nbt.chunk.Chunk;
2022
import org.glavo.nbt.internal.input.DataReader;
2123
import org.glavo.nbt.internal.input.InputContext;
2224
import org.glavo.nbt.internal.input.InputSource;
@@ -78,7 +80,7 @@ public static CompoundTag readCompoundTag(InputStream inputStream, MinecraftEdit
7880
}
7981
}
8082

81-
@Nullable ParentTag<?> parent;
83+
@Nullable NBTParent<? extends Tag> parent;
8284

8385
String name;
8486
int index = -1;
@@ -105,8 +107,8 @@ public void setName(String name) throws IllegalStateException {
105107
return;
106108
}
107109

108-
if (parent != null) {
109-
parent.updateSubTagName(this, name);
110+
if (parent instanceof ParentTag<?> parentTag) {
111+
parentTag.updateSubTagName(this, name);
110112
} else {
111113
this.name = name;
112114
}
@@ -118,10 +120,15 @@ public int getIndex() {
118120
return index;
119121
}
120122

123+
/// If the tag is a child of a [parent][NBTParent], returns the parent; otherwise, returns `null`.
124+
public @Nullable NBTParent<?> getParent() {
125+
return parent;
126+
}
127+
121128
/// If the tag is a child of a [parent tag][ParentTag], returns the parent tag; otherwise, returns `null`.
122129
@Contract(pure = true)
123130
public @Nullable ParentTag<?> getParentTag() {
124-
return parent;
131+
return parent instanceof ParentTag<?> parentTag ? parentTag : null;
125132
}
126133

127134
public void writeTo(OutputStream outputStream) throws IOException {

0 commit comments

Comments
 (0)