Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
scrutaridata:exportapi:java [2010/02/11 17:55]
vincent créée
scrutaridata:exportapi:java [2016/09/22 14:06] (Version actuelle)
vincent
Ligne 1: Ligne 1:
 ====== Implémentation de l'API en JAVA ====== ====== 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 ​GPL v2+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.
  
   * Fichier JAR : [[http://​dataexport.scrutari.net/​impl/​java/​ScrutariDataExport.jar]]   * Fichier JAR : [[http://​dataexport.scrutari.net/​impl/​java/​ScrutariDataExport.jar]]
-  * Sources : [[http://​dataexport.scrutari.net/​impl/​java/​ScrutariDataExport-src.tar.gz]]+  * Sources : [[http://​dataexport.scrutari.net/​impl/​java/​ScrutariDataExport-src.zip]]
   * JavaDoc : [[http://​dataexport.scrutari.net/​impl/​java/​javadoc]]   * JavaDoc : [[http://​dataexport.scrutari.net/​impl/​java/​javadoc]]
 +
 +
 +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):​
 +
 +<code java>
 +ScrutariDataExport ​ newInstance(java.lang.Appendable appendable, int indentLength,​ boolean includeXMLDeclaration) ​
 +</​code>​
 +
 +Cette méthode prend comme argument :
 +
 +  * Appendable appendable : instance de l'​interface ''​Appendable''​ qui indique la destination où est enregistré le XML généré (typiquement,​ une instance de ''​Writer''​) ; les éventuelles exceptions de type ''​IOException''​ renvoyée par l'​instance d'​Appendable sont encapsulées dans une exception ''​net.scrutari.dataexport.api.ExportIOException''​ (qui étend ''​RuntimeException''​)
 +  * int indentLength : indique s'il faut indenter le code XML pour le rendre plus lisible, cette valeur peut être supérieure à zéro si le code est inclus dans un code XML plus large. Pour n'​avoir ni indentation ni passage à la ligne (et donc un code XML plus ramassé), il faut indiquer la valeur ''​-999''​
 +  * boolean includeXMLDeclaration : indique s'il faut rajouter la déclaration XML (''<?​xml version="​1.0"​ encoding="​UTF-8"?>''​) au début du code XML généré.
 +
 +La méthode renvoie une instance de l'​interface ScrutariDataExport dont les méthodes correspondent à celles définies par l'API ([[scrutaridata:​exportapi:​scrutaridataexport|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.
 +
 +<code java>
 +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();​
 +    }
 +
 +}
 +</​code>​
  
scrutaridata/exportapi/java.1265907338.txt.gz · Dernière modification: 2010/02/11 17:55 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0