import java.util.Stack;

public class Example1 extends CustomClass 
{
	
	String s1="A";
	String s2="B";
	String s3="AB";
	String s4="A"+"B";
	
	FrameworkInterface parent=null;
	Stack returnline = new Stack();
	public void setParent(FrameworkInterface parent) 
	{
		this.parent = parent;
		String lines[]= new String[16];
		
		
		lines[0] ="	public class Class1";
		lines[1] ="	{";
		lines[2] ="	public static void main (String[] args)";
		lines[3] ="	{";
		lines[4] ="		String s1 = \"A\";";
		lines[5] ="		String s2 = \"B\";";
		lines[6] ="		String s3 = \"AB\";";
		lines[7] ="		String s4 = \"A\"+\"B\";";
		lines[8] ="		";
		lines[9] ="		System.out.println(\"s1+s2=\"+(s1+s2));";
		lines[10] ="		System.out.println(\"s3==s1+s2? \"+(s3==(s1+s2)));";
		lines[11] ="		System.out.println(\"s3.equals(s1+s2)?\" + s3.equals(s1+s2));";
		lines[12] ="		System.out.println(\"s3==s4? \"+(s3==s4));";
		lines[13] ="		";
		lines[14] ="	}";
		lines[15] ="}";
		

		parent.setText(lines);
	}

	public int executeLine(int line) 
	{
		switch (line) 
		{
		case -1:
			parent.changeAct("Recusive Factorial Demo");
			parent.resetAct();
			parent.resetVar();
			parent.fCall("Class1","main",-1);
			return 2;

		case 2:
			parent.changeAct("Initialize Variables...");
			return 4;

		case 4:
			parent.changeLocalVar("s1","A");
			return 5;
		
		case 5:
			parent.changeLocalVar("s2","B");
			return 6;
		
		case 6:
			parent.changeLocalVar("s3","AB");
			return 7;
		
		case 7:
			parent.changeLocalVar("s4","AB");
			return 9;
		
		case 9:
			parent.addText("s1+s2="+(s1+s2));
			parent.changeAct("Show s1+s2");
			return 10;
						   
		case 10:
			parent.addText("s3==s1+s2? "+(s3==(s1+s2)));
			parent.changeAct("Compare with s3\nSame content but different objects!");
			return 11;
		
		case 11:
			parent.addText("s3.equals(s1+s2)?" + s3.equals(s1+s2));
			parent.changeAct("We must use the equals to compare String objects contents.");
			return 12;
		
		case 12:
			parent.addText("s3==s4? "+(s3==s4));
			parent.changeAct("If the compiler is smart, it will replace \"A\"+\"B\" \nby \"AB\" and use the some reference for the two \nvariables, so they are the same object!.");
			return 13;
		}
		return -1;
	}
}





