Skip to content

Commit 65b4413

Browse files
committed
Java: Implement interface PositionInfo if positions is generated
Fix kaitai-io/kaitai_struct_java_runtime#27
1 parent a0ec4b2 commit 65b4413

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

shared/src/main/scala/io/kaitai/struct/languages/JavaCompiler.scala

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,22 @@ class JavaCompiler(typeProvider: ClassTypeProvider, config: RuntimeConfig)
7272
""
7373
}
7474

75-
out.puts(s"public ${staticStr}class ${type2class(name)} extends $kstructName {")
75+
val iface = if (config.readStoresPos) {
76+
"implements PositionInfo "
77+
} else {
78+
""
79+
}
80+
81+
out.puts(s"public ${staticStr}class ${type2class(name)} extends $kstructName $iface{")
7682
out.inc
7783

7884
if (config.readStoresPos) {
7985
out.puts("public final Map<String, Span> _spans = new HashMap<String, Span>();")
86+
out.puts("@Override")
87+
out.puts("public final Map<String, Span> _spans() { return this._spans; }")
8088
out.puts
8189

90+
importList.add("io.kaitai.struct.PositionInfo")
8291
importList.add("io.kaitai.struct.Span")
8392
importList.add("java.util.ArrayList")
8493
importList.add("java.util.HashMap")

0 commit comments

Comments
 (0)