/**
  * Handles classes
  *
  * @param   lang.XPClass class
  */
 protected static function printClass(XPClass $class)
 {
     Console::write(implode(' ', Modifiers::namesOf($class->getModifiers())));
     Console::write(' class ', self::displayNameOf($class));
     if ($parent = $class->getParentClass()) {
         Console::write(' extends ', self::displayNameOf($parent));
     }
     if ($interfaces = $class->getDeclaredInterfaces()) {
         Console::write(' implements ');
         $s = sizeof($interfaces) - 1;
         foreach ($interfaces as $i => $iface) {
             Console::write(self::displayNameOf($iface));
             $i < $s && Console::write(', ');
         }
     }
     // Constants
     Console::writeLine(' {');
     $i = 0;
     foreach ($class->getConstants() as $name => $value) {
         Console::writeLine('  const ', $name, ' = ', \xp::stringOf($value));
         $i++;
     }
     // Fields
     $i && Console::writeLine();
     $i = 0;
     foreach ($class->getFields() as $field) {
         Console::writeLine('  ', $field);
         $i++;
     }
     // Constructor
     $i && Console::writeLine();
     $i = 0;
     if ($class->hasConstructor()) {
         Console::writeLine('  ', $class->getConstructor());
         $i++;
     }
     // Methods
     $i && Console::writeLine();
     self::printMethods($class->getMethods());
     Console::writeLine('}');
 }