Data.DBXJSONReflect.TConverter

De RAD Studio API Documentation
Aller à : navigation, rechercher

System.TObjectTConverter

Delphi

TConverter<TSerial> = class abstract

C++

template<typename TSerial> class PASCALIMPLEMENTATION TConverter__1 : public System::TObject

Propriétés

Type Visibilité  Source Unité  Parent
class public
Data.DBXJSONReflect.pas
Data.DBXJSONReflect.hpp
Data.DBXJSONReflect Data.DBXJSONReflect

Description

Représente la classe convertisseur de base.

Tout sérialiseur doit hériter de la classe TConverter. TConverter fournit les événements API utilisés par une classe marshaller pour sérialiser un objet utilisateur.

Les convertisseurs et les restaurateurs peuvent être enregistrés sur un type et un champ, ou pour un type. Tout champ déclaré de ce type est traité par le convertisseur/restaurateur utilisateur fourni. Un convertisseur/restaurateur enregistré de champ a priorité sur un convertisseur/restaurateur de type.

Un convertisseur de champ peut transformer une valeur de champ en une chaîne, un objet, une liste de chaînes ou une liste d'objets. Le contrat est que ces valeurs transformées seront passées en arguments au restaurateur correspondant afin de reconstituer la valeur du champ.

Un convertisseur de type peut transformer une valeur en une chaîne, un objet, une liste de chaînes ou une liste d'objets. Ces valeurs transformées seront passées en arguments au restaurateur de type qui reconstituera l'instance de type originale.

Par exemple, un champ TStringList peut être converti en un tableau de chaînes par un convertisseur, et un restaurateur peut utiliser la liste de chaînes pour créer et remplir une instance de TStringList. C'est le degré de complexité attendu par un convertisseur/restaurateur défini par l'utilisateur.

Sur des situations prédéterminées, des événements sont émis. Le tableau suivant contient la liste des situations qui peuvent se produire durant le marshalling.



Situation Evénement

Un nouvel objet est rencontré.

OnTypeStart

Un objet déjà visité est rencontré.

OnRefType

Un nouveau contenu d'objet a été revisité.

OnTypeEnd

Un nouveau champ est rencontré.

OnFieldStart

Un nouveau champ est visité.

OnFieldEnd

Une valeur chaîne est rencontrée.

OnString

Une valeur numérique est rencontrée.

OnNumber

Une valeur nil est rencontrée.

OnNull

Une valeur booléenne est rencontrée.

OnBoolean

Une valeur liste est rencontrée.

OnListStart

Le traitement d'une liste est terminé.

OnListEnd



Les événements sont reçus par une instance de TConverter. Ils sont imbriqués, selon la structure de l'objet utilisateur. En se basant sur les événements et leurs arguments, l'instance de TConverter construit une image équivalente de l'objet utilisateur.

L'image objet construite par le convertisseur peut être utilisée pour reconstituer l'objet utilisateur original, en utilisant les événements du restaurateur pilotés par un unmarshaller.

Remarque :  Voici les champs pour lesquels il y a déjà une conversion/inversion intégrée : entier, chaîne, caractère, énumération, flottant, objet. Pour les types suivants, les valeurs de champs sont ignorées et la conversion utilisateur est attendue : ensemble, méthode, variant, interface, pointeur, tableau dynamique, référence de classe, tableau.

Voir aussi