You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by we...@apache.org on 2005/06/13 19:50:05 UTC
svn commit: r190447 -
/portals/jetspeed-2/trunk/components/registry/src/java/org/apache/jetspeed/om/preference/impl/PrefsPreferenceSetImpl.java
Author: weaver
Date: Mon Jun 13 10:50:04 2005
New Revision: 190447
URL: http://svn.apache.org/viewcvs?rev=190447&view=rev
Log:
Added some dafaults support
Modified:
portals/jetspeed-2/trunk/components/registry/src/java/org/apache/jetspeed/om/preference/impl/PrefsPreferenceSetImpl.java
Modified: portals/jetspeed-2/trunk/components/registry/src/java/org/apache/jetspeed/om/preference/impl/PrefsPreferenceSetImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/registry/src/java/org/apache/jetspeed/om/preference/impl/PrefsPreferenceSetImpl.java?rev=190447&r1=190446&r2=190447&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/registry/src/java/org/apache/jetspeed/om/preference/impl/PrefsPreferenceSetImpl.java (original)
+++ portals/jetspeed-2/trunk/components/registry/src/java/org/apache/jetspeed/om/preference/impl/PrefsPreferenceSetImpl.java Mon Jun 13 10:50:04 2005
@@ -39,6 +39,7 @@
protected Preferences prefsRootNode;
protected PreferencesValidator validator;
+ protected PreferenceSetComposite defaults;
/**
* @param portletEntity
@@ -53,6 +54,12 @@
this.prefsRootNode = prefsRootNode;
}
+
+ public PrefsPreferenceSetImpl( Preferences prefsRootNode, PreferenceSetComposite defaults) throws BackingStoreException
+ {
+ this(prefsRootNode);
+ this.defaults = defaults;
+ }
/**
* <p>
@@ -66,7 +73,16 @@
{
try
{
- return new HashSet(Arrays.asList(prefsRootNode.childrenNames()));
+ if(defaults != null)
+ {
+ Set names = defaults.getNames();
+ names.addAll(new HashSet(Arrays.asList(prefsRootNode.childrenNames())));
+ return names;
+ }
+ else
+ {
+ return new HashSet(Arrays.asList(prefsRootNode.childrenNames()));
+ }
}
catch (BackingStoreException e)
{
@@ -104,14 +120,17 @@
{
try
{
+ Preference pref = null;
if (prefsRootNode.nodeExists(key))
{
- return new PrefsPreference(prefsRootNode.node(key), key);
+ pref = new PrefsPreference(prefsRootNode.node(key), key);
}
- else
+ else if(defaults != null)
{
- return null;
+ pref = defaults.get(key);
}
+
+ return pref;
}
catch (IllegalStateException ise)
{
@@ -244,7 +263,14 @@
{
try
{
- return prefsRootNode.childrenNames().length;
+ int length = prefsRootNode.childrenNames().length;
+
+ if(defaults != null)
+ {
+ length += defaults.size();
+ }
+
+ return length;
}
catch (IllegalStateException ise)
{
@@ -269,7 +295,7 @@
*/
public Iterator iterator()
{
- return new PortletPrefsIterator();
+ return new PortletPrefsIterator();
}
protected class PortletPrefsIterator implements Iterator
@@ -286,6 +312,23 @@
{
beginSize = size();
childrenNames = prefsRootNode.childrenNames();
+ if(defaults != null)
+ {
+ Iterator itr = defaults.getNames().iterator();
+ while( itr.hasNext())
+ {
+ String name = (String) itr.next();
+ if(!arrayContains(childrenNames, name))
+ {
+ String[] tempArray = new String[childrenNames.length+1];
+ System.arraycopy(childrenNames, 0, tempArray, 0, childrenNames.length);
+ tempArray[(tempArray.length-1)] = name;
+ childrenNames = tempArray;
+ }
+ }
+ }
+
+
pointer = 0;
}
catch (IllegalStateException ise)
@@ -359,6 +402,19 @@
beginSize = size();
}
+ }
+
+ protected boolean arrayContains(String[] array, String value)
+ {
+ for(int i=0; i<array.length; i++)
+ {
+ if(array[i].equals(value))
+ {
+ return true;
+ }
+ }
+
+ return false;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org