Aller directement à la fin des métadonnées
Aller au début des métadonnées

Cette documentation présente la conception de la couche de conversion de Kimios (Converter).

Ci-dessous un schéma global d'architecture décrivant les principales classes :

Convertisseur de documents

Kimios autorise la création d'exportation type de documents (transformations de documents).

Pour créer un nouveau convertisseur de document (Converter), il est nécessaire d'étendre la classe ConverterImpl.

Le diagramme ci-dessous représente la modélisation d'une implémentation de Converter de Kimios :

La classe d'implémentation de base ConverterImpl étend l'interface Converter.

L'interface Converter déclare deux méthodes de conversion (convertInputSource et convertInputSources) qui sont implémentées dans l'implémentation de base.

L'une prend en paramètres un objet de type InputSource tandis que l'autre prend une liste d'objet de type InputSource. Il est possible d'implémenter une seule de ces méthodes comme il est possible d'implémenter les deux selon les cas d'utilisation.

Source d'entrée de conversion

Dans certains cas, la création d'une source d'entrée de conversion supplémentaire (InputSource) peut être requise.

Le schéma ci-dessous représente le modèle de ces sources d'entrée de conversion :

Une source d'entrée de conversion doit impérativement implémenter :

  • getStream : retourne un InputStream lié à la source d'entrée de données à convertir,
  • getType : retourne le type (extension ou mime type) de la source de données utilisée, 
  • getName : retourne le nom de la ressource concernée.

Exemple d'implémentation

L'exemple ci-dessous montre un début d'implémentation type :
 

public class FileToZip extends ConverterImpl {
private static final String OUTPUT_PREFIX = "ZIP_Archive";
private static final String OUTPUT_EXTENSION = "zip";

@Override
public InputSource convertInputSource(InputSource source) throws ConverterException {

// implementation of conversion

// return new converted InputSource from unique InputSource
}

@Override
public InputSource convertInputSources(List<InputSource> sources) throws ConverterException {

// implementation of conversion

// return new converted InputSource from any InputSources
}
}
  • Aucune étiquette