1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* Licensed to the Apache Software Foundation (ASF) under one or more 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 7fc95c99cfa4921fef424f3f411d013b821589e69Elliott Hughes * 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 9fc95c99cfa4921fef424f3f411d013b821589e69Elliott Hughes * 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.prefs.tests.java.util.prefs; 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayInputStream; 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.InputStream; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.OutputStream; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.net.MalformedURLException; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.prefs.AbstractPreferences; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.prefs.BackingStoreException; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.prefs.InvalidPreferencesFormatException; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.prefs.NodeChangeListener; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.prefs.PreferenceChangeListener; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.prefs.Preferences; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/** 34fc95c99cfa4921fef424f3f411d013b821589e69Elliott Hughes * 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class PreferencesTest extends TestCase { 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MockInputStream stream = null; 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream in; 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @see TestCase#setUp() 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() throws Exception { 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super.setUp(); 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in = new ByteArrayInputStream("<!DOCTYPE preferences SYSTEM \"http://java.sun.com/dtd/preferences.dtd\"><preferences><root type=\"user\"><map></map></root></preferences>".getBytes("UTF-8")); 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes stream = new MockInputStream(in); 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @see TestCase#tearDown() 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() throws Exception { 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super.tearDown(); 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes stream.close(); 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSystemNodeForPackage() throws BackingStoreException { 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences p = null; 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes p = Preferences.systemNodeForPackage(Object.class); 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (SecurityException e) { 66fc95c99cfa4921fef424f3f411d013b821589e69Elliott Hughes // may be caused by absence of privileges on the underlying OS 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("/java/lang", p.absolutePath()); 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(p instanceof AbstractPreferences); 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences root = Preferences.systemRoot(); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences parent = root.node("java"); 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(parent, p.parent()); 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(p.isUserNode()); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("lang", p.name()); 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("System Preference Node: " + p.absolutePath(), p 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .toString()); 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, p.childrenNames().length); 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, p.keys().length); 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes parent.removeNode(); 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.userNodeForPackage(null); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testSystemRoot() throws BackingStoreException { 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences p = Preferences.systemRoot(); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(p instanceof AbstractPreferences); 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("/", p.absolutePath()); 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(null, p.parent()); 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(p.isUserNode()); 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("", p.name()); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("System Preference Node: " + p.absolutePath(), p 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .toString()); 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testConsts() { 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(80, Preferences.MAX_KEY_LENGTH); 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(80, Preferences.MAX_NAME_LENGTH); 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(8192, Preferences.MAX_VALUE_LENGTH); 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testUserNodeForPackage() throws BackingStoreException { 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences p = Preferences.userNodeForPackage(Object.class); 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("/java/lang", p.absolutePath()); 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(p instanceof AbstractPreferences); 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences root = Preferences.userRoot(); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences parent = root.node("java"); 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(parent, p.parent()); 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(p.isUserNode()); 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("lang", p.name()); 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("User Preference Node: " + p.absolutePath(), p.toString()); 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, p.childrenNames().length); 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, p.keys().length); 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.userNodeForPackage(null); 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw NullPointerException"); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testUserRoot() throws BackingStoreException { 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences p = Preferences.userRoot(); 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(p instanceof AbstractPreferences); 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("/", p.absolutePath()); 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame(null, p.parent()); 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(p.isUserNode()); 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("", p.name()); 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("User Preference Node: " + p.absolutePath(), p.toString()); 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testImportPreferences() throws Exception { 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences prefs = null; 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes prefs = Preferences.userNodeForPackage(PreferencesTest.class); 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assertEquals(0, prefs.childrenNames().length); 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // assertFalse(prefs.nodeExists("mock/child/grandson")); 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes prefs.put("prefskey", "oldvalue"); 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes prefs.put("prefskey2", "oldvalue2"); 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in = PreferencesTest.class 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getResourceAsStream("/prefs/java/util/prefs/userprefs.xml"); 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(in); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes prefs = Preferences.userNodeForPackage(PreferencesTest.class); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, prefs.childrenNames().length); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(prefs.nodeExists("mock/child/grandson")); 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("newvalue", prefs.get("prefskey", null)); 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("oldvalue2", prefs.get("prefskey2", null)); 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("newvalue3", prefs.get("prefskey3", null)); 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in = PreferencesTest.class 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getResourceAsStream("/prefs/java/util/prefs/userprefs-badform.xml"); 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(in); 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw InvalidPreferencesFormatException"); 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidPreferencesFormatException e) { 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in = PreferencesTest.class 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getResourceAsStream("/prefs/java/util/prefs/userprefs-badtype.xml"); 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(in); 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw InvalidPreferencesFormatException"); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidPreferencesFormatException e) { 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in = PreferencesTest.class 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getResourceAsStream("/prefs/java/util/prefs/userprefs-badencoding.xml"); 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(in); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw InvalidPreferencesFormatException"); 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidPreferencesFormatException e) { 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in = PreferencesTest.class 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getResourceAsStream("/prefs/java/util/prefs/userprefs-higherversion.xml"); 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(in); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw InvalidPreferencesFormatException"); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidPreferencesFormatException e) { 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes in = PreferencesTest.class 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getResourceAsStream("/prefs/java/util/prefs/userprefs-ascii.xml"); 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(in); 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes prefs = Preferences.userNodeForPackage(PreferencesTest.class); 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } finally { 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes prefs = Preferences.userNodeForPackage(PreferencesTest.class); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes prefs.removeNode(); 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (Exception e) { 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Ignored 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testImportPreferencesException() throws Exception { 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(null); 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw MalformedURLException"); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (MalformedURLException e) { 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] source = new byte[0]; 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream in = new ByteArrayInputStream(source); 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(in); 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw InvalidPreferencesFormatException"); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (InvalidPreferencesFormatException e) { 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes stream.setResult(MockInputStream.exception); 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(stream); 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IOException"); 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes stream.setResult(MockInputStream.runtimeException); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Preferences.importPreferences(stream); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw RuntimeException"); 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (RuntimeException e) { 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class MockInputStream extends InputStream { 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static final int normal = 0; 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static final int exception = 1; 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static final int runtimeException = 2; 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int result = normal; 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream wrapper; 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void setResult(int i) { 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = i; 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void checkException() throws IOException { 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes switch (result) { 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case normal: 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return; 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case exception: 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throw new IOException("test"); 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes case runtimeException: 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throw new RuntimeException("test"); 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public MockInputStream(InputStream in) { 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes wrapper = in; 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int read() throws IOException { 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes checkException(); 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return wrapper.read(); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes static class MockPreferences extends Preferences { 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public MockPreferences() { 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(); 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String absolutePath() { 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String[] childrenNames() throws BackingStoreException { 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void clear() throws BackingStoreException { 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void exportNode(OutputStream ostream) throws IOException, 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BackingStoreException { 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void exportSubtree(OutputStream ostream) throws IOException, 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BackingStoreException { 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void flush() throws BackingStoreException { 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String get(String key, String deflt) { 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean getBoolean(String key, boolean deflt) { 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return false; 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public byte[] getByteArray(String key, byte[] deflt) { 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public double getDouble(String key, double deflt) { 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return 0; 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public float getFloat(String key, float deflt) { 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return 0; 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public int getInt(String key, int deflt) { 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return 0; 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public long getLong(String key, long deflt) { 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return 0; 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean isUserNode() { 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return false; 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String[] keys() throws BackingStoreException { 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String name() { 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Preferences node(String name) { 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public boolean nodeExists(String name) throws BackingStoreException { 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return false; 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public Preferences parent() { 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void put(String key, String value) { 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void putBoolean(String key, boolean value) { 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void putByteArray(String key, byte[] value) { 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void putDouble(String key, double value) { 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void putFloat(String key, float value) { 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void putInt(String key, int value) { 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void putLong(String key, long value) { 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void remove(String key) { 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void removeNode() throws BackingStoreException { 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void addNodeChangeListener(NodeChangeListener ncl) { 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void addPreferenceChangeListener(PreferenceChangeListener pcl) { 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void removeNodeChangeListener(NodeChangeListener ncl) { 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void removePreferenceChangeListener(PreferenceChangeListener pcl) { 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void sync() throws BackingStoreException { 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes @Override 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public String toString() { 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes return null; 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 457