File: AggregateEvent.m

package info (click to toggle)
paje.app 1.98-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,428 kB
  • sloc: objc: 24,517; ansic: 6,998; makefile: 134; sh: 42; java: 31
file content (117 lines) | stat: -rw-r--r-- 2,326 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include "AggregateEvent.h"

#include "../General/Macros.h"

@implementation AggregateEvent

+ (PajeEntity *)entityWithEntities:(NSArray *)entities;
{
    return [[[self alloc] initWithEntities:entities] autorelease];
}

- (id)initWithEntities:(NSArray *)entities
{
    NSEnumerator *entityEnum;
    PajeEntity *entity;
    PajeEntity *lastEntity;
    
    entityEnum = [entities objectEnumerator];
    entity = [entityEnum nextObject];

    NSParameterAssert(entity != nil);

    self = [super initWithType:[entity entityType]
                          name:@"AggregateEvent"
                     container:[entity container]];
    if (self != nil) {
        condensedArray = [[CondensedEntitiesArray alloc] init];
        Assign(endTime, [entity endTime]);
        do {
            [condensedArray addArray:[entity condensedEntities]];
            condensedEntitiesCount += [entity condensedEntitiesCount];
            if (![entity isAggregate]) {
                [condensedArray addValue:[entity value] count:1];
                condensedEntitiesCount ++;
            }
            lastEntity = entity;
        } while ((entity = [entityEnum nextObject]) != nil);
        Assign(startTime, [lastEntity startTime]);
    }
    return self;
}

- (void)dealloc
{
    Assign(condensedArray, nil);
    Assign(startTime, nil);
    Assign(endTime, nil);
    [super dealloc];
}

- (BOOL)isAggregate
{
    return YES;
}

- (NSDate *)startTime
{
    return startTime;
}

- (NSDate *)time
{
    return startTime;
}

- (NSDate *)endTime
{
    return endTime;
}

- (double)exclusiveDuration
{
    return 0.0;
}

- (unsigned)condensedEntitiesCount
{
    return condensedEntitiesCount;
}

- (CondensedEntitiesArray *)condensedEntities
{
    return condensedArray;
}

- (unsigned)subCount
{
    return [condensedArray count];
}

- (id)subValueAtIndex:(unsigned)i
{
    return [condensedArray valueAtIndex:i];
}

- (NSColor *)subColorAtIndex:(unsigned)i
{
    return [entityType colorForValue:[condensedArray valueAtIndex:i]];
}

- (unsigned)subCountAtIndex:(unsigned)i
{
    return [condensedArray countAtIndex:i];
}

- (double)subDurationAtIndex:(unsigned)i
{
    return [self duration] * [condensedArray countAtIndex:i]
                           / condensedEntitiesCount;
}

- (NSColor *)color
{
    return [NSColor whiteColor];
}

@end