cvmfs/cvmfs — pull request #27 by reneme (2012-11-14 12:27:38+00:00)
Title: Refactoring: DirectoryEntry now has an underlying DirectoryEntryBase encapsulating file system meta data only

The `DirectoryEntry` class was encapsulating file system meta data as well as CVMFS specific administrative meta data (i.e. nested catalog transition points, ...) which led to confusion. Especially since a `DirectoryEntry`, generated by the synchronisation backend (namely the `SyncMediator`), contained meaningless default values for the CVMFS meta information. This led to a bug that was [hotfixed](https://github.com/cvmfs/cvmfs/pull/26) before.

Now the `DirectoryEntry` has a superclass called `DirectoryEntryBase` which contains file system meta data while the `DirectoryEntry` adds the CVMFS intrinsics to it. For the client side the `DirectoryEntry` behaves exactly as before while the low level synchronisation deals with the restricted `DirectoryEntryBase` class only. The `WritableCatalogManager` is responsible to augment these "raw" entries with meaningful CVMFS specific meta data where necessary.

Additionally the [hotfixed functionality](https://github.com/cvmfs/cvmfs/pull/26) of the method WritableCatalogManager::TouchEntry was refactored to separate pure file system specific actions from actual CVMFS intrinsics.