All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.aiderpmsi.hprim.parser.xml.HprimReader Maven / Gradle / Ivy

package com.github.aiderpmsi.hprim.parser.xml;

import java.io.IOException;

import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.TokenStream;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.XMLFilterImpl;

import com.github.aiderpmsi.hprim.parser.HPRIMSInputStreamReader;
import com.github.aiderpmsi.hprim.parser.HPRIMSTokenSource;
import com.github.aiderpmsi.hprim.parser.antlr.HPRIMSParser;


/**
 * @author delabre
 *
 */
public class HprimReader extends XMLFilterImpl {

	@Override
	public void parse(InputSource input) throws IOException, SAXException {

		// Définition des flux matériels (à fermer en fin d'utilisation)
		HPRIMSInputStreamReader inputreader = null;
		
		try {
			// Création de la source des tokens
			inputreader = new HPRIMSInputStreamReader(input.getCharacterStream());
			HPRIMSTokenSource toksce = new HPRIMSTokenSource(inputreader);
	
			// Création du flux de tokens
			TokenStream tokenstream = new CommonTokenStream (toksce);
	
			// Création du parser de tokens provenant de input et réalisant dans
			// la classe collecteur l'export des données
			HPRIMSParser parser = new HPRIMSParser(tokenstream, getContentHandler());
	
			// Parsing hprim oru
			parser.hprim();
		} catch (RecognitionException e) {
			throw new SAXException(e);
		} catch (IllegalArgumentException e) {
			throw new SAXException(e);
		} finally {
			// Fermeture propre des ressources allouées
			if (inputreader != null)
				inputreader.close();
		}
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy