jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java Tue Aug 08 22:52:41 2017 +0000
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java Sun Aug 13 21:10:40 2017 -0700
@@ -21,80 +21,96 @@
package com.sun.org.apache.bcel.internal.generic;
-
-import com.sun.org.apache.bcel.internal.classfile.*;
+import com.sun.org.apache.bcel.internal.classfile.LineNumber;
/**
* This class represents a line number within a method, i.e., give an instruction
* a line number corresponding to the source code line.
*
- * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
+ * @version $Id: LineNumberGen.java 1749603 2016-06-21 20:50:19Z ggregory $
* @see LineNumber
* @see MethodGen
*/
-public class LineNumberGen
- implements InstructionTargeter, Cloneable, java.io.Serializable
-{
- private InstructionHandle ih;
- private int src_line;
+public class LineNumberGen implements InstructionTargeter, Cloneable {
+
+ private InstructionHandle ih;
+ private int src_line;
+
+
+ /**
+ * Create a line number.
+ *
+ * @param ih instruction handle to reference
+ */
+ public LineNumberGen(final InstructionHandle ih, final int src_line) {
+ setInstruction(ih);
+ setSourceLine(src_line);
+ }
+
- /**
- * Create a line number.
- *
- * @param ih instruction handle to reference
- */
- public LineNumberGen(InstructionHandle ih, int src_line) {
- setInstruction(ih);
- setSourceLine(src_line);
- }
+ /**
+ * @return true, if ih is target of this line number
+ */
+ @Override
+ public boolean containsTarget( final InstructionHandle ih ) {
+ return this.ih == ih;
+ }
+
- /**
- * @return true, if ih is target of this line number
- */
- @Override
- public boolean containsTarget(InstructionHandle ih) {
- return this.ih == ih;
- }
+ /**
+ * @param old_ih old target
+ * @param new_ih new target
+ */
+ @Override
+ public void updateTarget( final InstructionHandle old_ih, final InstructionHandle new_ih ) {
+ if (old_ih != ih) {
+ throw new ClassGenException("Not targeting " + old_ih + ", but " + ih + "}");
+ }
+ setInstruction(new_ih);
+ }
+
- /**
- * @param old_ih old target
- * @param new_ih new target
- */
- @Override
- public void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih) {
- if(old_ih != ih)
- throw new ClassGenException("Not targeting " + old_ih + ", but " + ih + "}");
- else
- setInstruction(new_ih);
- }
+ /**
+ * Get LineNumber attribute .
+ *
+ * This relies on that the instruction list has already been dumped to byte code or
+ * or that the `setPositions' methods has been called for the instruction list.
+ */
+ public LineNumber getLineNumber() {
+ return new LineNumber(ih.getPosition(), src_line);
+ }
+
+
+ public void setInstruction( final InstructionHandle ih ) { // TODO could be package-protected?
+ if (ih == null) {
+ throw new NullPointerException("InstructionHandle may not be null");
+ }
+ BranchInstruction.notifyTarget(this.ih, ih, this);
+ this.ih = ih;
+ }
+
- /**
- * Get LineNumber attribute .
- *
- * This relies on that the instruction list has already been dumped to byte code or
- * or that the `setPositions' methods has been called for the instruction list.
- */
- public LineNumber getLineNumber() {
- return new LineNumber(ih.getPosition(), src_line);
- }
+ @Override
+ public Object clone() {
+ try {
+ return super.clone();
+ } catch (final CloneNotSupportedException e) {
+ throw new Error("Clone Not Supported"); // never happens
+ }
+ }
+
- public final void setInstruction(InstructionHandle ih) {
- BranchInstruction.notifyTargetChanging(this.ih, this);
- this.ih = ih;
- BranchInstruction.notifyTargetChanged(this.ih, this);
- }
+ public InstructionHandle getInstruction() {
+ return ih;
+ }
+
- @Override
- public Object clone() {
- try {
- return super.clone();
- } catch(CloneNotSupportedException e) {
- System.err.println(e);
- return null;
+ public void setSourceLine( final int src_line ) { // TODO could be package-protected?
+ this.src_line = src_line;
}
- }
+
- public InstructionHandle getInstruction() { return ih; }
- public void setSourceLine(int src_line) { this.src_line = src_line; }
- public int getSourceLine() { return src_line; }
+ public int getSourceLine() {
+ return src_line;
+ }
}