# JAVA class translation 'COS_JRoom'
# Thu Jun 30 17:00:16 EDT 2005
# Produced by Fritzifier, based on JasminVisitor
# Using BCEL library to read Java bytecode
# Here is the original code:
#
# import java.util.Iterator;
#
# public class COS_JRoom extends COS_JNamed {
# private COS_JList content = new COS_JList();
# private COS_JList doors = new COS_JList();
#
# public COS_JList get() {
# return content;
# }
#
# public Iterator getDoors() {
# return doors.iterator();
# }
#
# public void addDoor(COS_JDoor door) {
# //System.out.println("add door -> " + getName());
# doors.add(door);
# }
#
# public void addThing(COS_JThing thing) {
# content.add(thing);
# }
#
# public void removeThing(COS_JThing thing) {
# content.remove(thing);
# }
# }
[hear] (class COS_JRoom ()
(field super-ref (make-cell 0))
(method new (set! (super-ref) ((COS_JNamed) / this)))
(method super (? x / (get! / super-ref) / x))
(method unknown (? x / self super / x))
(field content (cell new 0))
(field doors (cell new 0))
(method <init>-V
(lambda () /
let ((vars / cell new / make-hash / vector
(pair 0 (self)))
(stack / cell new / vector)) /
state-machine (vars) (stack) / ? jvm / ? x / cond
((= (x) 0) (jvm aload 0))
((= (x) 1) (jvm invokespecial <init>-V 0 0))
((= (x) 2) (jvm aload 0))
((= (x) 3) (jvm new (COS_JList)))
((= (x) 4) (jvm dup))
((= (x) 5) (jvm invokespecial <init>-V 0 0))
((= (x) 6) (jvm putfield content (COS_JList)))
((= (x) 7) (jvm aload 0))
((= (x) 8) (jvm new (COS_JList)))
((= (x) 9) (jvm dup))
((= (x) 10) (jvm invokespecial <init>-V 0 0))
((= (x) 11) (jvm putfield doors (COS_JList)))
((= (x) 12) (jvm return))
(jvm return))
)
(method <init> (self <init>-V))
(method get-COS_JList
(lambda () /
let ((vars / cell new / make-hash / vector
(pair 0 (self)))
(stack / cell new / vector)) /
state-machine (vars) (stack) / ? jvm / ? x / cond
((= (x) 0) (jvm aload 0))
((= (x) 1) (jvm getfield content (COS_JList)))
((= (x) 2) (jvm areturn))
(jvm return))
)
(method get (self get-COS_JList))
(method getDoors-Iterator
(lambda () /
let ((vars / cell new / make-hash / vector
(pair 0 (self)))
(stack / cell new / vector)) /
state-machine (vars) (stack) / ? jvm / ? x / cond
((= (x) 0) (jvm aload 0))
((= (x) 1) (jvm getfield doors (COS_JList)))
((= (x) 2) (jvm invokevirtual iterator-Iterator 0 1))
((= (x) 3) (jvm areturn))
(jvm return))
)
(method getDoors (self getDoors-Iterator))
(method addDoor-COS_JDoor-V
(lambda (arg0) /
let ((vars / cell new / make-hash / vector
(pair 0 (self)) (pair 1 (arg0)))
(stack / cell new / vector)) /
state-machine (vars) (stack) / ? jvm / ? x / cond
((= (x) 0) (jvm aload 0))
((= (x) 1) (jvm getfield doors (COS_JList)))
((= (x) 2) (jvm aload 1))
((= (x) 3) (jvm invokevirtual add-Object-V 1 0))
((= (x) 4) (jvm return))
(jvm return))
)
(method addDoor (self addDoor-COS_JDoor-V))
(method addThing-COS_JThing-V
(lambda (arg0) /
let ((vars / cell new / make-hash / vector
(pair 0 (self)) (pair 1 (arg0)))
(stack / cell new / vector)) /
state-machine (vars) (stack) / ? jvm / ? x / cond
((= (x) 0) (jvm aload 0))
((= (x) 1) (jvm getfield content (COS_JList)))
((= (x) 2) (jvm aload 1))
((= (x) 3) (jvm invokevirtual add-Object-V 1 0))
((= (x) 4) (jvm return))
(jvm return))
)
(method addThing (self addThing-COS_JThing-V))
(method removeThing-COS_JThing-V
(lambda (arg0) /
let ((vars / cell new / make-hash / vector
(pair 0 (self)) (pair 1 (arg0)))
(stack / cell new / vector)) /
state-machine (vars) (stack) / ? jvm / ? x / cond
((= (x) 0) (jvm aload 0))
((= (x) 1) (jvm getfield content (COS_JList)))
((= (x) 2) (jvm aload 1))
((= (x) 3) (jvm invokevirtual remove-Object-Z 1 1))
((= (x) 4) (jvm pop))
((= (x) 5) (jvm return))
(jvm return))
)
(method removeThing (self removeThing-COS_JThing-V))
);