You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by nd...@apache.org on 2009/01/02 03:52:35 UTC
svn commit: r730659 [2/4] - in
/harmony/enhanced/classlib/trunk/modules/prefs/src:
main/java/java/util/prefs/ test/java/org/apache/harmony/prefs/tests/
test/java/org/apache/harmony/prefs/tests/java/util/prefs/
Modified: harmony/enhanced/classlib/trunk/modules/prefs/src/main/java/java/util/prefs/RegistryPreferencesImpl.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/prefs/src/main/java/java/util/prefs/RegistryPreferencesImpl.java?rev=730659&r1=730658&r2=730659&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/prefs/src/main/java/java/util/prefs/RegistryPreferencesImpl.java (original)
+++ harmony/enhanced/classlib/trunk/modules/prefs/src/main/java/java/util/prefs/RegistryPreferencesImpl.java Thu Jan 1 18:52:34 2009
@@ -14,35 +14,29 @@
* limitations under the License.
*/
-
package java.util.prefs;
import org.apache.harmony.prefs.internal.nls.Messages;
/**
- * Default implementation of <code>AbstractPreferences</code> for windows platform,
- * using windows registry as back end.
+ * Default implementation of <code>AbstractPreferences</code> for windows platform, using windows
+ * registry as back end.
*
* @since 1.4
*/
class RegistryPreferencesImpl extends AbstractPreferences {
-
+
static {
- System.loadLibrary("hyprefs"); //$NON-NLS-1$
- }
+ System.loadLibrary("hyprefs"); //$NON-NLS-1$
+ }
- /*
- * --------------------------------------------------------------
- * Class fields
- * --------------------------------------------------------------
- */
- //registry path for root preferences
+ // registry path for root preferences
private static final String ROOT_PATH = "SOFTWARE\\JavaSoft\\Prefs"; //$NON-NLS-1$
- //index for returned error code
+ // index for returned error code
private static final int ERROR_CODE = 0;
- //error code for registry access
+ // error code for registry access
private static final int RETURN_SUCCESS = 0;
@SuppressWarnings("unused")
@@ -53,22 +47,11 @@
@SuppressWarnings("unused")
private static final int RETURN_UNKNOWN_ERROR = 3;
- /*
- * --------------------------------------------------------------
- * Instance fields
- * --------------------------------------------------------------
- */
- //registry path for this preferences, default value is the root path
+ // registry path for this preferences, default value is the root path
private byte[] path = ROOT_PATH.getBytes();
- /*
- * --------------------------------------------------------------
- * Constructors
- * --------------------------------------------------------------
- */
/**
- * Construct <code>RegistryPreferencesImpl</code> instance using given parent
- * and given name
+ * Construct <code>RegistryPreferencesImpl</code> instance using given parent and given name
*/
public RegistryPreferencesImpl(AbstractPreferences parent, String name) {
super(parent, name);
@@ -77,8 +60,8 @@
}
/**
- * Construct root <code>RegistryPreferencesImpl</code> instance, construct
- * user root if userNode is true, system root otherwise
+ * Construct root <code>RegistryPreferencesImpl</code> instance, construct user root if userNode
+ * is true, system root otherwise
*/
public RegistryPreferencesImpl(boolean userNode) {
super(null, ""); //$NON-NLS-1$
@@ -91,7 +74,7 @@
byte[][] names = getChildNames(path, userNode, error);
if (error[ERROR_CODE] != RETURN_SUCCESS) {
// prefs.B=Enumerate child nodes error\!
- throw new BackingStoreException(Messages.getString("prefs.B")); //$NON-NLS-1$
+ throw new BackingStoreException(Messages.getString("prefs.B")); //$NON-NLS-1$
}
String[] result = new String[names.length];
for (int i = 0; i < result.length; i++) {
@@ -104,7 +87,7 @@
protected AbstractPreferences childSpi(String name) {
int[] error = new int[1];
RegistryPreferencesImpl result = new RegistryPreferencesImpl(this, name);
- //FIXME: is it right thing to set newNode here?
+ // FIXME: is it right thing to set newNode here?
result.newNode = getNode(path, encodeWindowsStr(name).getBytes(), result.userNode, error);
if (error[ERROR_CODE] == RETURN_ACCESS_DENIED) {
throw new SecurityException();
@@ -118,7 +101,7 @@
flushPrefs(path, userNode, error);
if (error[ERROR_CODE] != RETURN_SUCCESS) {
// prefs.C=Flush error\!
- throw new BackingStoreException(Messages.getString("prefs.C")); //$NON-NLS-1$
+ throw new BackingStoreException(Messages.getString("prefs.C")); //$NON-NLS-1$
}
}
@@ -138,7 +121,7 @@
byte[][] keys = keys(path, userNode, errorCode);
if (errorCode[ERROR_CODE] != RETURN_SUCCESS) {
// prefs.D=Enumerate keys error\!
- throw new BackingStoreException(Messages.getString("prefs.D")); //$NON-NLS-1$
+ throw new BackingStoreException(Messages.getString("prefs.D")); //$NON-NLS-1$
}
String[] result = new String[keys.length];
for (int i = 0; i < result.length; i++) {
@@ -153,18 +136,18 @@
putValue(path, encodeWindowsStr(name).getBytes(), value.getBytes(), userNode, errorCode);
if (errorCode[ERROR_CODE] == RETURN_ACCESS_DENIED) {
// prefs.E=Access denied\!
- throw new SecurityException(Messages.getString("prefs.E")); //$NON-NLS-1$
+ throw new SecurityException(Messages.getString("prefs.E")); //$NON-NLS-1$
}
}
@Override
protected void removeNodeSpi() throws BackingStoreException {
int[] error = new int[1];
- removeNode(((RegistryPreferencesImpl) parent()).path,
- encodeWindowsStr(name()).getBytes(), userNode, error);
+ removeNode(((RegistryPreferencesImpl) parent()).path, encodeWindowsStr(name()).getBytes(),
+ userNode, error);
if (error[ERROR_CODE] != RETURN_SUCCESS) {
// prefs.F=Remove node error\!
- throw new BackingStoreException(Messages.getString("prefs.F")); //$NON-NLS-1$
+ throw new BackingStoreException(Messages.getString("prefs.F")); //$NON-NLS-1$
}
}
@@ -174,7 +157,7 @@
removeKey(path, encodeWindowsStr(key).getBytes(), userNode, errorCode);
if (errorCode[ERROR_CODE] == RETURN_ACCESS_DENIED) {
// prefs.E=Access denied\!
- throw new SecurityException(Messages.getString("prefs.E")); //$NON-NLS-1$
+ throw new SecurityException(Messages.getString("prefs.E")); //$NON-NLS-1$
}
}
@@ -183,71 +166,70 @@
flushSpi();
}
- //handle the lower/upper case pitfall
- private static String encodeWindowsStr(String str){
+ // handle the lower/upper case pitfall
+ private static String encodeWindowsStr(String str) {
char[] chars = str.toCharArray();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
- if(c == '/'){
+ if (c == '/') {
buffer.append("\\"); //$NON-NLS-1$
- }else if(c == '\\'){
+ } else if (c == '\\') {
buffer.append("//"); //$NON-NLS-1$
- }else if((c >= 'A') && (c <= 'Z')){
+ } else if ((c >= 'A') && (c <= 'Z')) {
buffer.append('/').append(c);
- }else{
+ } else {
buffer.append(c);
}
}
return buffer.toString();
}
-
- private static String decodeWindowsStr(String str){
+
+ private static String decodeWindowsStr(String str) {
StringBuffer buffer = new StringBuffer();
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
- char c= chars[i];
- if(c == '\\'){
+ char c = chars[i];
+ if (c == '\\') {
buffer.append('/');
- }else if(c == '/'){
- if((c = chars[++i]) == '/'){
+ } else if (c == '/') {
+ if ((c = chars[++i]) == '/') {
buffer.append('\\');
- }else{
+ } else {
buffer.append(c);
}
- }else{
+ } else {
buffer.append(c);
}
}
return buffer.toString();
}
-
+
/*
- * --------------------------------------------------------------
- * Native methods declaration
+ * --------------------------------------------------------------
+ * Native method declarations
* --------------------------------------------------------------
*/
- private native byte[] getValue(byte[] registryPath, byte[] key,
- boolean isUserNode, int[] errorCode);
- private native void putValue(byte[] registryPath, byte[] key, byte[] value,
- boolean isUserNode, int[] errorCode);
+ private native byte[] getValue(byte[] registryPath, byte[] key, boolean isUserNode,
+ int[] errorCode);
- private native void removeKey(byte[] registryPath, byte[] key,
- boolean isUserNode, int[] errorCode);
+ private native void putValue(byte[] registryPath, byte[] key, byte[] value, boolean isUserNode,
+ int[] errorCode);
- private native byte[][] keys(byte[] registryPath, boolean isUserNode,
+ private native void removeKey(byte[] registryPath, byte[] key, boolean isUserNode,
int[] errorCode);
- private native void removeNode(byte[] registryPath, byte[] name,
- boolean isUserNode, int[] errorCode);
+ private native byte[][] keys(byte[] registryPath, boolean isUserNode, int[] errorCode);
- private native boolean getNode(byte[] registryPath, byte[] name,
- boolean isUserNode, int[] errorCode);
+ private native void removeNode(byte[] registryPath, byte[] name, boolean isUserNode,
+ int[] errorCode);
+
+ private native boolean getNode(byte[] registryPath, byte[] name, boolean isUserNode,
+ int[] errorCode);
- private native byte[][] getChildNames(byte[] registryPath,
- boolean isUserNode, int[] errorCode);
+ private native byte[][] getChildNames(byte[] registryPath, boolean isUserNode, int[] errorCode);
- private native void flushPrefs(byte[] registryPath, boolean isUserNode,
- int[] errorCode) throws SecurityException;
+ private native void flushPrefs(byte[] registryPath, boolean isUserNode, int[] errorCode)
+ throws SecurityException;
}
Modified: harmony/enhanced/classlib/trunk/modules/prefs/src/main/java/java/util/prefs/XMLParser.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/prefs/src/main/java/java/util/prefs/XMLParser.java?rev=730659&r1=730658&r2=730659&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/prefs/src/main/java/java/util/prefs/XMLParser.java (original)
+++ harmony/enhanced/classlib/trunk/modules/prefs/src/main/java/java/util/prefs/XMLParser.java Thu Jan 1 18:52:34 2009
@@ -14,7 +14,6 @@
* limitations under the License.
*/
-
package java.util.prefs;
import java.io.BufferedInputStream;
@@ -55,7 +54,6 @@
/**
* Utility class for the Preferences import/export from XML file.
- *
*/
class XMLParser {
@@ -68,15 +66,15 @@
* Constant - the DTD string
*/
static final String PREFS_DTD = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" //$NON-NLS-1$
- + " <!ELEMENT preferences (root)>" //$NON-NLS-1$
- + " <!ATTLIST preferences EXTERNAL_XML_VERSION CDATA \"0.0\" >" //$NON-NLS-1$
- + " <!ELEMENT root (map, node*) >" //$NON-NLS-1$
- + " <!ATTLIST root type (system|user) #REQUIRED >" //$NON-NLS-1$
- + " <!ELEMENT node (map, node*) >" //$NON-NLS-1$
- + " <!ATTLIST node name CDATA #REQUIRED >" //$NON-NLS-1$
- + " <!ELEMENT map (entry*) >" //$NON-NLS-1$
- + " <!ELEMENT entry EMPTY >" //$NON-NLS-1$
- + " <!ATTLIST entry key CDATA #REQUIRED value CDATA #REQUIRED >"; //$NON-NLS-1$
+ + " <!ELEMENT preferences (root)>" //$NON-NLS-1$
+ + " <!ATTLIST preferences EXTERNAL_XML_VERSION CDATA \"0.0\" >" //$NON-NLS-1$
+ + " <!ELEMENT root (map, node*) >" //$NON-NLS-1$
+ + " <!ATTLIST root type (system|user) #REQUIRED >" //$NON-NLS-1$
+ + " <!ELEMENT node (map, node*) >" //$NON-NLS-1$
+ + " <!ATTLIST node name CDATA #REQUIRED >" //$NON-NLS-1$
+ + " <!ELEMENT map (entry*) >" //$NON-NLS-1$
+ + " <!ELEMENT entry EMPTY >" //$NON-NLS-1$
+ + " <!ATTLIST entry key CDATA #REQUIRED value CDATA #REQUIRED >"; //$NON-NLS-1$
/*
* Constant - the specified header
@@ -92,7 +90,7 @@
* empty string array constant
*/
private static final String[] EMPTY_SARRAY = new String[0];
-
+
/*
* Constant - used by FilePreferencesImpl, which is default implementation of Linux platform
*/
@@ -102,7 +100,7 @@
* Constant - specify the DTD version
*/
private static final float XML_VERSION = 1.0f;
-
+
/*
* DOM builder
*/
@@ -126,7 +124,7 @@
}
builder.setEntityResolver(new EntityResolver() {
public InputSource resolveEntity(String publicId, String systemId)
- throws SAXException, IOException {
+ throws SAXException, IOException {
if (systemId.equals(PREFS_DTD_NAME)) {
InputSource result = new InputSource(new StringReader(
PREFS_DTD));
@@ -181,7 +179,7 @@
flushEmptyElement("map", out); //$NON-NLS-1$
StringTokenizer ancestors = new StringTokenizer(prefs.absolutePath(),
- "/"); //$NON-NLS-1$
+ "/"); //$NON-NLS-1$
exportNode(ancestors, prefs, withSubTree, out);
flushEndTag("root", out); //$NON-NLS-1$
@@ -192,7 +190,7 @@
private static void exportNode(StringTokenizer ancestors,
Preferences prefs, boolean withSubTree, BufferedWriter out)
- throws IOException, BackingStoreException {
+ throws IOException, BackingStoreException {
if (ancestors.hasMoreTokens()) {
String name = ancestors.nextToken();
flushStartTag(
@@ -211,7 +209,7 @@
}
private static void exportSubTree(Preferences prefs, BufferedWriter out)
- throws BackingStoreException, IOException {
+ throws BackingStoreException, IOException {
String[] names = prefs.childrenNames();
if (names.length > 0) {
for (int i = 0; i < names.length; i++) {
@@ -226,7 +224,7 @@
}
private static void exportEntries(Preferences prefs, BufferedWriter out)
- throws BackingStoreException, IOException {
+ throws BackingStoreException, IOException {
String[] keys = prefs.keys();
String[] values = new String[keys.length];
for (int i = 0; i < keys.length; i++) {
@@ -252,7 +250,7 @@
}
private static void flushEndTag(String tagName, BufferedWriter out)
- throws IOException {
+ throws IOException {
flushIndent(indent--, out);
out.write("</"); //$NON-NLS-1$
out.write(tagName);
@@ -261,7 +259,7 @@
}
private static void flushEmptyElement(String tagName, BufferedWriter out)
- throws IOException {
+ throws IOException {
flushIndent(++indent, out);
out.write("<"); //$NON-NLS-1$
out.write(tagName);
@@ -293,7 +291,7 @@
}
private static void flushIndent(int ind, BufferedWriter out)
- throws IOException {
+ throws IOException {
for (int i = 0; i < ind; i++) {
out.write(" "); //$NON-NLS-1$
}
@@ -310,7 +308,7 @@
}
private static void flushStartTag(String tagName, BufferedWriter out)
- throws IOException {
+ throws IOException {
flushIndent(++indent, out);
out.write("<"); //$NON-NLS-1$
out.write(tagName);
@@ -350,7 +348,7 @@
* utilities for Preferences import
**************************************************************************/
static void importPrefs(InputStream in) throws IOException,
- InvalidPreferencesFormatException {
+ InvalidPreferencesFormatException {
try {
// load XML document
Document doc = builder.parse(new InputSource(in));
@@ -367,7 +365,7 @@
// check preferences root's type
Element root = (Element) preferences
- .getElementsByTagName("root").item(0); //$NON-NLS-1$
+ .getElementsByTagName("root").item(0); //$NON-NLS-1$
Preferences prefsRoot = null;
String type = root.getAttribute("type"); //$NON-NLS-1$
if (type.equals("user")) { //$NON-NLS-1$
@@ -388,7 +386,7 @@
}
private static void loadNode(Preferences prefs, Element node)
- throws TransformerException {
+ throws TransformerException {
// load preferences
NodeList children = XPathAPI.selectNodeList(node, "node"); //$NON-NLS-1$
NodeList entries = XPathAPI.selectNodeList(node, "map/entry"); //$NON-NLS-1$
@@ -501,7 +499,7 @@
}
});
}
-
+
static void flushFilePrefsImpl(File file, Properties prefs) throws IOException {
BufferedWriter out = null;
FileLock lock = null;
@@ -540,5 +538,3 @@
}
}
}
-
-
Modified: harmony/enhanced/classlib/trunk/modules/prefs/src/test/java/org/apache/harmony/prefs/tests/AllTests.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/prefs/src/test/java/org/apache/harmony/prefs/tests/AllTests.java?rev=730659&r1=730658&r2=730659&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/prefs/src/test/java/org/apache/harmony/prefs/tests/AllTests.java (original)
+++ harmony/enhanced/classlib/trunk/modules/prefs/src/test/java/org/apache/harmony/prefs/tests/AllTests.java Thu Jan 1 18:52:34 2009
@@ -25,15 +25,15 @@
*/
public class AllTests {
- public static void main(String[] args) {
- junit.textui.TestRunner.run(AllTests.suite());
- }
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(AllTests.suite());
+ }
- public static Test suite() {
- TestSuite suite = new TestSuite("All Prefs test suites");
- // $JUnit-BEGIN$
- suite.addTest(org.apache.harmony.prefs.tests.java.util.prefs.AllTests.suite());
- // $JUnit-END$
- return suite;
- }
+ public static Test suite() {
+ TestSuite suite = new TestSuite("All Prefs test suites");
+ // $JUnit-BEGIN$
+ suite.addTest(org.apache.harmony.prefs.tests.java.util.prefs.AllTests.suite());
+ // $JUnit-END$
+ return suite;
+ }
}