@ SuppressWarnings ( "unchecked" ) static < T > Pipe . Schema < T > resolvePipeSchema ( Schema < T > schema , Class < ? super T > clazz , boolean throwIfNone ) { if ( Message . class . isAssignableFrom ( clazz ) ) { try { // use the pipe schema of code-generated messages if available. java . lang . reflect . Method m = clazz . getDeclaredMethod ( "getPipeSchema" , new Class [ ] { } ) ; return ( Pipe . Schema < T > ) m . invoke ( null , new Object [ ] { } ) ; } catch ( Exception e ) { // ignore } } if ( MappedSchema . class . isAssignableFrom ( schema . getClass ( ) ) ) return ( ( MappedSchema < T > ) schema ) . pipeSchema ; if ( throwIfNone ) throw new RuntimeException ( "No pipe schema for: " + clazz ) ; return null ; }
Invoked only when applications are having pipe io operations .