|
Samond Classes Library 1.1.6-RELEASE build 132
|
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
1.7.3