Archived
1

Internal Redesign:

- Combined MPExpression and MPMutableExpression
- Abstracted children of MPExpression into MPExpressionElement protocol
- Abstracted most of MPExpressionLayout and MPFunctionLayout into common superclass MPLayout
This commit is contained in:
Kim Wittenburg
2014-08-11 13:57:48 +02:00
parent 740c3fd80a
commit 60760b8b3d
31 changed files with 1222 additions and 1343 deletions

View File

@@ -12,7 +12,6 @@
@implementation MPSumFunction
#pragma mark Creation Methods
- (instancetype)init
{
self = [super init];
@@ -27,8 +26,32 @@
return self;
}
#pragma mark Working With the Expression Tree
#pragma mark Properties
- (void)setStartExpression:(MPExpression *)startExpression
{
_startExpression.parent = nil;
_startExpression = startExpression;
_startExpression.parent = self;
[self didChangeChildAtIndex:0];
}
- (void)setTargetExpression:(MPExpression *)targetExpression
{
_targetExpression.parent = nil;
_targetExpression = targetExpression;
_targetExpression.parent = self;
[self didChangeChildAtIndex:1];
}
- (void)setSumExpression:(MPExpression *)sumExpression
{
_sumExpression.parent = nil;
_sumExpression = sumExpression;
_sumExpression.parent = self;
[self didChangeChildAtIndex:2];
}
#pragma mark Working With the Expression Tree
- (NSUInteger)numberOfChildren
{
return 3;
@@ -48,36 +71,32 @@
}
}
- (NSArray *)children
{
return @[self.startExpression, self.targetExpression, self.sumExpression];
}
- (void)setChild:(MPExpression *)child
atIndex:(NSUInteger)index
{
switch (index) {
// TODO: Copy child?
case 0:
self.startExpression.parent = nil;
self.startExpression = child;
break;
case 1:
self.targetExpression.parent = nil;
self.targetExpression = child;
break;
case 2:
self.sumExpression.parent = nil;
self.sumExpression = child;
break;
default:
return;
}
child.parent = self;
[self didChangeChildAtIndex:index];
}
- (NSArray *)children
{
return @[self.startExpression, self.targetExpression, self.sumExpression];
}
#pragma mark Evaluating Functions
- (double)doubleValue
{
#warning Implementation
@@ -85,7 +104,6 @@
}
#pragma mark Working With Functions
- (BOOL)isEqualToFunction:(MPFunction *)aFunction
{
if (![aFunction isKindOfClass:[MPSumFunction class]]) {
@@ -106,8 +124,13 @@
return [NSString stringWithFormat:@"Sum(From: %@; To: %@; Using: %@)", self.startExpression, self.targetExpression, self.sumExpression];
}
#pragma mark - NSCopying
- (NSUInteger)hash
{
#warning Unimplemented Method
return [super hash];
}
#pragma mark - NSCopying
- (id)copyWithZone:(NSZone *)zone
{
MPSumFunction *copy = [[MPSumFunction allocWithZone:zone] init];