jaxp/src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/GOTO_W.java
changeset 46174 5611d2529b49
parent 44797 8b3b3b911b8a
equal deleted inserted replaced
46173:5546b5710844 46174:5611d2529b49
    19  * limitations under the License.
    19  * limitations under the License.
    20  */
    20  */
    21 
    21 
    22 package com.sun.org.apache.bcel.internal.generic;
    22 package com.sun.org.apache.bcel.internal.generic;
    23 
    23 
    24 import java.io.*;
    24 import java.io.DataOutputStream;
       
    25 import java.io.IOException;
       
    26 
    25 import com.sun.org.apache.bcel.internal.util.ByteSequence;
    27 import com.sun.org.apache.bcel.internal.util.ByteSequence;
    26 
    28 
    27 /**
    29 /**
    28  * GOTO_W - Branch always (to relative offset, not absolute address)
    30  * GOTO_W - Branch always (to relative offset, not absolute address)
    29  *
    31  *
    30  * @author  <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
    32  * @version $Id: GOTO_W.java 1747278 2016-06-07 17:28:43Z britter $
    31  */
    33  */
    32 public class GOTO_W extends GotoInstruction {
    34 public class GOTO_W extends GotoInstruction {
    33   /**
       
    34    * Empty constructor needed for the Class.newInstance() statement in
       
    35    * Instruction.readInstruction(). Not to be used otherwise.
       
    36    */
       
    37   GOTO_W() {}
       
    38 
    35 
    39   public GOTO_W(InstructionHandle target) {
    36     /**
    40     super(com.sun.org.apache.bcel.internal.Constants.GOTO_W, target);
    37      * Empty constructor needed for the Class.newInstance() statement in
    41     length = 5;
    38      * Instruction.readInstruction(). Not to be used otherwise.
    42   }
    39      */
       
    40     GOTO_W() {
       
    41     }
    43 
    42 
    44   /**
       
    45    * Dump instruction as byte code to stream out.
       
    46    * @param out Output stream
       
    47    */
       
    48   public void dump(DataOutputStream out) throws IOException {
       
    49     index = getTargetOffset();
       
    50     out.writeByte(opcode);
       
    51     out.writeInt(index);
       
    52   }
       
    53 
    43 
    54   /**
    44     public GOTO_W(final InstructionHandle target) {
    55    * Read needed data (e.g. index) from file.
    45         super(com.sun.org.apache.bcel.internal.Const.GOTO_W, target);
    56    */
    46         super.setLength(5);
    57   protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
    47     }
    58   {
       
    59     index  = bytes.readInt();
       
    60     length = 5;
       
    61   }
       
    62 
    48 
    63   /**
    49 
    64    * Call corresponding visitor method(s). The order is:
    50     /**
    65    * Call visitor methods of implemented interfaces first, then
    51      * Dump instruction as byte code to stream out.
    66    * call methods according to the class hierarchy in descending order,
    52      * @param out Output stream
    67    * i.e., the most specific visitXXX() call comes last.
    53      */
    68    *
    54     @Override
    69    * @param v Visitor object
    55     public void dump( final DataOutputStream out ) throws IOException {
    70    */
    56         super.setIndex(getTargetOffset());
    71   public void accept(Visitor v) {
    57         out.writeByte(super.getOpcode());
    72     v.visitUnconditionalBranch(this);
    58         out.writeInt(super.getIndex());
    73     v.visitBranchInstruction(this);
    59     }
    74     v.visitGotoInstruction(this);
    60 
    75     v.visitGOTO_W(this);
    61 
    76   }
    62     /**
       
    63      * Read needed data (e.g. index) from file.
       
    64      */
       
    65     @Override
       
    66     protected void initFromFile( final ByteSequence bytes, final boolean wide ) throws IOException {
       
    67         super.setIndex(bytes.readInt());
       
    68         super.setLength(5);
       
    69     }
       
    70 
       
    71 
       
    72     /**
       
    73      * Call corresponding visitor method(s). The order is:
       
    74      * Call visitor methods of implemented interfaces first, then
       
    75      * call methods according to the class hierarchy in descending order,
       
    76      * i.e., the most specific visitXXX() call comes last.
       
    77      *
       
    78      * @param v Visitor object
       
    79      */
       
    80     @Override
       
    81     public void accept( final Visitor v ) {
       
    82         v.visitUnconditionalBranch(this);
       
    83         v.visitBranchInstruction(this);
       
    84         v.visitGotoInstruction(this);
       
    85         v.visitGOTO_W(this);
       
    86     }
    77 }
    87 }