Interface ApiRestEntityFactory

All Known Implementing Classes:
DefaultApiRestEntityFactory

public interface ApiRestEntityFactory
Factory for producing REST entities for serialization to Json, and entity property enrichment.

The produced REST entities should be serialized using an ObjectMapper produced by com.atlassian.confluence.rest.serialization.CustomSerializerModuleFactory

Since:
6.12.0
  • Method Details

    • buildRestEntityFrom

      RestEntity<Content> buildRestEntityFrom(ContentEntityObject entity, Expansions expansions)
      Build a REST API entity from a ContentEntityObject.

      Parameters:
      entity - The entity object
      expansions - The expansions to apply to the returned data
      Returns:
      The REST API entity
    • buildRestEntityFrom

      RestEntity<Space> buildRestEntityFrom(Space space, Expansions expansions)
      Build a REST API entity from a hibernate Space object.

      Parameters:
      entity - The entity object
      expansions - The expansions to apply to the returned data
      Returns:
      The REST API entity
    • buildRestEntityFromContent

      Iterable<RestEntity> buildRestEntityFromContent(Iterable<? extends ContentEntityObject> entities, Expansions expansions)
      Build a list of REST API entity objects from ContentEntityObject objects.

      Parameters:
      entity - The entity objects
      expansions - The expansions to apply to the returned data
      Returns:
      The REST API entity list
    • buildRestEntityFromSpaces

      Iterable<RestEntity> buildRestEntityFromSpaces(Iterable<Space> spaces, Expansions expansions)
      Build a list of REST API entity objects from hibernate Space objects.

      Parameters:
      entity - The entity objects
      expansions - The expansions to apply to the returned data
      Returns:
      The REST API entity list
    • isEnrichableList

      boolean isEnrichableList(Class listType)
      Get whether an object type can be enriched using a RestList.
    • isEnrichableEntity

      boolean isEnrichableEntity(Class entityType)
      Get whether an object type can be enriched using a RestEntity.
    • getEnrichedPropertyTypes

      @NonNull Map<String,Type> getEnrichedPropertyTypes(Type type, boolean root)
      Get the types of the properties that may possibly be provided by the enrichers. This is used to populate the graph-ql schema.
      Parameters:
      type - The type of the object being enriched
      Returns:
      A map of property names to property types
    • convertAndEnrich

      Object convertAndEnrich(Object entity, ApiRestEntityFactory.SchemaType schemaType)
      Converts the given entity into a RestEntity if the entity has the RestEnrichable annotation or is a PageResponse that contains RestEnrichable entities.
      Parameters:
      entity - the entity to enrich
      schemaType - rest or graphql
      Returns:
      a converted rest entity or the entity that was given