code: @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;
      }
docs: Invoked only when applications are having pipe io operations.