001 // This file is part of the Attempto Java Packages.
002 // Copyright 2008, Attempto Group, University of Zurich (see http://attempto.ifi.uzh.ch).
003 //
004 // The Attempto Java Packages is free software: you can redistribute it and/or modify it under the
005 // terms of the GNU Lesser General Public License as published by the Free Software Foundation,
006 // either version 3 of the License, or (at your option) any later version.
007 //
008 // The Attempto Java Packages is distributed in the hope that it will be useful, but WITHOUT ANY
009 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
010 // PURPOSE. See the GNU Lesser General Public License for more details.
011 //
012 // You should have received a copy of the GNU Lesser General Public License along with the Attempto
013 // Java Packages. If not, see http://www.gnu.org/licenses/.
014
015 package ch.uzh.ifi.attempto.ape;
016
017 import java.io.StringReader;
018
019 import org.jdom.Document;
020 import org.jdom.Element;
021 import org.jdom.input.SAXBuilder;
022
023 /**
024 * This class represents the output that is returned by the ACEParser class.
025 *
026 * @author Tobias Kuhn
027 */
028 public class ACEParserResult {
029
030 private Element result;
031 private MessageContainer messageContainer = new MessageContainer();
032
033
034 ACEParserResult(String xmlString) {
035 try {
036 SAXBuilder sb = new SAXBuilder();
037 sb.setValidation(false);
038 Document xml = sb.build(new StringReader(xmlString));
039 result = xml.getRootElement();
040 messageContainer = new MessageContainer(result.getChild("messages"));
041 } catch (Exception ex) {
042 ex.printStackTrace();
043 }
044 }
045
046 /**
047 * Returns the specified output as a string. If the requested output is not available (because
048 * it has not been requested) then null is returned.
049 *
050 * @param outputType The output to be returned.
051 * @return The output as a string.
052 */
053 public String get(OutputType outputType) {
054 try {
055 Element element = result.getChild(outputType.toString().toLowerCase());
056 return element.getContent(0).getValue();
057 } catch (Exception ex) {
058 return null;
059 }
060 }
061
062 /**
063 * Returns the message container that contains the error and warning messages of the parsing
064 * procedure.
065 *
066 * @return The message container.
067 */
068 public MessageContainer getMessageContainer() {
069 return messageContainer;
070 }
071
072 }