package uni.projecte.dataLayer.RemoteDBManager.dataParsers; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import uni.projecte.dataTypes.RemoteCitationSet; import uni.projecte.dataTypes.RemoteTaxonSet; import android.util.Log; public class GBIFDBResponseHandler { private String nextURL=""; public static int NEXT_URL=-2; public int loadTaxons(String url,RemoteTaxonSet projList){ try { /* Get a SAXParser from the SAXPArserFactory. */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); GBIFHandlerXML myExampleHandler = new GBIFHandlerXML(projList); xr.setContentHandler(myExampleHandler); URL urlR = new URL(url); Log.i("BD","Gbif URL Taxons: "+urlR); InputSource iS=new InputSource(urlR.openStream()); xr.parse(iS); nextURL=myExampleHandler.getNextURL(); if(!nextURL.equals("")){ return NEXT_URL; } else return projList.numElements(); } catch (Exception e) { Log.i("BD","Gbif exception: "+e.getMessage()); } return 0; } public static int copy(InputStream input, OutputStream output) throws IOException{ byte[] buffer = new byte[512]; int count = 0; int n = 0; while (-1 != (n = input.read(buffer))) { output.write(buffer, 0, n); count += n; } return count; } public void setNextURL(String nextURL) { this.nextURL = nextURL; } public String getNextURL() { return nextURL; } public int loadCitations(String url, RemoteCitationSet citList) { try { /* Get a SAXParser from the SAXPArserFactory. */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); GBIFHandlerXML myExampleHandler = new GBIFHandlerXML(citList); xr.setContentHandler(myExampleHandler); URL urlR = new URL(url); Log.i("BD","Gbif URL Citations: "+urlR); InputSource iS=new InputSource(urlR.openStream()); // BufferedReader fis = new BufferedReader(new InputStreamReader(new FileInputStream(url.substring(1)))); // iS.setEncoding("ISO-8859-1"); xr.parse(iS); nextURL=myExampleHandler.getNextURL(); if(!nextURL.equals("")){ return NEXT_URL; } else return citList.numElements(); //URL urlR = new URL(url); //xr.parse(new InputSource(urlR.openStream())); } catch (Exception e) { Log.i("BD","Gbif exception: "+e.getMessage()); } return 0; } }