01 /* This file is part of the project "Hilbert II" - http://www.qedeq.org
02 *
03 * Copyright 2000-2011, Michael Meyling <mime@qedeq.org>.
04 *
05 * "Hilbert II" is free software; you can redistribute
06 * it and/or modify it under the terms of the GNU General Public
07 * License as published by the Free Software Foundation; either
08 * version 2 of the License, or (at your option) any later version.
09 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16 package org.qedeq.kernel.xml.handler.module;
17
18 import org.qedeq.kernel.se.dto.module.AuthorVo;
19 import org.qedeq.kernel.xml.common.XmlSyntaxException;
20 import org.qedeq.kernel.xml.handler.common.AbstractSimpleHandler;
21 import org.qedeq.kernel.xml.handler.common.SimpleAttributes;
22
23 /**
24 * Parse author list.
25 *
26 * @version $Revision: 1.1 $
27 * @author Michael Meyling
28 */
29 public class AuthorHandler extends AbstractSimpleHandler {
30
31 /** Author. */
32 private AuthorVo author;
33
34 /** Email address of one author. */
35 private String email;
36
37 /** Parses the name of the author. */
38 private final LatexHandler authorNameHandler;
39
40
41 /**
42 * Handles list of authors.
43 *
44 * @param handler Parent handler.
45 */
46 public AuthorHandler(final AbstractSimpleHandler handler) {
47 super(handler, "AUTHOR");
48 authorNameHandler = new LatexHandler(this, "NAME");
49 }
50
51 public final void init() {
52 author = null;
53 email = null;
54 }
55
56 /**
57 * Get author.
58 *
59 * @return Author.
60 */
61 public final AuthorVo getAuthor() {
62 return author;
63 }
64
65 public final void startElement(final String name, final SimpleAttributes attributes)
66 throws XmlSyntaxException {
67 if (getStartTag().equals(name)) {
68 email = attributes.getString("email");
69 } else if (authorNameHandler.getStartTag().equals(name)) {
70 changeHandler(authorNameHandler, name, attributes);
71 } else {
72 throw XmlSyntaxException.createUnexpectedTagException(name);
73 }
74 }
75
76 public final void endElement(final String name) throws XmlSyntaxException {
77 if (getStartTag().equals(name)) {
78 // nothing to do
79 } else if (authorNameHandler.getStartTag().equals(name)) {
80 author = new AuthorVo(authorNameHandler.getLatex(), email);
81 } else {
82 throw XmlSyntaxException.createUnexpectedTagException(name);
83 }
84 }
85 }
|