summaryrefslogtreecommitdiffstats
path: root/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java')
-rw-r--r--src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java39
1 files changed, 33 insertions, 6 deletions
diff --git a/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java b/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
index 2b60f7e..95321e5 100644
--- a/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
+++ b/src/org/jetbrains/java/decompiler/main/collectors/BytecodeMappingTracer.java
@@ -1,26 +1,53 @@
package org.jetbrains.java.decompiler.main.collectors;
import java.util.HashMap;
+import java.util.Set;
public class BytecodeMappingTracer {
private int current_sourceline;
-
+
// bytecode offset, source line
- private HashMap<Integer, Integer> mapping;
-
+ private HashMap<Integer, Integer> mapping = new HashMap<Integer, Integer>();
+
+ public BytecodeMappingTracer() {}
+
+ public BytecodeMappingTracer(int initial_source_line) {
+ current_sourceline = initial_source_line;
+ }
+
public void incrementSourceLine() {
current_sourceline++;
}
-
+
+ public void incrementSourceLine(int number_lines) {
+ current_sourceline += number_lines;
+ }
+
public void addMapping(int bytecode_offset) {
if(!mapping.containsKey(bytecode_offset)) {
mapping.put(bytecode_offset, current_sourceline);
}
}
+ public void addMapping(Set<Integer> bytecode_offsets) {
+ if(bytecode_offsets != null) {
+ for(Integer bytecode_offset : bytecode_offsets) {
+ addMapping(bytecode_offset);
+ }
+ }
+ }
+
public HashMap<Integer, Integer> getMapping() {
return mapping;
- }
-
+ }
+
+ public int getCurrentSourceline() {
+ return current_sourceline;
+ }
+
+ public void setCurrentSourceline(int current_sourceline) {
+ this.current_sourceline = current_sourceline;
+ }
+
}