/** * 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('}'); }