class TaskJuggler::ShiftAssignments

This class manages a list of ShiftAssignment elements. The intervals of the assignments must not overlap.

Since it is fairly costly to determine the onShift and onLeave values for a given date we use a scoreboard to cache all computed values. Changes to the assigment set invalidate the cache again.

To optimize memory usage and computation time the Scoreboard objects for similar ShiftAssignments are shared.

Scoreboard may be nil or a bit vector encoded as an Integer nil: Value has not been determined yet. Bit 0: 0: No assignment

1: Has assignement

Bit 1: 0: Work time (as defined by working hours)

1: No work time (as defined by working hours)

Bit 2 - 5: 0: No holiday or leave time

1: Public holiday (holiday)
2: Annual leave
3: Special leave
4: Sick leave
5: unpaid leave
6: blocked for other projects
7 - 15: Reserved

Bit 6 - 7: Reserved Bit 8: 0: No global override

1: Override global setting