@sap-cloud-sdk/core
Version:
SAP Cloud SDK for JavaScript core
49 lines • 2.36 kB
TypeScript
import { Entity } from '../entity';
import { Filterable, FilterLink } from '../filter';
import { Order, Orderable, OrderLink } from '../order';
import { Link } from './link';
/**
* Represents a link from one entity to one other linked entity (as opposed to a list of linked entities). In OData v2 a `OneToOneLink` can be used to filter and order a selection on an entity based on filters and orders on a linked entity.
* @typeparam EntityT - Type of the entity to be linked from
* @typeparam LinkedEntityT - Type of the entity to be linked to
*/
export declare class OneToOneLink<EntityT extends Entity, LinkedEntityT extends Entity> extends Link<EntityT, LinkedEntityT> {
/**
* @deprecated Since v1.21.0. Use [[clone]] instead.
* Create a new one to one link based on a given link.
* @typeparam EntityT - Type of the entity to be linked from
* @typeparam LinkedEntityT - Type of the entity to be linked to
* @param link - Link to be cloned
* @returns Newly created link
*/
static clone<EntityT1 extends Entity, LinkedEntityT1 extends Entity>(link: OneToOneLink<EntityT1, LinkedEntityT1>): OneToOneLink<EntityT1, LinkedEntityT1>;
/**
* List of criteria of the linked entity to order the given entity by with descending priority.
*/
orderBys: Order<LinkedEntityT>[];
/**
* Filterables to apply to the given entity based on the linked entity.
*/
filters: Filterable<LinkedEntityT>;
clone(): this;
/**
* Create order statements for the OData request based on the linked entity. The given statements have descending priority.
*
* Example:
* ```
* Entity.requestBuilder()
* .getAll()
* .orderBy(Entity.TO_LINKED_ENTITY.orderBy(asc(LinkedEntity.PROPERTY1), desc(LinkedEntity.PROPERTY2)));
* ```
* @param orderBy - Criteria to order by
* @returns Newly created order link
*/
orderBy(...orderBy: Orderable<LinkedEntityT>[]): OrderLink<EntityT, LinkedEntityT>;
/**
* Create filter statements to be applied to the OData request based on the linked entity values.
* @param filters - Filters based on the linked entity.
* @returns Newly created [[FilterLink]].
*/
filter(...filters: Filterable<LinkedEntityT>[]): FilterLink<EntityT, LinkedEntityT>;
}
//# sourceMappingURL=one-to-one-link.d.ts.map