1e80efa670f1027fdf3882a298216a460199e38d0Ben Gruverpackage org.jf.dexlib2.builder.instruction; 2e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver 3e80efa670f1027fdf3882a298216a460199e38d0Ben Gruverimport org.jf.dexlib2.builder.BuilderSwitchPayload; 4e80efa670f1027fdf3882a298216a460199e38d0Ben Gruverimport org.jf.dexlib2.builder.Label; 5e80efa670f1027fdf3882a298216a460199e38d0Ben Gruverimport org.jf.dexlib2.iface.instruction.SwitchElement; 6e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver 7e80efa670f1027fdf3882a298216a460199e38d0Ben Gruverimport javax.annotation.Nonnull; 8e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver 9e80efa670f1027fdf3882a298216a460199e38d0Ben Gruverpublic class BuilderSwitchElement implements SwitchElement { 10e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver @Nonnull BuilderSwitchPayload parent; 11e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver private final int key; 12e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver @Nonnull private final Label target; 13e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver 14e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver public BuilderSwitchElement(@Nonnull BuilderSwitchPayload parent, 15e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver int key, 16e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver @Nonnull Label target) { 17e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver this.parent = parent; 18e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver this.key = key; 19e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver this.target = target; 20e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver } 21e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver 22e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver @Override public int getKey() { 23e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver return key; 24e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver } 25e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver 26e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver @Override public int getOffset() { 279a2de93a998958e582e9c2aa0bff7de602cc8771Ben Gruver return target.getCodeAddress() - parent.getReferrer().getCodeAddress(); 28e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver } 29899b1e6611d260370aa81b9fb23684d2052e5f5fBen Gruver 30899b1e6611d260370aa81b9fb23684d2052e5f5fBen Gruver @Nonnull 31899b1e6611d260370aa81b9fb23684d2052e5f5fBen Gruver public Label getTarget() { 32899b1e6611d260370aa81b9fb23684d2052e5f5fBen Gruver return target; 33899b1e6611d260370aa81b9fb23684d2052e5f5fBen Gruver } 34e80efa670f1027fdf3882a298216a460199e38d0Ben Gruver} 35