docs: private static Constructor retrieveCollectionProxyConstructor(Class proxyClass, Class baseType, String typeDesc)
      {
          if(proxyClass == null)
          {
              throw new MetadataException("No " + typeDesc + " specified.");
          }
          if(proxyClass.isInterface() || Modifier.isAbstract(proxyClass.getModifiers()) || !baseType.isAssignableFrom(proxyClass))
          {
              throw new MetadataException("Illegal class "
                      + proxyClass.getName()
                      + " specified for "
                      + typeDesc
                      + ". Must be a concrete subclass of "
                      + baseType.getName());
          }
  
          Class[] paramType = {PBKey.class, Class.class, Query.class};
  
          try
          {
              return proxyClass.getConstructor(paramType);
          }
          catch(NoSuchMethodException ex)
          {
              throw new MetadataException("The class "
                      + proxyClass.getName()
                      + " specified for "
                      + typeDesc
                      + " is required to have a public constructor with signature ("
                      + PBKey.class.getName()
                      + ", "
                      + Class.class.getName()
                      + ", "
                      + Query.class.getName()
                      + ").");
          }
      }