//
//  LCObjectsChangeManagerDelegateProtocol.h
//  LogoistCore
//
//  Created by Mendel Kucharzeck on 05.08.12.
//  Copyright (c) 2012 AvisNocturna Software. All rights reserved.
//

@class LCObjectsChangeManager;
@class LCChangeManagerAwareObject;

@protocol LCObjectsChangeManagerDelegateProtocol <NSObject>

- (void) object:(LCChangeManagerAwareObject*)object withObjectsChangeManager:(LCObjectsChangeManager*)objectsChangeManager willChangeValueForKey:(NSString*)key fromValue:(id)fromValue;
- (void) object:(LCChangeManagerAwareObject*)object withObjectsChangeManager:(LCObjectsChangeManager*)objectsChangeManager willAddObject:(id)addedObject toCollectionWithKey:(NSString*)key;
- (void) object:(LCChangeManagerAwareObject*)object withObjectsChangeManager:(LCObjectsChangeManager*)objectsChangeManager willRemoveObject:(id)removedObject fromCollectionWithKey:(NSString*)key;

- (void) object:(LCChangeManagerAwareObject*)object withObjectsChangeManager:(LCObjectsChangeManager*)objectsChangeManager didChangeValueForKey:(NSString*)key toValue:(id)toValue;
- (void) object:(LCChangeManagerAwareObject*)object withObjectsChangeManager:(LCObjectsChangeManager*)objectsChangeManager didAddObject:(id)addedObject toCollectionWithKey:(NSString*)key;
- (void) object:(LCChangeManagerAwareObject*)object withObjectsChangeManager:(LCObjectsChangeManager*)objectsChangeManager didRemoveObject:(id)removedObject fromCollectionWithKey:(NSString*)key;

@end
