Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkjsf.git into...
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / data / Pazpar2ResponseParser.java
diff --git a/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/data/Pazpar2ResponseParser.java b/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/data/Pazpar2ResponseParser.java
deleted file mode 100644 (file)
index e69b397..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-package com.indexdata.pz2utils4jsf.pazpar2.data;\r
-\r
-import java.io.ByteArrayInputStream;\r
-import java.io.IOException;\r
-import java.io.UnsupportedEncodingException;\r
-import java.util.Arrays;\r
-import java.util.List;\r
-import java.util.Stack;\r
-\r
-import javax.xml.parsers.ParserConfigurationException;\r
-import javax.xml.parsers.SAXParser;\r
-import javax.xml.parsers.SAXParserFactory;\r
-\r
-import org.xml.sax.Attributes;\r
-import org.xml.sax.InputSource;\r
-import org.xml.sax.SAXException;\r
-import org.xml.sax.XMLReader;\r
-import org.xml.sax.helpers.DefaultHandler;\r
-\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.ByTarget;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.Hit;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.Location;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.Pazpar2ResponseData;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.RecordResponse;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.ShowResponse;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.StatResponse;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.Target;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.TermListResponse;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.TermListsResponse;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.TermResponse;\r
-import com.indexdata.pz2utils4jsf.pazpar2.data.TermXTargetResponse;\r
-\r
-public class Pazpar2ResponseParser extends DefaultHandler {\r
-\r
-  private XMLReader xmlReader = null;\r
-  private Pazpar2ResponseData currentElement = null;\r
-  private Stack<Pazpar2ResponseData> dataElements = new Stack<Pazpar2ResponseData>();\r
-  private Pazpar2ResponseData result = null;\r
-\r
-  private static final List<String> docTypes = \r
-      Arrays.asList("bytarget","termlist","show","stat","record","search");\r
-  \r
-  public Pazpar2ResponseParser() {    \r
-    try {\r
-      initSax();\r
-    } catch (ParserConfigurationException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();\r
-    } catch (SAXException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();\r
-    }\r
-  }\r
-  \r
-  public static Pazpar2ResponseParser getParser() {\r
-    return new Pazpar2ResponseParser();\r
-  }\r
-  \r
-  private void initSax() throws ParserConfigurationException, SAXException {\r
-    SAXParserFactory spf = SAXParserFactory.newInstance();\r
-    spf.setNamespaceAware(true);\r
-    SAXParser saxParser = spf.newSAXParser();\r
-    xmlReader = saxParser.getXMLReader();\r
-    xmlReader.setContentHandler(this);         \r
-  }\r
-  \r
-  /**\r
-   * Parses a Pazpar2 XML response -- or an error response as XML -- and produces a \r
-   * Pazpar2ResponseData object, i.e. a 'show' object\r
-   * \r
-   * @param response XML response string from Pazpar2\r
-   * @return Response data object\r
-   */\r
-  public Pazpar2ResponseData getDataObject (String response) {\r
-    try {      \r
-      xmlReader.parse(new InputSource(new ByteArrayInputStream(response.getBytes("UTF-8"))));\r
-    } catch (UnsupportedEncodingException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();      \r
-    } catch (IOException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();\r
-    } catch (SAXException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();      \r
-    }\r
-    return result;\r
-  }\r
-\r
-  /** \r
-   * Receive notification at the start of element \r
-   * \r
-   */\r
-  @Override\r
-  public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {\r
-    if (localName.equals("show")) {\r
-      currentElement = new ShowResponse();\r
-    } else if (localName.equals("hit")) {\r
-      currentElement = new Hit();\r
-    } else if (localName.equals("location")) {\r
-      currentElement = new Location();\r
-    } else if (localName.equals("bytarget")) {\r
-      currentElement = new ByTarget();\r
-    } else if (localName.equals("target")) {\r
-      currentElement = new Target();\r
-    } else if (localName.equals("stat")) {\r
-      currentElement = new StatResponse();\r
-    } else if (localName.equals("termlist")) {\r
-      currentElement = new TermListsResponse();\r
-    } else if (localName.equals("list")) {\r
-      currentElement = new TermListResponse();\r
-      ((TermListResponse)currentElement).setName(atts.getValue("name"));\r
-      ((TermListsResponse)dataElements.peek()).addTermList((TermListResponse)currentElement);\r
-    } else if (localName.equals("term")) {\r
-      if (dataElements.peek().getAttribute("name").equals("xtargets")) {\r
-        currentElement = new TermXTargetResponse();        \r
-      } else {\r
-        currentElement = new TermResponse();\r
-      }\r
-      ((TermListResponse)dataElements.peek()).addTerm((TermResponse)currentElement);\r
-    } else if (localName.equals("record")) {\r
-      currentElement = new RecordResponse();\r
-    } else if (localName.equals("search")) {\r
-      currentElement = new SearchResponse();\r
-    } else if (localName.equals("applicationerror")) {\r
-      currentElement = new CommandError();\r
-    } else if (localName.equals("error") && dataElements.peek().getType().equals("applicationerror")) {\r
-      currentElement = new Pazpar2Error();     \r
-    } else {\r
-      currentElement = new Pazpar2ResponseData();\r
-    }\r
-    currentElement.setType(localName);\r
-    for (int i=0; i< atts.getLength(); i++) {\r
-       currentElement.setAttribute(atts.getLocalName(i), atts.getValue(i));\r
-    }\r
-    if (!docTypes.contains(localName)) {\r
-      dataElements.peek().addElement(localName, currentElement);\r
-    }\r
-    dataElements.push(currentElement);    \r
-  }\r
\r
-  @Override\r
-  public void characters(char[] ch, int start, int length) throws SAXException {\r
-    String data = new String(ch, start, length);        \r
-    dataElements.peek().appendContent(data);    \r
-  }\r
-  \r
-  @Override\r
-  public void endElement(String namespaceURI, String localName, String qName) throws SAXException {\r
-    if (dataElements.size()==1) {\r
-      result = dataElements.pop();\r
-    } else {\r
-      dataElements.pop();\r
-    }\r
-  }\r
-}\r