1 20 21 package org.apache.directory.ldapstudio.browser.core; 22 23 24 import java.util.HashSet ; 25 import java.util.Set ; 26 27 import org.apache.directory.ldapstudio.browser.core.model.schema.BinaryAttribute; 28 import org.apache.directory.ldapstudio.browser.core.model.schema.BinarySyntax; 29 import org.apache.directory.ldapstudio.browser.core.utils.Utils; 30 import org.eclipse.core.runtime.Preferences; 31 32 33 39 public class BrowserCorePreferences 40 { 41 private Set <String > binaryAttributeCache; 42 43 private Set <String > binarySyntaxCache; 44 45 46 52 public Set getBinaryAttributeOidsAndNames() 53 { 54 if ( binaryAttributeCache == null ) 55 { 56 binaryAttributeCache = new HashSet <String >(); 57 BinaryAttribute[] binaryAttributes =getBinaryAttributes(); 58 for ( int i = 0; i < binaryAttributes.length; i++ ) 59 { 60 if ( binaryAttributes[i].getAttributeNumericOidOrName() != null ) 61 { 62 binaryAttributeCache.add( binaryAttributes[i].getAttributeNumericOidOrName() ); 63 } 64 } 65 } 66 return binaryAttributeCache; 67 } 68 69 70 76 public BinaryAttribute[] getBinaryAttributes() 77 { 78 BinaryAttribute[] binaryAttributes = ( BinaryAttribute[] ) load( BrowserCoreConstants.PREFERENCE_BINARY_ATTRIBUTES ); 79 return binaryAttributes; 80 } 81 82 83 89 public void setBinaryAttributes( BinaryAttribute[] binaryAttributes ) 90 { 91 store( BrowserCoreConstants.PREFERENCE_BINARY_ATTRIBUTES, binaryAttributes ); 92 binaryAttributeCache = null; 93 } 94 95 96 102 public BinaryAttribute[] getDefaultBinaryAttributes() 103 { 104 BinaryAttribute[] binaryAttributes = ( BinaryAttribute[] ) loadDefault( BrowserCoreConstants.PREFERENCE_BINARY_ATTRIBUTES ); 105 return binaryAttributes; 106 } 107 108 109 115 public void setDefaultBinaryAttributes( BinaryAttribute[] defaultBinaryAttributes ) 116 { 117 storeDefault( BrowserCoreConstants.PREFERENCE_BINARY_ATTRIBUTES, defaultBinaryAttributes ); 118 } 119 120 121 126 public Set <String > getBinarySyntaxOids() 127 { 128 if ( binarySyntaxCache == null ) 129 { 130 binarySyntaxCache = new HashSet <String >(); 131 BinarySyntax[] binarySyntaxes = getBinarySyntaxes(); 132 for ( int i = 0; i < binarySyntaxes.length; i++ ) 133 { 134 if ( binarySyntaxes[i].getSyntaxNumericOid() != null ) 135 { 136 binarySyntaxCache.add( binarySyntaxes[i].getSyntaxNumericOid() ); 137 } 138 } 139 } 140 return binarySyntaxCache; 141 } 142 143 144 150 public BinarySyntax[] getBinarySyntaxes() 151 { 152 BinarySyntax[] binarySyntaxes = ( BinarySyntax[] ) load( BrowserCoreConstants.PREFERENCE_BINARY_SYNTAXES ); 153 return binarySyntaxes; 154 } 155 156 157 163 public void setBinarySyntaxes( BinarySyntax[] binarySyntaxes ) 164 { 165 store( BrowserCoreConstants.PREFERENCE_BINARY_SYNTAXES, binarySyntaxes ); 166 binarySyntaxCache = null; 167 } 168 169 170 176 public BinarySyntax[] getDefaultBinarySyntaxes() 177 { 178 BinarySyntax[] binarySyntaxes = ( BinarySyntax[] ) loadDefault( BrowserCoreConstants.PREFERENCE_BINARY_SYNTAXES ); 179 return binarySyntaxes; 180 } 181 182 183 189 public void setDefaultBinarySyntaxes( BinarySyntax[] defaultBinarySyntaxes ) 190 { 191 storeDefault( BrowserCoreConstants.PREFERENCE_BINARY_SYNTAXES, defaultBinarySyntaxes ); 192 } 193 194 195 203 private static Object load( String key ) 204 { 205 Preferences store = BrowserCorePlugin.getDefault().getPluginPreferences(); 206 String s = store.getString( key ); 207 return Utils.deserialize( s ); 208 } 209 210 211 219 private static void store( String key, Object o ) 220 { 221 Preferences store = BrowserCorePlugin.getDefault().getPluginPreferences(); 222 String s = Utils.serialize( o ); 223 store.setValue( key, s ); 224 BrowserCorePlugin.getDefault().savePluginPreferences(); 225 } 226 227 228 236 private static Object loadDefault( String key ) 237 { 238 Preferences store = BrowserCorePlugin.getDefault().getPluginPreferences(); 239 String s = store.getDefaultString( key ); 240 return Utils.deserialize( s ); 241 } 242 243 244 252 private static void storeDefault( String key, Object o ) 253 { 254 Preferences store = BrowserCorePlugin.getDefault().getPluginPreferences(); 255 String s = Utils.serialize( o ); 256 store.setDefault( key, s ); 257 BrowserCorePlugin.getDefault().savePluginPreferences(); 258 } 259 } 260 | Popular Tags |