1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (c) 2004 World Wide Web Consortium,
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (Massachusetts Institute of Technology, Institut National de
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Recherche en Informatique et en Automatique, Keio University). All
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Rights Reserved. This program is distributed under the W3C's Software
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Intellectual Property License. This program is distributed in the
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * PURPOSE.
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.w3c.domts;
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList;
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Iterator;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DOMError;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DOMErrorHandler;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *   This is a utility implementation of EventListener
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *      that captures all events and provides access
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *      to lists of all events by mode
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class DOMErrorMonitor
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    implements DOMErrorHandler {
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  private final List errors = new ArrayList();
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  /**
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   * Public constructor
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   *
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   */
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public DOMErrorMonitor() {
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  /**
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   * Implementation of DOMErrorHandler.handleError that
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   * adds copy of error to list for later retrieval.
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   *
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   */
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public boolean handleError(DOMError error) {
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    errors.add(new DOMErrorImpl(error));
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return true;
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  /**
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   * Gets list of errors
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   *
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   * @return return errors
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project   */
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public List getAllErrors() {
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    return new ArrayList(errors);
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  public void assertLowerSeverity(DOMTestCase testCase, String id, int severity) {
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    Iterator iter = errors.iterator();
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    while (iter.hasNext()) {
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      DOMError error = (DOMError) iter.next();
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      if (error.getSeverity() >= severity) {
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        testCase.fail(id + error.getMessage());
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      }
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project  }
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
67