Extending some of the ideas from #271, calendar components should delegate to their parents the hashing and equality-checking for the properties that their parent types own, and simplify down to the properties that the child type owns.
For example, Event does its own thing, even though there is a type hierarchy above it that it completely ignores. It should probably use the type hierarchy instead. This way, bugfixes and feature enhancements will propagate to the other child types as well.
This may require spending some time understanding the relationship between UniqueComponent and RecurringComponent, and moving some of the hashing and equality logic to other places.
Extending some of the ideas from #271, calendar components should delegate to their parents the hashing and equality-checking for the properties that their parent types own, and simplify down to the properties that the child type owns.
For example,
Event
does its own thing, even though there is a type hierarchy above it that it completely ignores. It should probably use the type hierarchy instead. This way, bugfixes and feature enhancements will propagate to the other child types as well.This may require spending some time understanding the relationship between
UniqueComponent
andRecurringComponent
, and moving some of the hashing and equality logic to other places.