import type { ClassBehaviourType, MemberType, OperationTargetBehaviourType, OperationTypeEnum, RelationBehaviourType, RelationKind } from "../enums"; import type { NamedElement } from "../visual/base"; import type { EnumerationType } from "./types"; /** * Annotation for model elements. * Maps to: data:Annotation */ export interface Annotation { name?: string; } /** * Base data element - abstract. * Maps to: data:DataElement */ export interface DataElement extends NamedElement { "@type"?: string; } /** * Base data type - abstract. * Maps to: data:DataType */ export interface DataType extends NamedElement { "@type": string; /** Resolved reference to operator EnumerationType */ operator?: EnumerationType; } /** * Attribute type - scalar property. * Maps to: data:AttributeType * * EMF Defaults: * - memberType: STORED * - isReadOnly: true * - isProfilePicture: false */ export interface AttributeType extends DataElement { "@type": "data:AttributeType"; /** Resolved reference to DataType */ dataType: DataType; /** Member storage type. @default STORED */ memberType?: MemberType; /** Whether attribute is read-only. @default true */ isReadOnly?: boolean; isFilterable?: boolean; isRequired?: boolean; /** Whether attribute is a profile picture. @default false */ isProfilePicture?: boolean; /** Resolved reference to original AttributeType */ originalAttributeType?: AttributeType; } /** * Relation type - reference to another class. * Maps to: data:RelationType * * EMF Defaults: * - relationKind: ASSOCIATION * - memberType: STORED * - isCollection: true * - isOptional: true * - isOrderable: false * - isAccess: false * - isReadOnly: false */ export interface RelationType extends DataElement { "@type": "data:RelationType"; /** Resolved reference to target ClassType */ target: ClassType; /** Kind of relation. @default ASSOCIATION */ relationKind?: RelationKind; /** Member storage type. @default STORED */ memberType?: MemberType; /** Whether relation targets multiple elements. @default true */ isCollection?: boolean; /** Whether relation target is optional. @default true */ isOptional?: boolean; /** Whether relation is orderable. @default false */ isOrderable?: boolean; isFilterable?: boolean; /** Whether relation is read-only. @default false */ isReadOnly?: boolean; /** Whether relation represents an access relation. @default false */ isAccess?: boolean; isInlineCreatable?: boolean; behaviours: RelationBehaviourType[]; /** Resolved reference to original RelationType */ originalRelationType?: RelationType; } /** * Class type representing a transfer object. * Maps to: data:ClassType * * EMF Defaults: * - isMapped: true * - isPrincipal: false * - isActor: false * - isOptional: false * - isForCreateOrUpdateType: false */ export interface ClassType extends DataElement { "@type": "data:ClassType"; attributes: AttributeType[]; relations: RelationType[]; operations: OperationType[]; /** Whether class is mapped to a backend transfer. @default true */ isMapped?: boolean; /** Whether class represents the principal. @default false */ isPrincipal?: boolean; /** Whether class represents an actor. @default false */ isActor?: boolean; /** Whether class is optional. @default false */ isOptional?: boolean; /** Whether class is for create/update operations. @default false */ isForCreateOrUpdateType?: boolean; transferObjectTypeName?: string; simpleName?: string; packageNameTokens?: string[]; behaviours: ClassBehaviourType[]; /** Resolved reference to representation AttributeType */ representation?: AttributeType; } /** * Access-based navigation for operation results. * Maps to: data:AccessBasedNavigation */ export interface AccessBasedNavigation { /** Resolved reference to access RelationType */ accessRelation: RelationType; /** Resolved reference to PageDefinition - NOTE: This creates a circular dependency that must be handled */ pageDefinition: unknown; } /** * Operation parameter type. * Maps to: data:OperationParameterType * * EMF Defaults: * - isCollection: true * - isOptional: true * - isOrderable: false */ export interface OperationParameterType extends DataElement { "@type": "data:OperationParameterType"; /** Resolved reference to target ClassType */ target: ClassType; /** Whether parameter accepts multiple values. @default true */ isCollection?: boolean; /** Whether parameter is optional. @default true */ isOptional?: boolean; /** Whether parameter is orderable. @default false */ isOrderable?: boolean; isFilterable?: boolean; behaviours?: OperationTargetBehaviourType[]; /** Resolved reference to original OperationParameterType */ originalOperationParameterType?: OperationParameterType; } /** * Operation type - callable method. * Maps to: data:OperationType * * EMF Defaults: * - operationType: MAPPED * - isStateful: true */ export interface OperationType extends DataElement { "@type": "data:OperationType"; input?: OperationParameterType; output?: OperationParameterType; faults?: OperationParameterType[]; /** Type of operation. @default MAPPED */ operationType?: OperationTypeEnum; /** Whether operation is stateful. @default true */ isStateful?: boolean; /** Resolved reference to original OperationType */ originalOperationType?: OperationType; postCallAccessNavigation?: AccessBasedNavigation; } /** * Application type reference. * Maps to: data:ApplicationType */ export interface ApplicationType extends DataElement { "@type": "data:ApplicationType"; /** Resolved reference to target ClassType */ target: ClassType; } /** * MimeType definition. * Maps to: data:MimeType */ export interface MimeType { "xmi:id"?: string; type: string; subType: string; } //# sourceMappingURL=elements.d.ts.map