Documentation

ETCollection documentation

ETCollectionTrait : NSObject <ETCollection>

A basic and reusable ETCollection implementation.

AuthorsGenerated by qmathe
Declared inETCollection.h

Overview

This trait implements all ETCollection protocol methods, except -content and -contentArray , for which concrete implementations must be provided by the target class.

Any method provided by ETCollectionTrait can be overriden by implementing the method in the target class.

Here is a simple example that implements a complete mutable collection API. In addition to ETCollectionTrait, it also leverages ETMutableCollectionTrait to do so.

@interface MyCollection : NSObject >ETCollection, ETCollectionMutation<
{
	NSMutableArray *things;
}

@end

@implementation

+ (void) initialize
{
	if (self != [MyCollection class])
		return;

	[self applyTraitFromClass: [ETCollection class]];
	[self applyTraitFromClass: [ETMutableCollection class]];
}

// Omitted initialization and deallocation methods

- (id) content
{
	return things;
}

- (NSArray *) contentArray
{
	return [NSArray arrayWithArray: things];
}

- (void) insertObject: (id)object atIndex: (NSUInteger)index hint: (id)hint
{
	if (index == ETUndeterminedIndex)
	{
		[things addObject: object];
	}
	else
	{
		[things insertObject: object atIndex: index];
	}
}

- (void) removeObject: (id)object atIndex: (NSUInteger)index hint: (id)hint
{
	if (index == ETUndeterminedIndex)
	{
		[things removeObject: object];
	}
	else
	{
		[things removeObjectAtIndex: index];
	}
}

@end 


No public API available