< 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 >