Table des matières

Implémentation de l'API en JAVA

L'implémentation de l'API en Java se présente sous la forme d'un fichier JAR contenant la traduction de l'API sous la forme d'Interface Java ainsi qu'une implémentation de ces interfaces sous la forme de classes prêtes à l'emploi. Cette implémentation fonctionne avec Java 1.5 ou supérieur. Elle est sous licence MIT.

Les sources sont accessibles avec Git via https://framagit.org/Scrutari/export-java

Un autre accès avec Subversion :

svn co http://depot.exemole.fr/svn/java/ScrutariDataExport/src/

Utilisation de l'implémentation

Après avoir inclus le fichier ScrutariDataExport.jar dans votre ClassPath, la première étape consiste à utiliser le constructeur fourni par la classe net.scrutari.dataexport.ScrutariDataExportFactory. Celle-ci possède une seule méthode (statiquqe):

ScrutariDataExport  newInstance(java.lang.Appendable appendable, int indentLength, boolean includeXMLDeclaration) 

Cette méthode prend comme argument :

La méthode renvoie une instance de l'interface ScrutariDataExport dont les méthodes correspondent à celles définies par l'API (ScrutariDataExport), cette interface appartient au paquet net.scrutari.dataexport.api qui comprend toute la traduction en interface Java de l'API.

Exemple d'utilisation

L'exemple ci-dessous montre l'utilisation de l'API pour générer un simple fichier.

import net.scrutari.dataexport.*;
import net.scrutari.dataexport.api.*;
import java.io.*;
 
public class ScrutariDataExportExample {
 
    public static void main(String[] args) throws IOException {
        /* Ouverture d'un fichier en écriture */
        File file = new File("test.scrutari-data.xml");
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"));
 
        /*Création d'une instance de ScrutariDataExport */
        ScrutariDataExport scrutariDataExport = ScrutariDataExportFactory.newInstance(bufferedWriter,0,true);
 
        /*Début de l'export */
        BaseMetadataExport baseMetadataExport = scrutariDataExport.startExport();
 
        /*Définition des métadonnées de la base  */
        baseMetadataExport.setAuthority("e17a05b0-c45e-11d8-9669-0800200c9a66");
        baseMetadataExport.setBaseName("test");
        baseMetadataExport.setBaseIcon("http://monsite.net/icon-16x16pixels.png");
        baseMetadataExport.setIntitule(BaseMetadataExport.INTITULE_SHORT, "fr", "Test");
        baseMetadataExport.setIntitule(BaseMetadataExport.INTITULE_SHORT, "en", "Test");
        baseMetadataExport.setIntitule(BaseMetadataExport.INTITULE_LONG, "fr", "Test du format scrutariData");
        baseMetadataExport.setIntitule(BaseMetadataExport.INTITULE_LONG, "en", "ScrutariData Format Test");
        baseMetadataExport.addLangUI("fr");
        baseMetadataExport.addLangUI("en");
 
        /*Insertion d'un corpus avec de nom « fiches » */
        CorpusMetadataExport corpusMetadataExport = scrutariDataExport.newCorpus("fiches");
 
        /*Définition des métadonnées du corpus  */
        corpusMetadataExport.setCorpusType("EXP");
        corpusMetadataExport.setIntitule(CorpusMetadataExport.INTITULE_CORPUS, "fr","Fiches d'expérience");
        corpusMetadataExport.setIntitule(CorpusMetadataExport.INTITULE_FICHE, "fr", "Fiche d'expérience n° ");
 
        /* Définition de deux champs complémentaires */
        int numero1 = corpusMetadataExport.addComplement();
        corpusMetadataExport.setComplementIntitule(numero1,"fr","Auteurs");
        corpusMetadataExport.setComplementIntitule(numero1,"en","Authors");
        int numero2 = corpusMetadataExport.addComplement();
        corpusMetadataExport.setComplementIntitule(numero2,"fr","Organismes");
 
 
        /* Premier exemple d'une fiche*/
        FicheExport ficheExport = scrutariDataExport.newFiche("1");
        ficheExport.setTitre("Première fiche");
        ficheExport.setFicheType("DOC");
        ficheExport.setDate("2006-03");
        ficheExport.addComplement(2,"Collectif");
        ficheExport.setFicheIcon("http://monsite.net/icon2-16x16pixels.png");
 
        /* Second exemple de fiche, on réutilise le pointeur ficheExport */
        ficheExport = scrutariDataExport.newFiche("fiche2");
        ficheExport.setSoustitre("le sous titre");
        ficheExport.setTitre("Seconde fiche");
        ficheExport.setDate("2006-03");
        ficheExport.setLang("fr");
        ficheExport.setHref("http://monsite.net/ma-fiche-1.html");
        ficheExport.addComplement(2,"L'ASSO");
        ficheExport.addComplement(1,"Martin Dupont");
 
        /* Exemple d'indexation : celle-ci peut de se faire à n'importe quel moment
         * même s'il ne s'agit du mot-clé ou de la fiche en cours ou que le thésaurus ou le corpus
         * n'ont pas encore été définis. */
        scrutariDataExport.addIndexation("fiches", "1", "motscles", "A01",1);
 
        /* Insertion d'un thésaurus de nom « motscles » */
        ThesaurusMetadataExport thesaurusMetadataExport = scrutariDataExport.newThesaurus("motscles");
 
        /* Définition des métadonnées du thésaurus */
        thesaurusMetadataExport.setIntitule(ThesaurusMetadataExport.INTITULE_THESAURUS,"fr","Mots-clés");
        thesaurusMetadataExport.setIntitule(ThesaurusMetadataExport.INTITULE_THESAURUS,"en","Keywords");
 
        /* Exemple d'insertion d'un mot-clé au sein du thésaurus en cours */
        MotcleExport motcleExport = scrutariDataExport.newMotcle("A01");
        motcleExport.setLibelle("fr","Eau");
 
        /* Autre exemple d'insertion d'indexation n'importe où*/
        scrutariDataExport.addIndexation("fiches", "fiche2", "motscles", "A01",4);
 
        /* L'indexation précédente n'a pas changé l'état de l'export, on travaille
         * toujours sur le premier mot-clé */
        motcleExport.setLibelle("en","Water");
 
        /* Fin de l'export */
        scrutariDataExport.endExport();
 
        /* Fermeture du fichier */
        bufferedWriter.close();
    }
 
}