Class FormDataOutputMapperGenerator

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

public final class FormDataOutputMapperGenerator extends Object
  • Method Summary

    Modifier and Type
    Method
    Description
    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.
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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;
           }
       }