-
Notifications
You must be signed in to change notification settings - Fork 26
Description
@infeo Some while back I forked dokan-java here and wanted to simplify the code base for my needs. You can see that my fork has much less classes/interfaces, yet i find it still just as useful - "less is more" . I wonder if you would like such simplifications contributed back. Here are a few details:
1. DokanFileSystem/DokanFileSystemStub/AbstractDokanFileSystem removed
The problem with DokanFileSystem@friends is that is a very large and brittle interface. It essentially flattens out the many small interfaces in _DokanOperations, where you already had the correct design . Further, the way you coded this requires annotation processing (see NotImplemented), which is not good - what if a developer inherits a class from AbstractDokanFileSystem and forgets to annotate methods?
I do see however, how DokanFileSystem can separate components in the cryptomator project, and maybe they belong there. I just do not see any need for them in dokan-java, removed them in my fork and did not miss them at all!
2. I salvaged the code from AbstractDokanFileSystem
into a new class DokanyMountPoint
3. New meaning of DokanyFileSystem,
I renamed FileSystemInformation -->DokanyFileSystem
**4. Consolidated a bunch of static methods into DokanyUtils
5. Consolidated all exception into one - DokanyException
6. Added default static methods in DokanyOperations
This way the a user can provide implementations only for what they have to.
I might be forgetting some other changes I made, but overall the number of classes and API surface shrunk considerably, making dokan-java codebase easier to use/understand.
Let me know what you think?