cds.xml
Class TableParser

java.lang.Object
  extended by cds.xml.TableParser
All Implemented Interfaces:
XMLConsumer

public final class TableParser
extends java.lang.Object
implements XMLConsumer

Parser de tables Accepte aussi bien du TSV natif, du TSV à la mode SkyCat, du CSV, de l'ASCII simple (colonnes séparées par des espaces) du AstroRes, du VOTable, du VOTable avec CSV encapsulé, du FITS ASCII, du FITS BINTABLE

Version:
2.3 - déc 06 - correction bug , 2.2 - avril 06 - Support pour le CSV et le FITS ASCII ou BINTABLE, 2.1 - déc 05 - Prise en compte de l'erreur "a la SIAP", 2.0 - mai 05 - Fusion VOTable/Astrores et améliorations diverses, 1.6 - 19 mars 02 - Amélioration de la gestion de la colonne DE, 1.5 - 17 jan 02 - gestion des TAGs info sans attribut "name", 1.4 - 8 jan 02 - correction bug sur coord (caractère '+' avant DE), 1.3 - 19 jan 01 - Gestion du sexagésimal

Constructor Summary
TableParser(Aladin aladin, TableParserConsumer consumer)
          Création Mémorise le consumer et création du parser XML
TableParser(Aladin aladin, TableParserConsumer consumer, HeaderFits headerFits, boolean flagSkip)
          Création d'un parser de table Fits (ASCII)
TableParser(Aladin aladin, TableParserConsumer consumer, long type)
          Création d'un parser de table suivant format
TableParser(Aladin aladin, TableParserConsumer consumer, java.lang.String colsep)
           
 
Method Summary
 void characters(char[] ch, int start, int length)
          XMLparser interface
static int countColumn(java.lang.String s, char[] cs)
          Décompte le nombre de colonnes d'une ligne
 void endElement(java.lang.String name)
          XMLparser interface
 java.lang.String getError()
          Retourne le message d'erreur du parsing, ou null si ok
static java.lang.String getStringTrim(byte[] s, int offset, int len)
          Extrait la chaine de caractères indiquée par la paramètre en trimmant les éventuels blancs en début et fin de chaine => Equivalent a : new String(s,offset,len).trim()
static java.lang.String getStringTrim(char[] s, int offset, int len)
          Extrait la chaine de caractères indiquée par la paramètre en trimmant les éventuels blancs en début et fin de chaine => Equivalent a : new String(s,offset,len).trim()
 byte[] getUnreadBuffer()
          Retourne les caractères non lus du buffer du parser xml, ou null si fin du stream
 boolean parse(MyInputStream dis)
          Lancement du parsing Soit XML/CSV soit FITS si headerFits!
 boolean parse(MyInputStream dis, java.lang.String endTag)
          Lancement du parsing
 void startElement(java.lang.String name, java.util.Hashtable atts)
          XMLparser interface.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TableParser

public TableParser(Aladin aladin,
                   TableParserConsumer consumer,
                   long type)
Création d'un parser de table suivant format

Parameters:
consumer - référence au consumer
type - Format de la table (MyInputSdtream.IPAC)

TableParser

public TableParser(Aladin aladin,
                   TableParserConsumer consumer,
                   HeaderFits headerFits,
                   boolean flagSkip)
Création d'un parser de table Fits (ASCII)

Parameters:
consumer - référence au consumer
HeaderFits - headerFits Le headerFits associé à la table ASCII
flagSkip - indique si cette table doit être skippé (dans le cas d'un MEF)

TableParser

public TableParser(Aladin aladin,
                   TableParserConsumer consumer)
Création Mémorise le consumer et création du parser XML

Parameters:
consumer - référence au consumer
colsep - en mode CSV, la liste des séparateurs de colonnes pris en compte

TableParser

public TableParser(Aladin aladin,
                   TableParserConsumer consumer,
                   java.lang.String colsep)
Method Detail

getStringTrim

public static final java.lang.String getStringTrim(byte[] s,
                                                   int offset,
                                                   int len)
Extrait la chaine de caractères indiquée par la paramètre en trimmant les éventuels blancs en début et fin de chaine => Equivalent a : new String(s,offset,len).trim()

Parameters:
s - le buffer de byte
offset - début de la chaine
len - taille de la chaine
Returns:
chaine extraite trimmée

getStringTrim

public static final java.lang.String getStringTrim(char[] s,
                                                   int offset,
                                                   int len)
Extrait la chaine de caractères indiquée par la paramètre en trimmant les éventuels blancs en début et fin de chaine => Equivalent a : new String(s,offset,len).trim()

Parameters:
s - le buffer de char
offset - début de la chaine
len - taille de la chaine
Returns:
chaine extraite trimmée

parse

public boolean parse(MyInputStream dis)
              throws java.lang.Exception
Lancement du parsing Soit XML/CSV soit FITS si headerFits!=null

Parameters:
dis -
Throws:
java.lang.Exception

parse

public boolean parse(MyInputStream dis,
                     java.lang.String endTag)
              throws java.lang.Exception
Lancement du parsing

Parameters:
dis - le flux d'entrée
endTag - tag de fin si parsing partiel (Le MyInputStream reste ouvert en l'état)
Returns:
true or false en fonction du résultat du parsing XML. En cas de problème l'erreur peut être récupérée par la méthode getError()
Throws:
java.lang.Exception

getUnreadBuffer

public byte[] getUnreadBuffer()
Retourne les caractères non lus du buffer du parser xml, ou null si fin du stream


getError

public java.lang.String getError()
Retourne le message d'erreur du parsing, ou null si ok


startElement

public void startElement(java.lang.String name,
                         java.util.Hashtable atts)
XMLparser interface. Pour accélerer le parsing, on se base sur la profondeur du document XML pour faire uniquement les quelques tests s'y rapportant

Specified by:
startElement in interface XMLConsumer
Parameters:
name - The tag name (TAGNAME in the example)
atts - The tag parameters in an Hashtable. The keys of the hashtable are the param name.

endElement

public void endElement(java.lang.String name)
XMLparser interface

Specified by:
endElement in interface XMLConsumer
Parameters:
name - The tag name (TAGNAME in the example)

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws java.lang.Exception
XMLparser interface

Specified by:
characters in interface XMLConsumer
Parameters:
ch - The array of char
start - the index of the first character
length - the length of the contain
Throws:
java.lang.Exception

countColumn

public static int countColumn(java.lang.String s,
                              char[] cs)
Décompte le nombre de colonnes d'une ligne

Parameters:
s - La ligne à tester
cs - liste des séparateurs de colonnes autorisés
Returns:
le nombre de colonnes trouvées


Copyright © 2009 UDS/CNRS