| Inherits from | NSObject |
| Declared in | GBAdoptedProtocolsProvider.h |
A helper class that unifies adopted protocols handling.
Dividing implementation of adopted protocols to a separate class allows us to abstract the logic and reuse it within any object that needs to handle adopted protocols using composition. It also simplifies protocols parsing and handling. To use it, simply "plug" it to the class that needs to handle adopted protocols and provide access through a public interface.
The downside is that querrying code becomes a bit more verbose as another method or property needs to be sent before getting access to actual adopted protocols data.
- initWithParentObject:
Initializes ivars provider with the given parent object.
- registerProtocol:
Registers the given protocol to the providers data.
- mergeDataFromProtocolsProvider:
Merges data from the given protocol provider.
- replaceProtocol:withProtocol:
Replaces the given original adopted protocol with the new one.
- protocolsSortedByName
Returns the array of all protocols sorted by their name.
protocols
The list of all protocols as instances of GBProtocolData .
Initializes ivars provider with the given parent object.
- (id)initWithParentObject:(id)parentReturns initialized object.
Initializes ivars provider with the given parent object.
The given parent object is set to each GBIvarData registered through registerIvar: . This is the designated initializer.
nil . GBAdoptedProtocolsProvider.hMerges data from the given protocol provider.
- (void)mergeDataFromProtocolsProvider:(GBAdoptedProtocolsProvider *)source GBAdoptedProtocolsProvider to merge from. Merges data from the given protocol provider.
This copies all unknown protocols from the given source to receiver and invokes merging of data for receivers protocols also found in source. It leaves source data intact.
GBAdoptedProtocolsProvider.hReturns the array of all protocols sorted by their name.
- (NSArray *)protocolsSortedByNameReturns the array of all protocols sorted by their name.
GBAdoptedProtocolsProvider.hRegisters the given protocol to the providers data.
- (void)registerProtocol:(GBProtocolData *)protocolRegisters the given protocol to the providers data.
If provider doesn't yet have the given protocol instance registered, the object is added to protocols list. If the same object is already registered, nothing happens.
Note: If another instance of the protocol with the same name is registered, an exception is thrown.
GBAdoptedProtocolsProvider.hReplaces the given original adopted protocol with the new one.
- (void)replaceProtocol:(GBProtocolData *)original withProtocol:(GBProtocolData *)protocolReplaces the given original adopted protocol with the new one.
This is provided so that processor can replace known protocols "placeholders" with real ones..
nil . GBAdoptedProtocolsProvider.h