/***************************************************************** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. ****************************************************************/ #import "CAYDataMap.h" @implementation CAYDataMap -(id)initWithCoder:(NSCoder*)coder { [super init]; [self setName:[coder decodeObjectForKey:@"name"]]; [self setObjEntityMap:[coder decodeObjectForKey:@"objEntityMap"]]; // remove extra entry created by hessian framework // TODO: fix in framework? [[self objEntityMap] removeObjectForKey:@"hessianClassName"]; return self; } -(void)encodeWithCoder:(NSCoder*)coder { [coder encodeObject:[self name] forKey:@"name"]; [coder encodeObject:[self objEntityMap] forKey:@"objEntityMap"]; } -(void)setName:(NSString *)n { [n retain]; [name release]; name = n; } -(NSString *)name { return name; } -(void)setObjEntityMap:(NSMutableDictionary *)oem { [oem retain]; [objEntityMap release]; objEntityMap = oem; } -(NSMutableDictionary *)objEntityMap { return objEntityMap; } -(NSString *)classNameForObjEntity:(CAYObjEntity *)entity; { // TODO: handle prefix for class name. Like MYPROJECTArtist return [entity name]; } -(NSString *)description { NSString *description = [[NSString alloc] initWithFormat:@"%@ {name = %@; objEntityMap = %@}", [self class], [self name], [self objEntityMap]]; [description autorelease]; return description; } -(void)dealloc { [self setName:nil]; [self setObjEntityMap:nil]; [super dealloc]; } @end