    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    }