jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java
changeset 46174 5611d2529b49
parent 44797 8b3b3b911b8a
--- 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;
+    }
 }