This is a continuation of the work originally started in
Modification are always done on the "most significant" resource (i.e. /apps/foo instead of /libs/foo) as determined by the MergedResourcePicker.
The algorithm for modification is as follows:
- Create - if the most significant resource doesn't exist, one is created at that path; otherwise an exception is thrown.
- Delete - if the most significat resource doesn't exist, the hide children property is set on the most signfiicant resource's parent. if it does exist, it is deleted and the hide children property is set.
- Property Modifications - most significant resource is created as necessary.
- Create - created on most significant resource
- Modify - created/updated on most significant resource
- Delete - deleted if necessary on most significant resource and hidden.