| package org.apache.harmony.prefs.tests.java.util.prefs; |
| |
| import java.util.prefs.NodeChangeEvent; |
| import java.util.prefs.NodeChangeListener; |
| import java.util.prefs.Preferences; |
| |
| public class MockNodeChangeListener implements NodeChangeListener { |
| private Object addLock = new Object(); |
| |
| private Object removeLock = new Object(); |
| |
| private int added = 0; |
| |
| private int removed = 0; |
| |
| private int testNum = 0; |
| |
| public static final int TEST_GET_CHILD = 1; |
| |
| public static final int TEST_GET_PARENT = 2; |
| |
| boolean addResult = false; |
| |
| boolean removeResult = false; |
| |
| public MockNodeChangeListener(int test) { |
| testNum = test; |
| } |
| |
| public MockNodeChangeListener() { |
| |
| } |
| |
| public void waitForEvent() { |
| try { |
| synchronized (addLock) { |
| addLock.wait(500); |
| } |
| } catch (InterruptedException e) { |
| } |
| } |
| |
| public void childAdded(NodeChangeEvent e) { |
| |
| synchronized (addLock) { |
| switch (testNum) { |
| case TEST_GET_CHILD: |
| Preferences child = e.getChild(); |
| if (child == null) { |
| addResult = false; |
| } else { |
| if (child.name() == "mock1") { |
| addResult = true; |
| } |
| } |
| break; |
| case TEST_GET_PARENT: |
| Preferences parent = e.getParent(); |
| if (parent == null) { |
| addResult = false; |
| } else { |
| if (parent.name() == "mock") { |
| addResult = true; |
| } |
| } |
| |
| break; |
| } |
| ++added; |
| addLock.notifyAll(); |
| } |
| } |
| |
| public void childRemoved(NodeChangeEvent e) { |
| synchronized (removeLock) { |
| switch (testNum) { |
| case TEST_GET_CHILD: |
| Preferences child = e.getChild(); |
| if (child == null) { |
| removeResult = false; |
| } else { |
| if (child.name() == "mock1") { |
| removeResult = true; |
| } |
| } |
| break; |
| case TEST_GET_PARENT: |
| Preferences parent = e.getParent(); |
| if (parent == null) { |
| addResult = false; |
| } else { |
| if (parent.name() == "mock") { |
| addResult = true; |
| } |
| } |
| |
| break; |
| } |
| removed++; |
| removeLock.notifyAll(); |
| } |
| } |
| |
| public boolean getAddResult() { |
| synchronized (addLock) { |
| return addResult; |
| } |
| } |
| |
| public boolean getRemoveResult() { |
| synchronized (removeLock) { |
| return removeResult; |
| } |
| } |
| |
| public int getAdded() { |
| synchronized (addLock) { |
| return added; |
| } |
| } |
| |
| public int getRemoved() { |
| synchronized (removeLock) { |
| return removed; |
| } |
| } |
| |
| public void reset() { |
| added = 0; |
| removed = 0; |
| } |
| } |