/** * Returns declaration * * @param lang.mirrors.TypeMirror $mirror * @return string */ protected static function declarationOf($mirror) { switch ($mirror->kind()) { case Kind::$ENUM: return $mirror->modifiers()->names() . ' enum ' . $mirror->name(); break; case Kind::$TRAIT: return 'public trait ' . $mirror->name(); break; case Kind::$INTERFACE: return 'public interface ' . $mirror->name(); break; case Kind::$CLASS: return $mirror->modifiers()->names() . ' class ' . $mirror->name(); break; default: throw new IllegalStateException('Unknown kind ' . $mirror->kind()->name()); } }
/** * Creates trait body * * @param lang.mirrors.TypeMirror $mirror * @return string */ protected function body($mirror) { return '/** @return lang.partial.InstanceCreation */ public static function with() { return \\lang\\partial\\InstanceCreation::of(new \\lang\\XPClass(\'' . strtr($mirror->name(), '.', '\\') . '\')); }'; }