Class GsonDataFormat

  • All Implemented Interfaces:
    AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.DataFormat, org.apache.camel.spi.DataFormatContentTypeHeader, org.apache.camel.spi.DataFormatName, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

    @Dataformat("json-gson")
    @Metadata(includeProperties="unmarshalTypeName,prettyPrint,contentTypeHeader")
    public class GsonDataFormat
    extends org.apache.camel.support.service.ServiceSupport
    implements org.apache.camel.spi.DataFormat, org.apache.camel.spi.DataFormatName, org.apache.camel.spi.DataFormatContentTypeHeader, org.apache.camel.CamelContextAware
    Marshal POJOs to JSON and back using Gson
    • Constructor Detail

      • GsonDataFormat

        public GsonDataFormat()
      • GsonDataFormat

        public GsonDataFormat​(Class<?> unmarshalType)
        Use the default Gson Gson and with a custom unmarshal type
        Parameters:
        unmarshalType - the custom unmarshal type
      • GsonDataFormat

        @Deprecated
        public GsonDataFormat​(Class<?> unmarshalType,
                              com.google.gson.ExclusionStrategy... exclusionStrategies)
        Deprecated.
        use the setter instead
        Use the default Gson Gson and with a custom unmarshal type and ExclusionStrategy
        Parameters:
        unmarshalType - the custom unmarshal type
        exclusionStrategies - one or more custom ExclusionStrategy implementations
      • GsonDataFormat

        public GsonDataFormat​(com.google.gson.Gson gson,
                              Class<?> unmarshalType)
        Use a custom Gson mapper and and unmarshal type
        Parameters:
        gson - the custom mapper
        unmarshalType - the custom unmarshal type
      • GsonDataFormat

        public GsonDataFormat​(Type unmarshalGenericType)
        Use the default Gson Gson and with a custom unmarshal generic type
        Parameters:
        unmarshalGenericType - the custom unmarshal generic type
      • GsonDataFormat

        public GsonDataFormat​(com.google.gson.Gson gson,
                              Type unmarshalGenericType)
        Use a custom Gson mapper and and unmarshal token type
        Parameters:
        gson - the custom mapper
        unmarshalGenericType - the custom unmarshal generic type
    • Method Detail

      • getCamelContext

        public org.apache.camel.CamelContext getCamelContext()
        Specified by:
        getCamelContext in interface org.apache.camel.CamelContextAware
      • setCamelContext

        public void setCamelContext​(org.apache.camel.CamelContext camelContext)
        Specified by:
        setCamelContext in interface org.apache.camel.CamelContextAware
      • getDataFormatName

        public String getDataFormatName()
        Specified by:
        getDataFormatName in interface org.apache.camel.spi.DataFormatName
      • marshal

        public void marshal​(org.apache.camel.Exchange exchange,
                            Object graph,
                            OutputStream stream)
                     throws Exception
        Specified by:
        marshal in interface org.apache.camel.spi.DataFormat
        Throws:
        Exception
      • unmarshal

        public Object unmarshal​(org.apache.camel.Exchange exchange,
                                InputStream stream)
                         throws Exception
        Specified by:
        unmarshal in interface org.apache.camel.spi.DataFormat
        Throws:
        Exception
      • doInit

        protected void doInit()
                       throws Exception
        Overrides:
        doInit in class org.apache.camel.support.service.BaseService
        Throws:
        Exception
      • doStart

        protected void doStart()
                        throws Exception
        Overrides:
        doStart in class org.apache.camel.support.service.BaseService
        Throws:
        Exception
      • doStop

        protected void doStop()
                       throws Exception
        Overrides:
        doStop in class org.apache.camel.support.service.BaseService
        Throws:
        Exception
      • getUnmarshalType

        public Class<?> getUnmarshalType()
      • setUnmarshalType

        public void setUnmarshalType​(Class<?> unmarshalType)
      • getUnmarshalTypeName

        public String getUnmarshalTypeName()
      • setUnmarshalTypeName

        public void setUnmarshalTypeName​(String unmarshalTypeName)
      • getUnmarshalGenericType

        public Type getUnmarshalGenericType()
      • setUnmarshalGenericType

        public void setUnmarshalGenericType​(Type unmarshalGenericType)
      • getExclusionStrategies

        public List<com.google.gson.ExclusionStrategy> getExclusionStrategies()
      • setExclusionStrategies

        public void setExclusionStrategies​(List<com.google.gson.ExclusionStrategy> exclusionStrategies)
      • getLongSerializationPolicy

        public com.google.gson.LongSerializationPolicy getLongSerializationPolicy()
      • setLongSerializationPolicy

        public void setLongSerializationPolicy​(com.google.gson.LongSerializationPolicy longSerializationPolicy)
      • getFieldNamingPolicy

        public com.google.gson.FieldNamingPolicy getFieldNamingPolicy()
      • setFieldNamingPolicy

        public void setFieldNamingPolicy​(com.google.gson.FieldNamingPolicy fieldNamingPolicy)
      • getFieldNamingStrategy

        public com.google.gson.FieldNamingStrategy getFieldNamingStrategy()
      • setFieldNamingStrategy

        public void setFieldNamingStrategy​(com.google.gson.FieldNamingStrategy fieldNamingStrategy)
      • isSerializeNulls

        public boolean isSerializeNulls()
      • setSerializeNulls

        public void setSerializeNulls​(boolean serializeNulls)
      • isPrettyPrint

        public boolean isPrettyPrint()
      • setPrettyPrint

        public void setPrettyPrint​(boolean prettyPrint)
      • getDateFormatPattern

        public String getDateFormatPattern()
      • setDateFormatPattern

        public void setDateFormatPattern​(String dateFormatPattern)
      • isContentTypeHeader

        public boolean isContentTypeHeader()
      • setContentTypeHeader

        public void setContentTypeHeader​(boolean contentTypeHeader)
        If enabled then Gson will set the Content-Type header to application/json when marshalling.
        Specified by:
        setContentTypeHeader in interface org.apache.camel.spi.DataFormatContentTypeHeader
      • getGson

        public com.google.gson.Gson getGson()