Class FormDataOutputMapperGenerator

java.lang.Object
org.jboss.resteasy.reactive.server.processor.generation.multipart.FormDataOutputMapperGenerator

public final class FormDataOutputMapperGenerator extends Object
  • Method Details

    • 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;
           }
       }