} } class Collections { public static function sort(GenericList $list, $func = null) { if (empty($func)) { return sort($list->toArray()); } else { return usort($list->toArray(), $func); } } public static function unmodifiableCollection(Collection $c) { return new UnmodifiableCollection($c); } public static function unmodifiableList(GenericList $l) { return new UnmodifiableList($l); } public static function unmodifiableSet(Set $s) { return new UnmodifiableSet($s); } public static function unmodifiableMap(Map $m) { return new UnmodifiableMap($m); } } Classes::registerAlias('List', Classes::classOf('GenericList'));
Classes::register('double', new JavaPrimitiveClazz(Double::TYPE, Double::SIGNATURE)); Classes::register('void', new JavaPrimitiveClazz(Void::TYPE, Void::SIGNATURE)); $objClass = Classes::classOf('Object'); Classes::register('Boolean', new JavaClazz('Boolean', $objClass)); Classes::register('Byte', new JavaClazz('Byte', $objClass)); Classes::register('Long', new JavaClazz('Long', $objClass)); Classes::register('Short', new JavaClazz('Short', $objClass)); Classes::register('Integer', new JavaClazz('Integer', $objClass)); Classes::register('Character', new JavaClazz('Character', $objClass)); Classes::register('String', new JavaClazz('String', $objClass)); Classes::register('Float', new JavaClazz('Float', $objClass)); Classes::register('Double', new JavaClazz('Double', $objClass)); Classes::register('Void', new JavaClazz('Void', $objClass)); // Aliases Classes::registerAlias('string', String::clazz()); Classes::registerAlias('bool', Boolean::typeClass()); // Signatures Classes::registerSignature(Boolean::SIGNATURE, Boolean::typeClass()); Classes::registerSignature(Byte::SIGNATURE, Byte::typeClass()); Classes::registerSignature(Character::SIGNATURE, Character::typeClass()); Classes::registerSignature(Double::SIGNATURE, Double::typeClass()); Classes::registerSignature(Float::SIGNATURE, Float::typeClass()); Classes::registerSignature(Integer::SIGNATURE, Integer::typeClass()); Classes::registerSignature(Long::SIGNATURE, Long::typeClass()); Classes::registerSignature(Short::SIGNATURE, Short::typeClass()); // Assignable From Long::typeClass()->registerAssignableFrom(array(Double::typeClass(), Integer::typeClass(), Character::typeClass(), Short::typeClass(), Byte::typeClass())); Integer::typeClass()->registerAssignableFrom(array(Character::typeClass(), Short::typeClass(), Byte::typeClass())); Character::typeClass()->registerAssignableFrom(array(Integer::typeClass(), Short::typeClass(), Byte::typeClass())); Short::typeClass()->registerAssignableFrom(array(Integer::typeClass(), Byte::typeClass())); Byte::typeClass()->registerAssignableFrom(array(Integer::typeClass()));