00001 package de.fub.bytecode.generic; 00002 00003 /** 00004 * IF_ICMPNE - Branch if int comparison doesn't succeed 00005 * 00006 * <PRE>Stack: ..., value1, value2 -> ...</PRE> 00007 * 00008 * @version $Id: IF_ICMPNE.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 IF_ICMPNE extends IfInstruction { 00012 /** 00013 * Empty constructor needed for the Class.newInstance() statement in 00014 * Instruction.readInstruction(). Not to be used otherwise. 00015 */ 00016 IF_ICMPNE() {} 00017 public IF_ICMPNE(InstructionHandle target) { 00018 super(de.fub.bytecode.Constants.IF_ICMPNE, 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.visitIF_ICMPNE(this); 00034 } 00035 /** 00036 * @return negation of instruction 00037 */ 00038 public IfInstruction negate() { 00039 return new IF_ICMPEQ(target); 00040 } 00041 }