Class JsonDataBinder

  • All Implemented Interfaces:
    org.dd4t.core.databind.DataBinder

    public class JsonDataBinder
    extends BaseDataBinder
    implements org.dd4t.core.databind.DataBinder
    Since:
    17/11/14.
    Author:
    R. Kempees
    • Constructor Detail

      • JsonDataBinder

        public JsonDataBinder()
    • Method Detail

      • buildPage

        public <T extends org.dd4t.contentmodel.Page> T buildPage​(String source,
                                                                  Class<T> aClass)
                                                           throws org.dd4t.core.exceptions.SerializationException
        Specified by:
        buildPage in interface org.dd4t.core.databind.DataBinder
        Throws:
        org.dd4t.core.exceptions.SerializationException
      • buildComponentPresentation

        public <T extends org.dd4t.contentmodel.ComponentPresentation> T buildComponentPresentation​(String source,
                                                                                                    Class<T> componentPresentationClass)
                                                                                             throws org.dd4t.core.exceptions.SerializationException
        Specified by:
        buildComponentPresentation in interface org.dd4t.core.databind.DataBinder
        Throws:
        org.dd4t.core.exceptions.SerializationException
      • buildDynamicComponentPresentation

        public org.dd4t.contentmodel.ComponentPresentation buildDynamicComponentPresentation​(org.dd4t.contentmodel.ComponentPresentation componentPresentation,
                                                                                             Class<? extends org.dd4t.contentmodel.Component> aClass)
                                                                                      throws org.dd4t.core.exceptions.SerializationException
        Specified by:
        buildDynamicComponentPresentation in interface org.dd4t.core.databind.DataBinder
        Throws:
        org.dd4t.core.exceptions.SerializationException
      • buildComponent

        public <T extends org.dd4t.contentmodel.Component> T buildComponent​(Object source,
                                                                            Class<T> aClass)
                                                                     throws org.dd4t.core.exceptions.SerializationException
        Specified by:
        buildComponent in interface org.dd4t.core.databind.DataBinder
        Throws:
        org.dd4t.core.exceptions.SerializationException
      • buildModels

        public Map<String,​org.dd4t.core.databind.BaseViewModel> buildModels​(Object source,
                                                                                  Set<String> modelNames,
                                                                                  String templateUri)
                                                                           throws org.dd4t.core.exceptions.SerializationException
        Specified by:
        buildModels in interface org.dd4t.core.databind.DataBinder
        Throws:
        org.dd4t.core.exceptions.SerializationException
      • buildModel

        public <T extends org.dd4t.core.databind.BaseViewModel> T buildModel​(Object source,
                                                                             String modelName,
                                                                             String templateUri)
                                                                      throws org.dd4t.core.exceptions.SerializationException
        Specified by:
        buildModel in interface org.dd4t.core.databind.DataBinder
        Type Parameters:
        T - Any mode deriving from BaseViewModel
        Parameters:
        source - the source object. In this case a JsonNode
        modelName - the viewModel name set on the CT
        templateUri - the CT URI. Just to set it on the model
        Returns:
        A concrete instance of the view model.
        Throws:
        org.dd4t.core.exceptions.SerializationException
      • buildModel

        public <T extends org.dd4t.core.databind.BaseViewModel> T buildModel​(Object source,
                                                                             Class modelClass,
                                                                             String templateUri)
                                                                      throws org.dd4t.core.exceptions.SerializationException
        Specified by:
        buildModel in interface org.dd4t.core.databind.DataBinder
        Throws:
        org.dd4t.core.exceptions.SerializationException
      • getGenericMapper

        public static com.fasterxml.jackson.databind.ObjectMapper getGenericMapper()
      • configureMapper

        protected void configureMapper()
      • findComponentTemplateViewName

        public String findComponentTemplateViewName​(org.dd4t.contentmodel.ComponentTemplate template)
                                             throws IOException
        Specified by:
        findComponentTemplateViewName in interface org.dd4t.core.databind.DataBinder
        Throws:
        IOException
      • getRootElementName

        public String getRootElementName​(Object componentNode)
        Specified by:
        getRootElementName in interface org.dd4t.core.databind.DataBinder
      • canDeserialize

        public boolean canDeserialize​(String source)
        To-Do: implement sanity checking that we're given json
        Specified by:
        canDeserialize in interface org.dd4t.core.databind.DataBinder