Class FormDataOutputMapperGenerator


  • public final class FormDataOutputMapperGenerator
    extends Object
    • Method Detail

      • isReturnTypeCompatible

        public static boolean isReturnTypeCompatible​(org.jboss.jandex.ClassInfo returnTypeClassInfo,
                                                     org.jboss.jandex.IndexView index)
        Returns true whether the returning type uses either RestForm or FormData annotations.
      • generate

        public static String generate​(org.jboss.jandex.ClassInfo returnTypeClassInfo,
                                      io.quarkus.gizmo.ClassOutput classOutput,
                                      org.jboss.jandex.IndexView index)
        Generates a class that map a Pojo into PartItem that is then used by MultipartMessageBodyWriter.

        For example for a pojo like:

         public class FormData {
        
             @RestForm
             @PartType(MediaType.TEXT_PLAIN)
             private String text;
        
             @RestForm
             @PartType(MediaType.APPLICATION_OCTET_STREAM)
             public File file;
        
             public String getText() {
                 return text;
             }
        
             public void setText(String text) {
                 this.text = text;
             }
        
             public File getFile() {
                 return file;
             }
        
             public void setFile(File file) {
                 this.file = file;
             }
         }
         

        The generated mapper would look like:

         public class FormData_generated_mapper implements MultipartOutputInjectionTarget {
        
             public MultipartFormDataOutput mapFrom(Object var1) {
                 MultipartFormDataOutput var2 = new MultipartFormDataOutput();
                 FormData var4 = (FormData) var1;
                 File var3 = var4.data;
                 var2.addFormData("file", var3, "application/octet-stream");
                 File var5 = var4.text;
                 var2.addFormData("text", var5, "text/plain");
                 return var2;
             }
         }