You are on page 1of 2

5,t6

t al
r P
/
lf
vol2^L 2n lZ
-
*tnnunt$-
rt
&j6il,i^eu"
L,tA"v GSt_)
I
rlau
u/vul
2
f,bi*rJ
T4*',/,/
z s" d^
,"-l^l
,
4
ttl
htwt oobkfr
Ya6/w*(
6
) /raaflah(
q
lu r
q
rrro{'{,
&
4*,fr
paof{tuwttd
t^ uht//('\
it
*elra";
,*;tr atil"Av
D"
iuk^h,h
Ir
Weua(u
b
import
java.util.*;
import
junit.
fiamework.
*
;
class Flower
{
private boolean isOpen;
private OpenN oN -
new OpenN0;
private CloseN cN:
new CloseN0;
public Fiower0
{
isOpen: false;
}
public void open0
{isOpen:
true;
oN.not0;
cN.open0;)
public void close0
{
// Closes its petals
isOpen: false;
cN.not0;
oN.close0;
)
public V opening0
{
return oN;
}
public V closing0
{
return cN;
}
private class OpenN extends V
{
private boolean alreadyOpen
-
false;
public void not0
{
if(isOpen && lalreadyOpen)
{
setChanged0;
super.not0;
alreadyOpen: true;
lj
public void close0
{
alreadyOpen: false;
}
)
private class CloseN extends V{
private boolean alreadyClosed
:
false;
public void nofl
{
if(l isOpen &&
r.
aheadyClosed)
{
setChanged0;
super.notQ;
alreadyClosed: true;
----+:
public void open0
{
alreadyClosed: false;
jj
class Bee
{
private String name;
private OpenB openSrv:
new OpenB0;
private CloseB closeSrv
:
new CloseB0;
public Bee(String nm)
{
name - nm:
I
private class OpenB implements B{
public void up(V ob, Object a)
{
System.out.println("Bee "
+ name
*
"'s breakfast time!");)
l
private class CloseB implements B
{
public void up(V ob, Object a)
{
System.out.printtn("Bee "
+ name
f
"'s bed time!");
tt
public B openB0
{return
openSrv;
}
public B closeB0
{return
closeSrv;}
}
class Hummingbird
{
private String name;
private OpenB openSrv:
new OpenB0;
private CloseB closeSrv
:
new CloseB0;
public Hummingbird(String nm)
{
name: nm;
}
private ciass OpenB implements B
{
public void up(V ob, Object a)
{
System.out.println("Hummingbird "
-F
name
*
"'s breakfast time!"),
||
private class CloseB implements B
{
public void up (V ob, Object a)
{
System.out.println("Hummingbird " * name
*
"'s bed time!");
;;
public B openB0
{refum
openSrv;}
public B closeBQ
{
return closeSrv;
))
public class SFlower extends TestCase
{
Flowerf:newFlower0;
Bee
ba: new Bee("A"),
bb
:
new Bee("B");
Hummingbird
ha
:
new Hummingbird("A"),
hb
:
new Hummingbird("B");
public void test0
{
f. opening0. addB (ha. openB
0) ;
f. opening0. addB (hb. openB0)
;
f. openingQ. addB (ba.openB0)
;
f. opening0. addB (bb. openB
0) ;
f. closing0. addB (ha. closeB
0) ;
f. closing0. addB (hb. closeB0)
;
f. closing0. addB (ba. closeB0)
;
f. closing0. addB (bb. closeB
0) ;
f.opening0.deleteB(
hb.openB0);
f.open0;
f.open0;
f.closing0.deleteB( ba.closeB0);
f.close0;
f.close0;
f.openingQ.deleteBs0
;
f.open0;
f.close0;
)
public static void main(String argsfl)
{
junit.textui.TestRunner.run( SFlower. class)
; ) )
///'.-

You might also like