# 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))
        );