1 16 19 20 package org.apache.pluto.portalImpl.om.common.impl; 21 22 import java.util.Collection ; 23 import java.util.HashSet ; 24 import java.util.Iterator ; 25 import java.util.List ; 26 27 import javax.portlet.PreferencesValidator; 28 29 import org.apache.pluto.om.common.Preference; 30 import org.apache.pluto.om.common.PreferenceSet; 31 import org.apache.pluto.om.common.PreferenceSetCtrl; 32 import org.apache.pluto.portalImpl.services.log.Log; 33 import org.apache.pluto.services.log.Logger; 34 import org.apache.pluto.util.StringUtils; 35 36 public class PreferenceSetImpl extends HashSet 37 implements PreferenceSet, PreferenceSetCtrl, java.io.Serializable { 38 39 private String castorPreferencesValidator; 40 private ClassLoader classLoader; 41 private Logger log = null; 42 43 public PreferenceSetImpl() { 44 this.log = Log.getService().getLogger(getClass()); 45 } 46 47 49 public Preference get(String name) 50 { 51 Iterator iterator = this.iterator(); 52 while (iterator.hasNext()) { 53 Preference preference = (Preference)iterator.next(); 54 if (preference.getName().equals(name)) { 55 return preference; 56 } 57 } 58 return null; 59 } 60 61 public PreferencesValidator getPreferencesValidator() 62 { 63 if (this.classLoader == null) 64 throw new IllegalStateException ("Portlet class loader not yet available to load preferences validator."); 65 66 if (castorPreferencesValidator == null) 67 return null; 68 69 try { 70 Object validator = classLoader.loadClass(castorPreferencesValidator).newInstance(); 71 if (validator instanceof PreferencesValidator) 72 return(PreferencesValidator)validator; 73 else 74 log.error("Specified class " + castorPreferencesValidator +" is no preferences validator."); 75 } catch (Exception e) { 76 log.error(e.getMessage(), e); 77 } 78 79 return null; 80 } 81 82 84 public Preference add(String name, List values) 85 { 86 PreferenceImpl preference = new PreferenceImpl(); 87 preference.setName(name); 88 preference.setValues(values); 89 90 super.add(preference); 91 92 return preference; 93 } 94 95 public Preference remove(String name) 96 { 97 Iterator iterator = this.iterator(); 98 while (iterator.hasNext()) { 99 Preference preference = (Preference)iterator.next(); 100 if (preference.getName().equals(name)) { 101 super.remove(preference); 102 return preference; 103 } 104 } 105 return null; 106 } 107 108 public void remove(Preference preference) 109 { 110 super.remove(preference); 111 } 112 113 115 public String toString() 116 { 117 return toString(0); 118 } 119 120 public String toString(int indent) 121 { 122 StringBuffer buffer = new StringBuffer (50); 123 StringUtils.newLine(buffer,indent); 124 buffer.append(getClass().toString()); 125 buffer.append(": "); 126 Iterator iterator = this.iterator(); 127 while (iterator.hasNext()) { 128 buffer.append(((PreferenceImpl)iterator.next()).toString(indent+2)); 129 } 130 return buffer.toString(); 131 } 132 133 134 136 public String getCastorPreferencesValidator() 137 { 138 return castorPreferencesValidator; 139 } 140 141 public void setCastorPreferencesValidator(String castorPreferencesValidator) 142 { 143 this.castorPreferencesValidator = castorPreferencesValidator; 144 } 145 146 public Collection getCastorPreferences() 147 { 148 return this; 149 } 150 151 public void setClassLoader(ClassLoader loader) 152 { 153 this.classLoader = loader; 154 } 155 156 160 public boolean addAll(Collection c) { 161 Iterator it = c.iterator(); 162 while (it.hasNext()) { 163 PreferenceImpl pref = (PreferenceImpl) it.next(); 164 this.add(pref.getName(), pref.getClonedCastorValuesAsList()); 165 } 166 167 return true; } 169 170 } 171 | Popular Tags |