function getReturnedTypes()
 {
     $classes = array();
     if ($this->noun == 'RESTRoot') {
         $classes = RESTRoot::get_registered();
     } else {
         foreach ($this->methodBlocks as $name => $block) {
             $return = $block['return']['details'];
             $words = explode(' ', $return);
             $type = count($words) ? $words[0] : '';
             $name = preg_replace('/^get([A-Z])/', '$1', $name);
             if ($name == 'Items') {
                 $name = "{id}";
             }
             $type = preg_replace('/^\\[([^\\]]+)\\]$/', '$1', $type);
             if ($type && ClassInfo::is_subclass_of($type, 'RESTNoun')) {
                 $classes[$name] = $type;
             }
         }
     }
     // Build a new class inspector for each
     $res = new ArrayList();
     foreach ($classes as $func => $class) {
         $inspect = new RESTDocGenerator_NestingInspector($class, $this, $func);
         $res->push($inspect);
     }
     return $res;
 }
 function tearDown()
 {
     RESTRoot::unregister('Foo');
     parent::tearDown();
 }