Samond Classes Library 1.1.6-RELEASE build 132

SCConfig.h

Go to the documentation of this file.
00001 //
00002 //  SCConfig.h
00003 //  sclmac
00004 //
00005 //  Created by Viacheslav Smolensky on 05.06.14.
00006 //  Copyright (c) 2007 - 2014 by Samond Development Corporation. All rights reserved.
00007 //
00008 
00016 #import <scl/SCObject.h>
00017 #import <scl/SCTypes.h>
00018 #import <scl/SCConfigDelegate.h>
00019 #import <scl/SCConfigException.h>
00020 #import <scl/SCArray.h>
00021 #import <scl/SCDictionary.h>
00022 #import <scl/SCStrings.h>
00023 
00024 #define SCConfigClass   @"SCConfig"             ///< SCConfig class name
00025 
00026 #pragma mark -
00027 #pragma mark Configuration supporing types
00028 
00034 enum _SCConfigStatus {
00035         SCConfigOK                              = 0,    
00036         SCConfigCriticalError   = 1,    
00037         SCConfigWarning                 = 2,    
00038 };
00039 
00045 typedef SCUInteger SCConfigStatus;
00046 
00047 #pragma mark -
00048 
00078 @interface SCConfig : SCObject {
00079         SCArray                            *fConfig;                            // Configuration records storage
00080         NSString                           *fName;                                      // Configuration name
00081         SCConfigStatus                  fStatus;                                // Configuration status
00082         BOOL                                    fReadOnly;                              // Read only flag
00083         id<SCConfigDelegate>    fDelegate;                              // Configuration delegate object
00084         BOOL                                    fModified;                              // Modifications flag
00085         BOOL                                    fUnique;                                // Key unique flag
00086         BOOL                                    fCaseInsensitive;               // Key case insensitive flag
00087         BOOL                                    fIgnoreErrors;                  // Error processing flag
00088         BOOL                                    fAutoCreate;                    // Subconfiguration automatic creation flag
00089         SCConfigException          *fError;                                     // Last detected error
00090         SCArray                            *fValidKeys;                         // Valid keys list
00091         SCArray                            *fValidTypes;                        // Valid types list
00092         SCArray                            *fValidValues;                       // Valid values list
00093         SCArray                            *fDuplicatedKeys;            // Allowed duplicated keys list
00094         SCArray                            *fMandatoryKeys;                     // Mandatory keys list
00095         SCArray                            *fDefaultValues;                     // Default values list
00096         SCArray                            *fKeyNames;                          // Key names list
00097 }
00098 #pragma mark -
00099 #pragma mark Class properties
00100 #if (__MAC_OS_X_VERSION_MIN_REQUIRED > 1040) || IOS_TARGET
00101 
00102 // Configuration name property
00103 @property (retain, getter=name, setter=setName:) NSString *name;
00104 // Configuration status property
00105 @property (assign, readonly, getter=status) SCConfigStatus status;
00106 // Records count property
00107 @property (assign, readonly, getter=count) SCULong count;
00108 // Values count with subconfigurations property
00109 @property (assign, readonly, getter=fullCount) SCULong fullCount;
00110 // Configuration read only property
00111 @property (assign, getter=isReadOnly, setter=setReadOnly:) BOOL isReadOnly;
00112 // Configuration empty flag property
00113 @property (assign, readonly, getter=isEmpty) BOOL isEmpty;
00114 // Configuration delegate property
00115 @property (assign, getter=delegate, setter=setDelegate:) id<SCConfigDelegate> delegate;
00116 // Configuration description property
00117 @property (retain, readonly, getter=description) NSString *description;
00118 // Configuration modifications property
00119 @property (assign, readonly, getter=isModified) BOOL isModified;
00120 // Configuration unique property
00121 @property (assign, getter=isUnique, setter=setUnique:) BOOL isUnique;
00122 // Configuration case insensitive property
00123 @property (assign, getter=caseInsensitive, setter=setCaseInsensitive:) BOOL caseInsensitive;
00124 // Configuration error processing property
00125 @property (assign, getter=isIgnoreErrors, setter=setIgnoreErrors:) BOOL isIgnoreErrors;
00126 // Subconfiguration automatic subconfiguration creation property
00127 @property (assign, getter=isAutoCreate, setter=setAutoCreate:) BOOL isAutoCreate;
00128 // Detected error property
00129 @property (retain, readonly, getter=error) SCConfigException *error;
00130 
00131 #endif
00132 
00133 #pragma mark -
00134 #pragma mark Creating and Initializing Configurations
00135 
00141 + (SCConfig *)configWithCoder:(NSCoder *)coder;
00142 
00148 + (SCConfig *)configWithContentsOfSerializedFile:(NSString *)path;
00149 
00155 + (SCConfig *)configWithDataDictionary:(NSDictionary *)dictionary;
00156 
00162 + (SCConfig *)configWithDataDictionaryFromFile:(NSString *)path;
00163 
00171 + (SCConfig *)configWithStream:(SCStream *)stream;
00172 
00180 + (SCConfig *)configWithFileStream:(NSString *)path;
00181 
00195 + (SCConfig *)configWithName:(NSString *)name
00196                                         delegate:(id<SCConfigDelegate>)delegate
00197                                           unique:(BOOL)unique
00198                          caseInsensitive:(BOOL)caseInsensitive
00199                                 ignoreErrors:(BOOL)ignoreErrors
00200                                   autoCreate:(BOOL)autoCreate;
00201 
00210 + (SCConfig *)configWithName:(NSString *)name string:(NSString *)string;
00211 
00220 + (SCConfig *)configWithName:(NSString *)name strings:(NSString *)string, ...;
00221 
00227 + (SCConfig *)configWithName:(NSString *)name;
00228 
00233 + (SCConfig *)config;
00234 
00241 + (SCConfig *)configWithString:(NSString *)string;
00242 
00250 + (SCConfig *)configWithStrings:(NSString *)string, ...;
00251 
00258 + (SCConfig *)configWithConfig:(SCConfig *)config;
00259 
00266 + (SCConfig *)configWithCollection:(id)collection;
00267 
00274 + (SCConfig *)configWithText:(SCStrings *)text;
00275 
00289 - (id)initWithName:(NSString *)name
00290                   delegate:(id<SCConfigDelegate>)delegate
00291                         unique:(BOOL)unique
00292    caseInsensitive:(BOOL)caseInsensitive
00293           ignoreErrors:(BOOL)ignoreErrors
00294                 autoCreate:(BOOL)autoCreate;
00295 
00304 - (id)initWithName:(NSString *)name string:(NSString *)string;
00305 
00315 - (id)initWithName:(NSString *)name strings:(NSString *)string, ...;
00316 
00322 - (id)initWithName:(NSString *)name;
00323 
00328 - (id)init;
00329 
00336 - (id)initWithString:(NSString *)string;
00337 
00346 - (id)initWithStrings:(NSString *)string, ...;
00347 
00354 - (id)initWithConfig:(SCConfig *)config;
00355 
00362 - (id)initWithCollection:(id)collection;
00363 
00370 - (id)initWithText:(SCStrings *)text;
00371 
00372 #pragma mark -
00373 #pragma mark Getting and Setting Configuration Properties
00374 
00379 - (NSString *)name;
00380 
00385 - (SCConfigStatus)status;
00386 
00393 - (SCULong)count;
00394 
00400 - (SCULong)fullCount;
00401 
00406 - (BOOL)isReadOnly;
00407 
00413 - (BOOL)isEmpty;
00414 
00419 - (id<SCConfigDelegate>)delegate;
00420 
00425 - (NSString *)description;
00426 
00431 - (BOOL)isModified;
00432 
00438 - (BOOL)isUnique;
00439 
00444 - (BOOL)caseInsensitive;
00445 
00450 - (BOOL)isIgnoreErrors;
00451 
00456 - (BOOL)isAutoCreate;
00457 
00462 - (SCConfigException *)error;
00463 
00467 - (void)setName:(NSString *)name;
00468 
00474 - (void)setReadOnly:(BOOL)readonly;
00475 
00480 - (void)setDelegate:(id<SCConfigDelegate>)delegate;
00481 
00489 - (void)setUnique:(BOOL)unique;
00490 
00496 - (void)setCaseInsensitive:(BOOL)caseInsensitive;
00497 
00503 - (void)setIgnoreErrors:(BOOL)ignoreErrors;
00504 
00510 - (void)setAutoCreate:(BOOL)autoCreate;
00511 
00512 #pragma mark -
00513 #pragma mark Setting and Copying Configurations
00514 
00521 - (void)setConfig:(SCConfig *)config;
00522 
00528 - (void)setCollection:(id)collection;
00529 
00535 - (void)setText:(SCStrings *)text;
00536 
00537 #pragma mark -
00538 #pragma mark Find Keys in Configuration
00539 
00546 - (BOOL)containsValueForKey:(NSString *)key;
00547 
00555 - (BOOL)containsStringValueForKey:(NSString *)key;
00556 
00564 - (BOOL)containsNumberValueForKey:(NSString *)key;
00565 
00573 - (BOOL)containsBoolValueForKey:(NSString *)key;
00574 
00581 - (BOOL)containsDateValueForKey:(NSString *)key;
00582 
00589 - (BOOL)containsValue:(id)value;
00590 
00597 - (BOOL)containsStringValue:(NSString *)stringValue;
00598 
00605 - (BOOL)containsNumberValue:(NSNumber *)numberValue;
00606 
00613 - (BOOL)containsBoolValue:(BOOL)boolValue;
00614 
00621 - (BOOL)containsDateValue:(NSDate *)dateValue;
00622 
00629 - (BOOL)containsByteValue:(SCByte)byteValue;
00630 
00637 - (BOOL)containsUnsignedByteValue:(SCUByte)unsignedByteValue;
00638 
00645 - (BOOL)containsShortValue:(SCShort)shortValue;
00646 
00653 - (BOOL)containsUnsignedShortValue:(SCUShort)unsignedShortValue;
00654 
00661 - (BOOL)containsIntValue:(SCInteger)intValue;
00662 
00669 - (BOOL)containsUnsignedIntValue:(SCUInteger)unsignedIntValue;
00670 
00677 - (BOOL)containsLongValue:(SCLong)longValue;
00678 
00685 - (BOOL)containsUnsignedLongValue:(SCULong)unsignedLongValue;
00686 
00693 - (BOOL)containsCharValue:(char)charValue;
00694 
00701 - (BOOL)containsUnicharValue:(unichar)unicharValue;
00702 
00709 - (BOOL)containsCharStringValue:(const char *)charStringValue;
00710 
00717 - (BOOL)containsFloatValue:(SCFloat)floatValue;
00718 
00725 - (BOOL)containsDoubleValue:(SCDouble)doubleValue;
00726 
00734 - (BOOL)containsValue:(id)value forKey:(NSString *)key;
00735 
00744 - (BOOL)containsStringValue:(NSString *)stringValue forKey:(NSString *)key;
00745 
00754 - (BOOL)containsNumberValue:(NSNumber *)numberValue forKey:(NSString *)key;
00755 
00764 - (BOOL)containsBoolValue:(BOOL)boolValue forKey:(NSString *)key;
00765 
00774 - (BOOL)containsDateValue:(NSDate *)dateValue forKey:(NSString *)key;
00775 
00784 - (BOOL)containsByteValue:(SCByte)byteValue forKey:(NSString *)key;
00785 
00794 - (BOOL)containsUnsignedByteValue:(SCUByte)unsignedByteValue forKey:(NSString *)key;
00795 
00804 - (BOOL)containsShortValue:(SCShort)shortValue forKey:(NSString *)key;
00805 
00814 - (BOOL)containsUnsignedShortValue:(SCUShort)unsignedShortValue forKey:(NSString *)key;
00815 
00824 - (BOOL)containsIntValue:(SCInteger)intValue forKey:(NSString *)key;
00825 
00834 - (BOOL)containsUnsignedIntValue:(SCUInteger)unsignedIntValue forKey:(NSString *)key;
00835 
00844 - (BOOL)containsLongValue:(SCLong)longValue forKey:(NSString *)key;
00845 
00854 - (BOOL)containsUnsignedLongValue:(SCULong)unsignedLongValue forKey:(NSString *)key;
00855 
00864 - (BOOL)containsCharValue:(char)charValue forKey:(NSString *)key;
00865 
00874 - (BOOL)containsUnicharValue:(unichar)unicharValue forKey:(NSString *)key;
00875 
00884 - (BOOL)containsCharStringValue:(const char *)charStringValue forKey:(NSString *)key;
00885 
00894 - (BOOL)containsFloatValue:(SCFloat)floatValue forKey:(NSString *)key;
00895 
00904 - (BOOL)containsDoubleValue:(SCDouble)doubleValue forKey:(NSString *)key;
00905 
00910 - (SCULong)stringValuesCount;
00911 
00916 - (SCULong)numberValuesCount;
00917 
00922 - (SCULong)boolValuesCount;
00923 
00928 - (SCULong)dateValuesCount;
00929 
00934 - (SCULong)configValuesCount;
00935 
00941 - (SCULong)countValuesForKey:(NSString *)key;
00942 
00948 - (SCULong)countStringValuesForKey:(NSString *)key;
00949 
00955 - (SCULong)countNumberValuesForKey:(NSString *)key;
00956 
00962 - (SCULong)countBoolValuesForKey:(NSString *)key;
00963 
00969 - (SCULong)countDateValuesForKey:(NSString *)key;
00970 
00976 - (SCULong)countValue:(id)value;
00977 
00983 - (SCULong)countStringValue:(NSString *)stringValue;
00984 
00990 - (SCULong)countNumberValue:(NSNumber *)numberValue;
00991 
00997 - (SCULong)countBoolValue:(BOOL)boolValue;
00998 
01004 - (SCULong)countDateValue:(NSDate *)dateValue;
01005 
01011 - (SCULong)countByteValue:(SCByte)byteValue;
01012 
01018 - (SCULong)countUnsignedByteValue:(SCUByte)unsignedByteValue;
01019 
01025 - (SCULong)countShortValue:(SCShort)shortValue;
01026 
01032 - (SCULong)countUnsignedShortValue:(SCUShort)unsignedShortValue;
01033 
01039 - (SCULong)countIntValue:(SCInteger)intValue;
01040 
01046 - (SCULong)countUnsignedIntValue:(SCUInteger)unsignedIntValue;
01047 
01053 - (SCULong)countLongValue:(SCLong)longValue;
01054 
01060 - (SCULong)countUnsignedLongValue:(SCULong)unsignedLongValue;
01061 
01067 - (SCULong)countCharValue:(char)charValue;
01068 
01074 - (SCULong)countUnicharValue:(unichar)unicharValue;
01075 
01081 - (SCULong)countCharStringValue:(const char *)charStringValue;
01082 
01088 - (SCULong)countFloatValue:(SCFloat)floatValue;
01089 
01095 - (SCULong)countDoubleValue:(SCDouble)doubleValue;
01096 
01097 #pragma mark -
01098 #pragma mark Comparing Configurations
01099 
01106 - (BOOL)isEqualToConfig:(SCConfig *)config;
01107 
01115 - (BOOL)isEqualToContentOfConfig:(SCConfig *)config;
01116 
01124 - (BOOL)isEqualToCollection:(id)collection;
01125 
01132 - (BOOL)isEqualToText:(SCStrings *)text;
01133 
01140 - (BOOL)isEqualTo:(id)object;
01141 
01148 - (BOOL)isEqual:(id)object;
01149 
01150 #pragma mark -
01151 #pragma mark Enumerating Configurations
01152 
01157 - (NSEnumerator *)keyEnumerator;
01158 
01159 #pragma mark -
01160 #pragma mark Converting Configurations
01161 
01166 - (SCArray *)array;
01167 
01174 - (SCDictionary *)dictionary;
01175 
01181 - (SCStrings *)textWithSpace:(BOOL)space;
01182 
01188 - (SCStrings *)text;
01189 
01194 - (NSArray *)foundationArray;
01195 
01202 - (NSDictionary *)foundationDictionary;
01203 
01204 #pragma mark -
01205 #pragma mark Adding and Setting Configuration Values
01206 
01213 - (void)addValue:(id)value forKey:(NSString *)key;
01214 
01221 - (void)addStringValue:(NSString *)stringValue forKey:(NSString *)key;
01222 
01229 - (void)addNumberValue:(NSNumber *)numberValue forKey:(NSString *)key;
01230 
01237 - (void)addBoolValue:(BOOL)boolValue forKey:(NSString *)key;
01238 
01245 - (void)addDateValue:(NSDate *)dateValue forKey:(NSString *)key;
01246 
01252 - (void)addString:(NSString *)string;
01253 
01260 - (void)addByteValue:(SCByte)byteValue forKey:(NSString *)key;
01261 
01268 - (void)addUnsignedByteValue:(SCUByte)unsignedByteValue forKey:(NSString *)key;
01269 
01276 - (void)addShortValue:(SCShort)shortValue forKey:(NSString *)key;
01277 
01284 - (void)addUnsignedShortValue:(SCUShort)unsignedShortValue forKey:(NSString *)key;
01285 
01292 - (void)addIntValue:(SCInteger)intValue forKey:(NSString *)key;
01293 
01300 - (void)addUnsignedIntValue:(SCUInteger)unsignedIntValue forKey:(NSString *)key;
01301 
01308 - (void)addLongValue:(SCLong)longValue forKey:(NSString *)key;
01309 
01316 - (void)addUnsignedLongValue:(SCULong)unsignedLongValue forKey:(NSString *)key;
01317 
01324 - (void)addCharValue:(char)charValue forKey:(NSString *)key;
01325 
01332 - (void)addUnicharValue:(unichar)unicharValue forKey:(NSString *)key;
01333 
01340 - (void)addCharStringValue:(const char *)charStringValue forKey:(NSString *)key;
01341 
01348 - (void)addFloatValue:(SCFloat)floatValue forKey:(NSString *)key;
01349 
01356 - (void)addDoubleValue:(SCDouble)doubleValue forKey:(NSString *)key;
01357 
01365 - (void)setValue:(id)value forKey:(NSString *)key;
01366 
01374 - (void)setStringValue:(NSString *)stringValue forKey:(NSString *)key;
01375 
01383 - (void)setNumberValue:(NSNumber *)numberValue forKey:(NSString *)key;
01384 
01392 - (void)setBoolValue:(BOOL)boolValue forKey:(NSString *)key;
01393 
01401 - (void)setDateValue:(NSDate *)dateValue forKey:(NSString *)key;
01402 
01410 - (void)setByteValue:(SCByte)byteValue forKey:(NSString *)key;
01411 
01419 - (void)setUnsignedByteValue:(SCUByte)unsignedByteValue forKey:(NSString *)key;
01420 
01428 - (void)setShortValue:(SCShort)shortValue forKey:(NSString *)key;
01429 
01437 - (void)setUnsignedShortValue:(SCUShort)unsignedShortValue forKey:(NSString *)key;
01438 
01446 - (void)setIntValue:(SCInteger)intValue forKey:(NSString *)key;
01447 
01455 - (void)setUnsignedIntValue:(SCUInteger)unsignedIntValue forKey:(NSString *)key;
01456 
01464 - (void)setLongValue:(SCLong)longValue forKey:(NSString *)key;
01465 
01473 - (void)setUnsignedLongValue:(SCULong)unsignedLongValue forKey:(NSString *)key;
01474 
01482 - (void)setCharValue:(char)charValue forKey:(NSString *)key;
01483 
01491 - (void)setUnicharValue:(unichar)unicharValue forKey:(NSString *)key;
01492 
01500 - (void)setCharStringValue:(const char *)charStringValue forKey:(NSString *)key;
01501 
01509 - (void)setFloatValue:(SCFloat)floatValue forKey:(NSString *)key;
01510 
01518 - (void)setDoubleValue:(SCDouble)doubleValue forKey:(NSString *)key;
01519 
01528 - (void)setValue:(id)value forKey:(NSString *)key withValue:(id)oldValue;
01529 
01538 - (void)setStringValue:(NSString *)value forKey:(NSString *)key withStringValue:(NSString *)old;
01539 
01548 - (void)setNumberValue:(NSNumber *)value forKey:(NSString *)key withNumberValue:(NSNumber *)old;
01549 
01558 - (void)setBoolValue:(BOOL)value forKey:(NSString *)key withBoolValue:(BOOL)old;
01559 
01568 - (void)setDateValue:(NSDate *)value forKey:(NSString *)key withDateValue:(NSDate *)old;
01569 
01578 - (void)setByteValue:(SCByte)value forKey:(NSString *)key withLongValue:(SCLong)old;
01579 
01588 - (void)setUnsignedByteValue:(SCUByte)value forKey:(NSString *)key withLongValue:(SCLong)old;
01589 
01598 - (void)setShortValue:(SCShort)value forKey:(NSString *)key withLongValue:(SCLong)old;
01599 
01608 - (void)setUnsignedShortValue:(SCUShort)value forKey:(NSString *)key withLongValue:(SCLong)old;
01609 
01618 - (void)setIntValue:(SCInteger)value forKey:(NSString *)key withLongValue:(SCLong)old;
01619 
01628 - (void)setUnsignedIntValue:(SCUInteger)value forKey:(NSString *)key withLongValue:(SCLong)old;
01629 
01638 - (void)setLongValue:(SCLong)value forKey:(NSString *)key withLongValue:(SCLong)old;
01639 
01648 - (void)setUnsignedLongValue:(SCULong)value forKey:(NSString *)key withLongValue:(SCLong)old;
01649 
01658 - (void)setCharValue:(char)value forKey:(NSString *)key withCharValue:(char)old;
01659 
01668 - (void)setUnicharValue:(unichar)value forKey:(NSString *)key withUnicharValue:(unichar)old;
01669 
01678 - (void)setCharStringValue:(const char *)value
01679                                         forKey:(NSString *)key
01680            withCharStringValue:(const char *)old;
01681 
01690 - (void)setFloatValue:(SCFloat)value forKey:(NSString *)key withFloatValue:(SCFloat)old;
01691 
01700 - (void)setDoubleValue:(SCDouble)value forKey:(NSString *)key withDoubleValue:(SCDouble)old;
01701 
01702 #pragma mark -
01703 #pragma mark Add Values from Existing Configurations
01704 
01710 - (void)addValuesFromConfig:(SCConfig *)config;
01711 
01717 - (void)addValuesFromCollection:(id)collection;
01718 
01724 - (void)addValuesFromText:(SCStrings *)text;
01725 
01726 #pragma mark -
01727 #pragma mark Removing Keys
01728 
01734 - (void)removeValuesForKey:(NSString *)key;
01735 
01743 - (void)removeValuesForKeys:(NSString *)key, ...;
01744 
01750 - (void)removeValuesForKeysFromArray:(SCArray *)array;
01751 
01756 - (void)removeAllValues;
01757 
01764 - (void)removeValue:(id)value forKey:(NSString *)key;
01765 
01772 - (void)removeStringValue:(NSString *)stringValue forKey:(NSString *)key;
01773 
01780 - (void)removeNumberValue:(NSNumber *)numberValue forKey:(NSString *)key;
01781 
01788 - (void)removeBoolValue:(BOOL)boolValue forKey:(NSString *)key;
01789 
01796 - (void)removeDateValue:(NSDate *)dateValue forKey:(NSString *)key;
01797 
01804 - (void)removeByteValue:(SCByte)byteValue forKey:(NSString *)key;
01805 
01812 - (void)removeUnsignedByteValue:(SCUByte)unsignedByteValue forKey:(NSString *)key;
01813 
01820 - (void)removeShortValue:(SCShort)shortValue forKey:(NSString *)key;
01821 
01829 - (void)removeUnsignedShortValue:(SCUShort)unsignedShortValue forKey:(NSString *)key;
01830 
01838 - (void)removeIntValue:(SCInteger)intValue forKey:(NSString *)key;
01839 
01847 - (void)removeUnsignedIntValue:(SCUInteger)unsignedIntValue forKey:(NSString *)key;
01848 
01855 - (void)removeLongValue:(SCLong)longValue forKey:(NSString *)key;
01856 
01863 - (void)removeUnsignedLongValue:(SCULong)unsignedLongValue forKey:(NSString *)key;
01864 
01871 - (void)removeCharValue:(char)charValue forKey:(NSString *)key;
01872 
01879 - (void)removeUnicharValue:(unichar)unicharValue forKey:(NSString *)key;
01880 
01887 - (void)removeCharStringValue:(const char *)charStringValue forKey:(NSString *)key;
01888 
01895 - (void)removeFloatValue:(SCFloat)floatValue forKey:(NSString *)key;
01896 
01903 - (void)removeDoubleValue:(SCDouble)doubleValue forKey:(NSString *)key;
01904 
01905 #pragma mark -
01906 #pragma mark Accessing Keys and Values
01907 
01912 - (SCArray *)allKeys;
01913 
01920 - (id)valueForKey:(NSString *)key;
01921 
01928 - (NSString *)stringValueForKey:(NSString *)key;
01929 
01936 - (NSNumber *)numberValueForKey:(NSString *)key;
01937 
01944 - (BOOL)boolValueForKey:(NSString *)key;
01945 
01952 - (NSDate *)dateValueForKey:(NSString *)key;
01953 
01960 - (SCByte)byteValueForKey:(NSString *)key;
01961 
01968 - (SCUByte)unsignedByteValueForKey:(NSString *)key;
01969 
01976 - (SCShort)shortValueForKey:(NSString *)key;
01977 
01984 - (SCUShort)unsignedShortValueForKey:(NSString *)key;
01985 
01992 - (SCInteger)intValueForKey:(NSString *)key;
01993 
02000 - (SCUInteger)unsignedIntValueForKey:(NSString *)key;
02001 
02008 - (SCLong)longValueForKey:(NSString *)key;
02009 
02016 - (SCULong)unsignedLongValueForKey:(NSString *)key;
02017 
02024 - (char)charValueForKey:(NSString *)key;
02025 
02032 - (unichar)unicharValueForKey:(NSString *)key;
02033 
02040 - (const char *)charStringValueForKey:(NSString *)key;
02041 
02048 - (SCFloat)floatValueForKey:(NSString *)key;
02049 
02056 - (SCDouble)doubleValueForKey:(NSString *)key;
02057 
02064 - (SCConfigRecordType)typeForKey:(NSString *)key;
02065 
02072 - (NSString *)typeNameForKey:(NSString *)key;
02073 
02081 - (BOOL)isStringValueForKey:(NSString *)key;
02082 
02090 - (BOOL)isNumberValueForKey:(NSString *)key;
02091 
02099 - (BOOL)isBoolValueForKey:(NSString *)key;
02100 
02107 - (BOOL)isDateValueForKey:(NSString *)key;
02108 
02116 - (BOOL)isConfigValueForKey:(NSString *)key;
02117 
02123 - (SCArray *)valuesForKey:(NSString *)key;
02124 
02131 - (SCArray *)valuesForKeys:(NSString *)key, ...;
02132 
02138 - (SCArray *)valuesForKeysFromArray:(SCArray *)keys;
02139 
02145 - (NSString *)keyForValue:(id)value;
02146 
02152 - (NSString *)keyForStringValue:(NSString *)stringValue;
02153 
02159 - (NSString *)keyForNumberValue:(NSNumber *)numberValue;
02160 
02166 - (NSString *)keyForBoolValue:(BOOL)boolValue;
02167 
02173 - (NSString *)keyForDateValue:(NSDate *)dateValue;
02174 
02180 - (NSString *)keyForByteValue:(SCByte)byteValue;
02181 
02187 - (NSString *)keyForUnsignedByteValue:(SCUByte)unsignedByteValue;
02188 
02194 - (NSString *)keyForShortValue:(SCShort)shortValue;
02195 
02201 - (NSString *)keyForUnsignedShortValue:(SCUShort)unsignedShortValue;
02202 
02208 - (NSString *)keyForIntValue:(SCInteger)intValue;
02209 
02215 - (NSString *)keyForUnsignedIntValue:(SCUInteger)unsignedIntValue;
02216 
02222 - (NSString *)keyForLongValue:(SCLong)longValue;
02223 
02229 - (NSString *)keyForUnsignedLongValue:(SCULong)unsignedLongValue;
02230 
02236 - (NSString *)keyForCharValue:(char)charValue;
02237 
02243 - (NSString *)keyForUnicharValue:(unichar)unicharValue;
02244 
02250 - (NSString *)keyForCharString:(const char *)charStringValue;
02251 
02257 - (NSString *)keyForFloatValue:(SCFloat)floatValue;
02258 
02264 - (NSString *)keyForDoubleValue:(SCDouble)doubleValue;
02265 
02266 #pragma mark -
02267 #pragma mark Subconfiguration Access Methods
02268 
02275 - (BOOL)containsConfigForKey:(NSString *)key;
02276 
02282 - (void)createConfigForKey:(NSString *)key;
02283 
02289 - (void)removeConfigForKey:(NSString *)key;
02290 
02296 - (SCConfig *)configForKey:(NSString *)key;
02297 
02305 - (void)addConfig:(SCConfig *)config forKey:(NSString *)key;
02306 
02314 - (void)setConfig:(SCConfig *)config forKey:(NSString *)key;
02315 
02316 #pragma mark -
02317 #pragma mark Configuration Validation Methods
02318 
02325 - (BOOL)isValidConfigForKey:(NSString *)key;
02326 
02332 - (BOOL)isValidKey:(NSString *)key;
02333 
02340 - (BOOL)isValidType:(SCConfigRecordType)type forKey:(NSString *)key;
02341 
02348 - (BOOL)isValidValue:(id)value forKey:(NSString *)key;
02349 
02356 - (BOOL)isAllowedDuplicateValueForKey:(NSString *)key;
02357 
02363 - (NSString *)keyNameForKey:(NSString *)key;
02364 
02369 - (SCArray *)validKeys;
02370 
02375 - (SCArray *)validTypes;
02376 
02382 - (SCArray *)validTypesForKey:(NSString *)key;
02383 
02388 - (SCArray *)validValues;
02389 
02395 - (SCArray *)validValuesForKey:(NSString *)key;
02396 
02401 - (SCArray *)duplicatedKeys;
02402 
02407 - (SCArray *)mandatoryKeys;
02408 
02413 - (SCArray *)defaultValues;
02414 
02419 - (SCArray *)keyNames;
02420 
02425 - (void)addValidKey:(NSString *)key;
02426 
02432 - (void)addValidType:(SCConfigRecordType)type forKey:(NSString *)key;
02433 
02439 - (void)addValidValue:(id)value forKey:(NSString *)key;
02440 
02445 - (void)addAllowedDuplicateKey:(NSString *)key;
02446 
02451 - (void)addMandatoryKey:(NSString *)key;
02452 
02459 - (void)addDefaultValue:(id)value withType:(SCConfigRecordType)type forKey:(NSString *)key;
02460 
02466 - (void)addKeyName:(NSString *)name forKey:(NSString *)key;
02467 
02472 - (void)removeValidKey:(NSString *)key;
02473 
02479 - (void)removeValidType:(SCConfigRecordType)type forKey:(NSString *)key;
02480 
02485 - (void)removeValidTypesForKey:(NSString *)key;
02486 
02492 - (void)removeValidValue:(id)value forKey:(NSString *)key;
02493 
02498 - (void)removeValidValuesForKey:(NSString *)key;
02499 
02504 - (void)removeValidDuplicateKey:(NSString *)key;
02505 
02510 - (void)removeMandatoryKey:(NSString *)key;
02511 
02516 - (void)removeDefaultValueForKey:(NSString *)key;
02517 
02522 - (void)removeNameForKey:(NSString *)key;
02523 
02527 - (void)removeValidKeys;
02528 
02532 - (void)removeValidTypes;
02533 
02537 - (void)removeValidValues;
02538 
02542 - (void)removeAllowedDuplicateKeys;
02543 
02547 - (void)removeMandatoryKeys;
02548 
02552 - (void)removeDefaultValues;
02553 
02557 - (void)removeKeyNames;
02558 
02564 - (BOOL)containsValidKey:(NSString *)key;
02565 
02573 - (BOOL)containsValidType:(SCConfigRecordType)type forKey:(NSString *)key;
02574 
02581 - (BOOL)containsValidTypesForKey:(NSString *)key;
02582 
02590 - (BOOL)containsValidValue:(id)value forKey:(NSString *)key;
02591 
02598 - (BOOL)containsValidValuesForKey:(NSString *)key;
02599 
02606 - (BOOL)containsDuplicateKey:(NSString *)key;
02607 
02613 - (BOOL)containsMandatoryKey:(NSString *)key;
02614 
02622 - (BOOL)containsDefaultValueForKey:(NSString *)key;
02623 
02629 - (BOOL)containsNameForKey:(NSString *)key;
02630 
02636 - (id)defaultValueForKey:(NSString *)key;
02637 
02643 - (SCConfigRecordType)defaultTypeForKey:(NSString *)key;
02644 
02650 - (NSString *)nameForKey:(NSString *)key;
02651 
02657 - (void)addDefaultValues;
02658 
02663 - (BOOL)checkMandatoryKeys;
02664 
02665 #pragma mark -
02666 #pragma mark Additional methods
02667 
02671 - (void)removeConfiguration;
02672 
02678 - (void)resetConfiguration;
02679 
02680 
02681 @end
 All Classes Files Functions Typedefs Enumerations Enumerator Defines