public void invokeTaglib ( final IJRubyContext rcon , JellyContext context , XMLOutput output , String uri , String localName , Map < RubySymbol , ? > attributes , final RubyProc proc ) throws JellyException { TagScript tagScript = createTagScript ( context , uri , localName ) ; if ( attributes != null ) { for ( Entry < RubySymbol , ? > e : attributes . entrySet ( ) ) { tagScript . addAttribute ( e . getKey ( ) . asJavaString ( ) , new ConstantExpression ( e . getValue ( ) ) ) ; } } if ( proc != null ) { final Ruby runtime = ( ( IRubyObject ) rcon ) . getRuntime ( ) ; tagScript . setTagBody ( new Script ( ) { public Script compile ( ) throws JellyException { return this ; } public void run ( JellyContext context , XMLOutput output ) throws JellyTagException { JellyContext oc = rcon . getJellyContext ( ) ; XMLOutput oo = rcon . getOutput ( ) ; try { rcon . setJellyContext ( context ) ; rcon . setOutput ( output ) ; proc . getBlock ( ) . yield ( runtime . getCurrentContext ( ) , null ) ; } finally { rcon . setJellyContext ( oc ) ; rcon . setOutput ( oo ) ; } } } ) ; } tagScript . run ( context , output ) ; }
Invokes other Jelly tag libraries .