]> err.no Git - sope/blobdiff - sope-core/NGExtensions/NGRuleEngine.subproj/NGRuleAssignment.m
Drop apache 1 build-dependency
[sope] / sope-core / NGExtensions / NGRuleEngine.subproj / NGRuleAssignment.m
index 6d98431e16055955ad7c6ef382ea5acbd63ae196..dde2554f309cfb0d2494bdbd957a4519cf95a278 100644 (file)
   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 */