String absolutePath = node.absolutePath(); String scope = getScope(absolutePath); if (DefaultScope.SCOPE.equals(scope)) return false; String path = absolutePath.length() <= baseLength ? EMPTY_STRING : EclipsePreferences.makeRelative(absolutePath.substring(baseLength));  for (int i = 0; i < excludesList.length; i++) { String exclusion = EclipsePreferences.makeRelative(excludesList[i]); if (path.startsWith(exclusion)) return false; } boolean needToAddVersion = InstanceScope.SCOPE.equals(scope);  String[] keys = node.keys(); for (int i = 0; i < keys.length; i++) { String key = keys[i]; boolean ignore = false; for (int j = 0; !ignore && j < excludesList.length; j++) if (EclipsePreferences.encodePath(path, key).startsWith(EclipsePreferences.makeRelative(excludesList[j]))) ignore = true; if (!ignore) { String value = node.get(key, null); if (value != null) { if (needToAddVersion) { String bundle = getBundleName(absolutePath); if (bundle != null) { String version = getBundleVersion(bundle); if (version != null) result.put(BUNDLE_VERSION_PREFIX + bundle, version); } needToAddVersion = false; } result.put(EclipsePreferences.encodePath(absolutePath, key), value); } } } return true;
if (node.keys().length != 0) result[0] = true; return !result[0];
			public boolean visit(IEclipsePreferences node) throws BackingStoreException {				// don't store defaults				String absolutePath = node.absolutePath();				String scope = getScope(absolutePath);				if (DefaultScope.SCOPE.equals(scope))					return false;				String path = absolutePath.length() <= baseLength ? EMPTY_STRING : EclipsePreferences.makeRelative(absolutePath.substring(baseLength));				// check the excludes list to see if this node should be considered				for (int i = 0; i < excludesList.length; i++) {					String exclusion = EclipsePreferences.makeRelative(excludesList[i]);					if (path.startsWith(exclusion))						return false;				}				boolean needToAddVersion = InstanceScope.SCOPE.equals(scope);				// check the excludes list for each preference				String[] keys = node.keys();				for (int i = 0; i < keys.length; i++) {					String key = keys[i];					boolean ignore = false;					for (int j = 0; !ignore && j < excludesList.length; j++)						if (EclipsePreferences.encodePath(path, key).startsWith(EclipsePreferences.makeRelative(excludesList[j])))							ignore = true;					if (!ignore) {						String value = node.get(key, null);						if (value != null) {							if (needToAddVersion) {								String bundle = getBundleName(absolutePath);								if (bundle != null) {									String version = getBundleVersion(bundle);									if (version != null)										result.put(BUNDLE_VERSION_PREFIX + bundle, version);								}								needToAddVersion = false;							}							result.put(EclipsePreferences.encodePath(absolutePath, key), value);						}					}				}				return true;			}