Fonctionnement général :

Le fonctionnement du framework repose principalement sur l'utilisation des méthodes getXXX()/ setXXX().
De plus l'utilisation d'un fichier XML de mapping permet de décrire la façon dont seront traitées les données par Castor
Enfin le fichier de configuration du framework Castor est le fichier castor.properties

Fonctionnement de Castor XML :

Castor XML est un framework de databinding XML données. Contrairement aux deux principales API de gestion du XML, à savoir DOM (Document Object Model) et SAX (Simple Api for XML), qui doivent gérer la structure du document Xml ;Castor permet de gérer les données définies dans un document XML à travers une classe d'objet qui représente ces données.

Castor peut quasiment transformer n'importe quel type d'objet Java en Xml, et inversement. Le framework de transformation, encore appelé marshall, fonctionne grâce aux descripteurs de classes et aux descripteurs de champs pour décrire la façon dont la transformation Java-XMl et Xml-Java doit avoir lieu.

Les termes marshall et unmarshall qui vont être utilisés dans le reste de cette présentation font simplement allusion à la conversion d'un flux de donnée, une séquence d'octets, depuis et vers un objets. Marshall = conversion d'un objet vers un flux. UnMarshall = conversion d'un flux vers un objet.

Ce qu'il faut savoir du framework de conversion c'est qu'il est composé de deux classes principales, org.exolab.castor.xml.Marshaller et org.exolab.castor.xml.Unmarshaller.

Exemple d'utilisation de Castor XML

Un fichier de mapping XML, qui donne une description du point de vue de l’objet Java, permet de configurer le comportement de Castor XML



Castor peut également jouer le rôle d'un générateur de code source. Pour celà il doit mapper une instance d’un schéma XML dans le modèle d’objet approprié (ensemble de classes et types qui représentent la donnée). La génération des packages s'effectue par lignes de commande.

On utilise alors un fichier .xsd pour le mapping XML

Fonctionnement de Castor JDO :

Contrairement à ce que semble indiquer son nom, Castor-JDO est un framework de persistance qui ne respecte pas la norme JDO. Il utilise la réflexivité de Java pour accéder (en lecture ou écriture) à l'état des objets métiers persistants. Castor permet la configuration de la source de données via des connecteurs pour plusieurs SGBDR que la framework inclu.
Il permet aussi la configuration du mapping entre le modèle objet et le modèle relationnel. Il fonctionne aussi bien Applications clients et serveurs J2EE.

Pour la récupération d'objet, Castor JDO peut procéder de deux façons.
Soit par l'appel à la méthode Database::load (telleClasse, clé)
Soit par requête Castor OQL, semblable à des requêtes SQL.

Tout comme pour le XML, en JDO, Castor utilise aussi un fichier de mapping. Cette fois ci il s'agit d'une description entre les objets java et le modèle relationnel

Un objet y est représenté par un élément class
L’élément map-to l’associe à une table de la base de données relationnelle
Les éléments field définissent les mappings table/champ-classe/attribut.

Exemple d'utilisation de Castor JDO