[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [wtp-dev] Request for Feedback for ModuleCore/Flex Project API
|
It's important to be aware that with
the Platform 3.1 API freeze next week, there will be no platform support
in the way of abstract base classes for IResource in that time frame. This
means that it won't be practical to implement or extend IResource in any
plug-in based on version 3.1 of the platform. These interfaces can
and frequently do have methods added, which would break any implementors
outside the platform.
Furthermore, from the experience of seeing
several parties attempt to abstract basic function from IResource, it is
very difficult to define such an abstract layer in a way that satisfies
a sufficiently broad group of
clients for it to be worthwhile. Every degree of new flexibility
afforded to implementors of IResource amounts to a new degree of pain or
uncertainty for clients using IResource that want to make assumptions about
their location and behaviour. For example, clients of your implementation
of IResource would be broken if they called IContainer.getLocation().toFile(),
and discovered that the contents on disk don't match what IContainer.members()
tells them should be there.
Having said that, the goal of abstracting
away the complexity of your implementation from clients sounds good. Every
implementation detail you can hide from your clients improves your ability
to make changes in the future - clearly an important consideration for
version 1.0 of the web tools platform. However, IResource doesn't
look like the right abstraction to hide behind at this point.