1/*
2 * Copyright (c) 2004 World Wide Web Consortium, (Massachusetts Institute of
3 * Technology, Institut National de Recherche en Informatique et en
4 * Automatique, Keio University). All Rights Reserved. This program is
5 * distributed under the W3C's Software Intellectual Property License. This
6 * program is distributed in the hope that it will be useful, but WITHOUT ANY
7 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
8 * FOR A PARTICULAR PURPOSE. See W3C License
9 * http://www.w3.org/Consortium/Legal/ for more details.
10 */
11
12package org.w3c.domts;
13
14import java.util.ArrayList;
15import java.util.List;
16
17import org.w3c.dom.Node;
18import org.w3c.dom.UserDataHandler;
19
20/**
21 * This is a utility implementation of UserDataHandler that captures all
22 * notifications
23 */
24public class UserDataMonitor
25    implements UserDataHandler {
26  private final List notifications = new ArrayList();
27
28  /**
29   * Public constructor
30   *
31   */
32  public UserDataMonitor() {
33  }
34
35  /**
36   * Implementation of UserDataHandler.handle. Creates a UserDataNotification
37   * for later testing
38   *
39   * @param operation
40   *            See org.w3c.dom.UserDataHandler
41   * @param key
42   *            See org.w3c.dom.UserDataHandler
43   * @param data
44   *            See org.w3c.dom.UserDataHandler
45   * @param src
46   *            See org.w3c.dom.UserDataHandler
47   * @param dst
48   *            See org.w3c.dom.UserDataHandler
49   */
50  public void handle(
51      short operation,
52      String key,
53      Object data,
54      Node src,
55      Node dst) {
56    notifications.add(
57        new UserDataNotification(operation, key, data, src, dst));
58  }
59
60  /**
61   * Gets list of notifications
62   *
63   * @return List of notifications, may not be null.
64   */
65  public final List getAllNotifications() {
66    return new ArrayList(notifications);
67  }
68
69}
70