package test.condition;
import org.apache.log4j.Logger;
public class ConditionCalls {
/*
* See the note at FirstPassMethodInstrumenter.visitJumpInsn()
* regarding initialization of static variables. This next static
* is intended to cover that condition.
*/
public static String whatEver = null;
private static final Logger logger = Logger.getLogger(ConditionCalls.class);
public void call(int i) {
if (i >= 5) //set CALL_CONDITION_LINE_NUMBER to this line number
{
try {
logger.error("whatEver"); //set CALL_IGNORE_LINE_NUMBER to this line number
throw new RuntimeException();
} catch (Throwable t) {
//eat it
} finally {
System.out.println("true");
}
} else {
System.out.println("false");
}
}
public void callLookupSwitch(int branch) {
switch (branch) //set LOOKUP_SWITCH_LINE_NUMBER to this line number
{
case 1 :
System.out.println("1");
break;
case 5 :
System.out.println("5");
break;
default :
System.out.println("default");
break;
}
}
public String callTableSwitch(int branch) {
int[][] multiArray;
switch (branch) //set TABLE_SWITCH_LINE_NUMBER to this line number
{
case 0 :
return ("0");
case 1 :
return ("1");
case 2 :
return ("2");
case 3 :
return ("3");
case 4 :
return ("4");
case 5 :
return ("5");
case 6 :
return ("6");
case 7 :
return ("7");
case 8 :
return ("8");
default :
multiArray = new int[3][3];
return ("" + multiArray[1][1]);
}
}
public void callMultiCondition(int a, int b, int c) {
//The c++ is to get SecondPassMethodInstrumenter.visitIincInsn called.
if ((a == b) && (b >= 3) || (c++ < a)) //set MULTI_CONDITION_LINE_NUMBER to this line number
{
System.out.println("true");
}
}
public void callMultiCondition2(int a, int b, int c) {
if ((a == b) && (b >= utilEcho(3)) || (c < a)) //set MULTI_CONDITION2_LINE_NUMBER to this line number
{
System.out.println("true");
}
}
int utilEcho(int number) {
return number;
}
static {
whatEver = "whatEver";
}
;
public static final int CALL_CONDITION_LINE_NUMBER = 17;
public static final int CALL_IGNORE_LINE_NUMBER = 21;
public static final int LOOKUP_SWITCH_LINE_NUMBER = 39;
public static final int TABLE_SWITCH_LINE_NUMBER = 56;
public static final int MULTI_CONDITION_LINE_NUMBER = 74;
public static final int MULTI_CONDITION2_LINE_NUMBER = 82;
}