return self->value;
}
+/* key/value archiving */
+
+- (id)initWithKeyValueUnarchiver:(EOKeyValueUnarchiver *)_unarchiver {
+ return [self initWithKeyPath:[_unarchiver decodeObjectForKey:@"keyPath"]
+ value:[_unarchiver decodeObjectForKey:@"value"]];
+}
+- (void)encodeWithKeyValueArchiver:(EOKeyValueArchiver *)_archiver {
+ [_archiver encodeObject:[self keyPath] forKey:@"keyPath"];
+ [_archiver encodeObject:[self value] forKey:@"value"];
+}
+
/* description */
- (NSString *)valueStringValue {
- return [self->value isKindOfClass:[NSNumber class]]
- ? [self->value stringValue]
- : [NSString stringWithFormat:@"\"%@\"", self->value];
+ NSMutableString *ms;
+
+ if ([self->value isKindOfClass:[NSNumber class]])
+ return [self->value stringValue];
+
+ ms = [NSMutableString stringWithCapacity:64];
+ [ms appendString:@"\""];
+ [ms appendString:[self->value stringValue]];
+ [ms appendString:@"\""];
+ return ms;
}
- (NSString *)stringValue {
- return [NSString stringWithFormat:@"%@ = %@",
- [self keyPath],
- [self valueStringValue]];
+ NSMutableString *ms;
+
+ ms = [NSMutableString stringWithCapacity:64];
+ [ms appendString:[[self keyPath] description]];
+ [ms appendString:@" = "];
+ [ms appendString:[self valueStringValue]];
+ return ms;
}
- (NSString *)description {
@end /* NGRuleAssignment */
+
@implementation NGRuleKeyAssignment
/* operations */