/* * BioJava development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. If you do not have a copy, * see: * * http://www.gnu.org/copyleft/lesser.html * * Copyright for this code is held jointly by the individual * authors. These should be listed in @author doc comments. * * For more information on the BioJava project and its aims, * or to join the biojava-l mailing list, visit the home page * at: * * http://www.biojava.org/ * * Created on Aug 3, 2005 * */ package org.biojava.dasobert.das; import java.io.InputStream; import java.net.*; import java.util.*; import java.util.logging.Logger; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; /** this stores the stylesheet config for a DAS source. * * @author Andreas Prlic * */ public class DAS_StylesheetRetrieve { static Logger logger = Logger.getLogger("org.biojava.spice"); /** * */ Map[] t3DMap; public DAS_StylesheetRetrieve() { super(); } /** retrieve a StyleSheet from a URL * The style sheet is represented as a Map[], * where each Map contains the description of how to draw a features of a particular type. * * */ public Map[] retrieve(URL dasStylesheetRequest){ logger.finest("requesting stylesheet from " + dasStylesheetRequest); InputStream inStream = null; try { HttpURLConnection huc = DAS_FeatureRetrieve.openHttpURLConnection(dasStylesheetRequest); logger.finest("got connection: "+huc.getResponseMessage()); //String contentEncoding = huc.getContentEncoding(); inStream = huc.getInputStream(); SAXParserFactory spfactory = SAXParserFactory.newInstance(); spfactory.setValidating(false); SAXParser saxParser = null ; try{ saxParser = spfactory.newSAXParser(); } catch (ParserConfigurationException e) { e.printStackTrace(); } DAS_Stylesheet_Handler cont_handle = new DAS_Stylesheet_Handler() ; XMLReader xmlreader = saxParser.getXMLReader(); xmlreader.setContentHandler(cont_handle); xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler()); InputSource insource = new InputSource() ; insource.setByteStream(inStream); xmlreader.parse(insource); Map[] typeMap = cont_handle.getTypeStyles(); t3DMap = cont_handle.get3DStyles(); return typeMap; } catch (Exception e) { logger.finest(e.getMessage()); return null; } } public Map[] get3DStyle(){ return t3DMap; } }