Class TeamAppsJacksonTypeIdResolver

java.lang.Object
org.teamapps.dto.TeamAppsJacksonTypeIdResolver
All Implemented Interfaces:
com.fasterxml.jackson.databind.jsontype.TypeIdResolver

public class TeamAppsJacksonTypeIdResolver extends Object implements com.fasterxml.jackson.databind.jsontype.TypeIdResolver
This TypeIdResolver provides type ids for all TeamApps UI API classes. Additionally it also provides type ids for all classes that get serialized, so they can be deserialized in the future.

Ratio: Components are allowed to send and receive.

On the sending side, this enables app developers to send arbitrary data for templates. E.g., a MustacheTemplate might be filled using a list of deep json structures.

On the receiving side, this is technically not necessary, since all data that comes from UiComponents might be defined as UiObjects. However, component developers might decide to send back arbitrary object (in original or changed state) that were previously sent to the client. This approach is not recommended but possible. Since only classes that have ever been serialized can be deserialized, there is no security risk in technically allowing Object values (unless developers send security critical classes, which we regard as very unlikely).

  • Constructor Details

    • TeamAppsJacksonTypeIdResolver

      public TeamAppsJacksonTypeIdResolver()
  • Method Details

    • registerPojoClass

      public static String registerPojoClass(Class clazz)
    • init

      public void init(com.fasterxml.jackson.databind.JavaType baseType)
      Specified by:
      init in interface com.fasterxml.jackson.databind.jsontype.TypeIdResolver
    • getMechanism

      public com.fasterxml.jackson.annotation.JsonTypeInfo.Id getMechanism()
      Specified by:
      getMechanism in interface com.fasterxml.jackson.databind.jsontype.TypeIdResolver
    • idFromClass

      public String idFromClass(Class clazz)
    • idFromValue

      public String idFromValue(Object obj)
      Specified by:
      idFromValue in interface com.fasterxml.jackson.databind.jsontype.TypeIdResolver
    • idFromValueAndType

      public String idFromValueAndType(Object obj, Class<?> clazz)
      Specified by:
      idFromValueAndType in interface com.fasterxml.jackson.databind.jsontype.TypeIdResolver
    • idFromBaseType

      public String idFromBaseType()
      Specified by:
      idFromBaseType in interface com.fasterxml.jackson.databind.jsontype.TypeIdResolver
    • typeFromId

      public com.fasterxml.jackson.databind.JavaType typeFromId(com.fasterxml.jackson.databind.DatabindContext context, String id)
      Specified by:
      typeFromId in interface com.fasterxml.jackson.databind.jsontype.TypeIdResolver
    • getDescForKnownTypeIds

      public String getDescForKnownTypeIds()
      Specified by:
      getDescForKnownTypeIds in interface com.fasterxml.jackson.databind.jsontype.TypeIdResolver