< prev index next >

src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/LineNumberGen.java

Print this page

        

@@ -19,82 +19,98 @@
  * limitations under the License.
  */
 
 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
-{
+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(InstructionHandle ih, int src_line) {
+    public LineNumberGen(final InstructionHandle ih, final int src_line) {
     setInstruction(ih);
     setSourceLine(src_line);
   }
 
+
   /**
    * @return true, if ih is target of this line number
    */
   @Override
-  public boolean containsTarget(InstructionHandle ih) {
+    public boolean containsTarget( final InstructionHandle ih ) {
     return this.ih == 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)
+    public void updateTarget( final InstructionHandle old_ih, final 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 final void setInstruction(InstructionHandle ih) {
-    BranchInstruction.notifyTargetChanging(this.ih, this);
+
+    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;
-    BranchInstruction.notifyTargetChanged(this.ih, this);
   }
 
+
   @Override
   public Object clone() {
     try {
       return super.clone();
-    } catch(CloneNotSupportedException e) {
-      System.err.println(e);
-      return null;
+        } catch (final CloneNotSupportedException e) {
+            throw new Error("Clone Not Supported"); // never happens
     }
   }
 
-  public InstructionHandle getInstruction()               { return ih; }
-  public void              setSourceLine(int src_line)    { this.src_line = src_line; }
-  public int               getSourceLine()                { return src_line; }
+
+    public InstructionHandle getInstruction() {
+        return ih;
+    }
+
+
+    public void setSourceLine( final int src_line ) { // TODO could be package-protected?
+        this.src_line = src_line;
+    }
+
+
+    public int getSourceLine() {
+        return src_line;
+    }
 }
< prev index next >