ElementEndpointImpl

open class ElementEndpointImpl<TEntity>(referrer: Endpoint, relativeUri: URI, entityType: Class<TEntity>) : AbstractCachingEndpoint, ElementEndpoint<TEntity>

Endpoint for an individual resource.

Parameters

referrer

The endpoint used to navigate to this one.

relativeUri

The URI of this endpoint relative to the referrer's.

entityType

The type of entity the endpoint represents.

TEntity

The type of entity the endpoint represents.

Constructors

Link copied to clipboard
constructor(referrer: Endpoint, relativeUri: URI, entityType: Class<TEntity>)
constructor(referrer: Endpoint, relativeUri: String, entityType: Class<TEntity>)

Creates a new element endpoint.

Properties

Link copied to clipboard
open override val errorHandler: ErrorHandler
Link copied to clipboard
open override val httpClient: OkHttpClient
Link copied to clipboard
open override val isDeleteAllowed: Boolean?

Shows whether the server has indicated that delete is currently allowed.

Link copied to clipboard
open override val isMergeAllowed: Boolean?

Shows whether the server has indicated that merge is currently allowed.

Link copied to clipboard
open override val isSetAllowed: Boolean?

Shows whether the server has indicated that set is currently allowed.

Link copied to clipboard
open override val linkExtractor: LinkExtractor
Link copied to clipboard
open override val response: TEntity?

A cached copy of the entity as received from the server.

Link copied to clipboard
open override var responseCache: ResponseCache?

A cached copy of the last response.

Link copied to clipboard
open override val serializers: List<Serializer>
Link copied to clipboard
open override val uri: URI

Functions

Link copied to clipboard
open override fun delete()

Deletes the element.

Link copied to clipboard
fun <T> deserialize(body: ResponseBody, type: Class<T>): T?

Deserializes an entity using the first serializer that supports the body's content type.

Link copied to clipboard
fun <T> deserializeList(body: ResponseBody, type: Class<T>): List<T>?

Deserializes a list of entities using the first serializer that supports the body's content type.

Link copied to clipboard
open override fun exists(): Boolean

Determines whether the element currently exists.

Link copied to clipboard
open override fun getLinks(rel: String): List<Pair<URI, String?>>

Resolves all links with a specific relation type. Uses cached data from last response.

Link copied to clipboard
fun getLinkTemplate(rel: String): UriTemplate

Retrieves a link template with a specific relation type.

Link copied to clipboard
open override fun link(rel: String): URI

Resolves a single link with a specific relation type. Uses cached data from last response if possible.

Link copied to clipboard
open override fun linkTemplate(rel: String, variables: Map<String, Any>): URI

Resolves a link template with a specific relation type. Uses cached data from last response if possible.

Link copied to clipboard
open override fun merge(entity: TEntity): TEntity?

Modifies an existing entity by merging changes on the server-side.

Link copied to clipboard
open override fun read(): TEntity

Returns the entity.

Link copied to clipboard
fun <T> serialize(entity: T, type: Class<T>): RequestBody

Serializes an entity using the first serializer.

Link copied to clipboard
fun <T> serializeList(entities: Iterable<T>, type: Class<T>): RequestBody

Serializes a list of entities using the first serializer.

Link copied to clipboard
open override fun set(entity: TEntity): TEntity?

Sets/replaces the entity.

Link copied to clipboard
fun setDefaultLink(rel: String, href: String?)

Registers one or more default links for a specific relation type.

Link copied to clipboard

Registers a default link template for a specific relation type.

Link copied to clipboard
open override fun update(updateAction: (TEntity) -> TEntity, maxRetries: Int): TEntity?

Reads the current state of the entity, applies a change to it and stores the result. Applies optimistic concurrency using automatic retries.