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

java.fedora.client.search.SearchResultParser Maven / Gradle / Ivy

Go to download

The Fedora Client is a Java Library that allows API access to a Fedora Repository. The client is typically one part of a full Fedora installation.

The newest version!
/*
 * -----------------------------------------------------------------------------
 *
 * 

License and Copyright: The contents of this file are subject to the * Apache License, Version 2.0 (the "License"); you may not use * this file except in compliance with the License. You may obtain a copy of * the License at * http://www.fedora-commons.org/licenses.

* *

Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for * the specific language governing rights and limitations under the License.

* *

The entire file consists of original code.

*

Copyright © 2008 Fedora Commons, Inc.
*

Copyright © 2002-2007 The Rector and Visitors of the University of * Virginia and Cornell University
* All rights reserved.

* * ----------------------------------------------------------------------------- */ package fedora.client.search; import java.io.*; import java.util.*; import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; /** * Parses plain old xml results from a Fedora search request. * */ public class SearchResultParser extends DefaultHandler { private boolean READING_PID; private boolean READING_TOKEN; private StringBuffer m_currentPID; private StringBuffer m_sessionToken; private Set m_pids=new HashSet(); public SearchResultParser(InputStream xml) throws IOException { try { SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setNamespaceAware(true); SAXParser parser = spf.newSAXParser(); parser.parse(xml, this); } catch (Exception e) { if (e.getMessage()!=null) { throw new IOException(e.getMessage()); } else { throw new IOException("Error parsing search result xml: " + e.getClass().getName()); } } } public void startElement(String uri, String localName, String qName, Attributes a) { if (localName.equals("pid")) { READING_PID=true; m_currentPID=new StringBuffer(); } else if (localName.equals("token")) { READING_TOKEN=true; m_sessionToken=new StringBuffer(); } } public void characters(char[] ch, int start, int length) { if (READING_PID) { m_currentPID.append(ch, start, length); } else if (READING_TOKEN) { m_sessionToken.append(ch, start, length); } } public void endElement(String uri, String localName, String qName) throws SAXException { if (localName.equals("pid")) { READING_PID=false; m_pids.add(m_currentPID.toString()); } else if (localName.equals("token")) { READING_TOKEN=false; } } public Set getPIDs() { return m_pids; } public String getToken() { if (m_sessionToken==null) return null; return m_sessionToken.toString(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy