home *** CD-ROM | disk | FTP | other *** search
/ OpenStep (Enterprise) / OpenStepENTCD.toast / OEDEV / EODEV.Z / Talent.m < prev    next >
Encoding:
Text File  |  1996-08-23  |  1.9 KB  |  92 lines

  1. /*
  2.         Copyright (c) 1996, NeXT Software, Inc.
  3.         All rights reserved.
  4.  
  5.         You may freely copy, distribute and reuse the code in this example.
  6.         NeXT disclaims any warranty of any kind, expressed or implied,
  7.         as to its fitness for any particular use.
  8. */
  9. #import "Talent.h"
  10.  
  11. @implementation Talent
  12.  
  13. - (NSArray *)moviesStarredIn
  14. {
  15.     unsigned i = [roles count];
  16.     NSMutableArray *result = [NSMutableArray arrayWithCapacity:i];
  17.     while (i--) {
  18.         id movie = [[roles objectAtIndex:i] valueForKey:@"movie"];
  19.         if (![result containsObject:movie]) {
  20.         [result addObject:movie];
  21.     }
  22.     }
  23.     return result;
  24. }
  25.  
  26. - (void)setFirstName:(NSString *)value
  27. {
  28.     [self willChange];
  29.     [firstName autorelease];
  30.     firstName = [value retain];
  31. }
  32. - (NSString *)firstName { return firstName; }
  33.  
  34. - (void)setLastName:(NSString *)value
  35. {
  36.     [self willChange];
  37.     [lastName autorelease];
  38.     lastName = [value retain];
  39. }
  40. - (NSString *)lastName { return lastName; }
  41.  
  42. - (void)setPhoto:(id)value
  43. {
  44.     // a to-one relationship
  45.     [self willChange];
  46.     [photo autorelease];
  47.     photo = [value retain];
  48. }
  49. - (id)photo { return photo; }
  50.  
  51. - (void)addToRoles:(id)object
  52. {
  53.     // a to-many relationship
  54.     [self willChange];
  55.     [roles addObject:object];
  56. }
  57. - (void)removeFromRoles:(id)object
  58. {
  59.     // a to-many relationship
  60.     [self willChange];
  61.     [roles removeObject:object];
  62. }
  63. - (NSArray *)roles { return roles; }
  64.  
  65. - (void)addToMoviesDirected:(id)object
  66. {
  67.     // a to-many relationship
  68.     [self willChange];
  69.     [moviesDirected addObject:object];
  70. }
  71. - (void)removeFromMoviesDirected:(id)object
  72. {
  73.     // a to-many relationship
  74.     [self willChange];
  75.     [moviesDirected removeObject:object];
  76. }
  77. - (NSArray *)moviesDirected { return moviesDirected; }
  78.  
  79.  
  80. - (void)dealloc
  81. {
  82.     [firstName release];
  83.     [lastName release];
  84.     [photo release];
  85.     [roles release];
  86.     [moviesDirected release];
  87.  
  88.     [super dealloc];
  89. }
  90.  
  91. @end
  92.