00001 package de.fub.bytecode.generic; 00002 00003 /** 00004 * IFNE - Branch if int comparison with zero succeeds 00005 * 00006 * <PRE>Stack: ..., value -> ...</PRE> 00007 * 00008 * @version $Id: IFNE.java,v 1.1.1.1 2002/01/24 03:41:40 pserver Exp $ 00009 * @author <A HREF="http://www.inf.fu-berlin.de/~dahm">M. Dahm</A> 00010 */ 00011 public class IFNE extends IfInstruction { 00012 /** 00013 * Empty constructor needed for the Class.newInstance() statement in 00014 * Instruction.readInstruction(). Not to be used otherwise. 00015 */ 00016 IFNE() {} 00017 public IFNE(InstructionHandle target) { 00018 super(de.fub.bytecode.Constants.IFNE, target); 00019 } 00020 /** 00021 * Call corresponding visitor method(s). The order is: 00022 * Call visitor methods of implemented interfaces first, then 00023 * call methods according to the class hierarchy in descending order, 00024 * i.e., the most specific visitXXX() call comes last. 00025 * 00026 * @param v Visitor object 00027 */ 00028 public void accept(Visitor v) { 00029 v.visitStackConsumer(this); 00030 v.visitInstructionTargeter(this); 00031 v.visitBranchInstruction(this); 00032 v.visitIfInstruction(this); 00033 v.visitIFNE(this); 00034 } 00035 /** 00036 * @return negation of instruction 00037 */ 00038 public IfInstruction negate() { 00039 return new IFEQ(target); 00040 } 00041 }