> If I can find the time tomorrow, I'll read up on UML and then get back
> to you - assuming you are talking about a UML 'use case'?

When I say "use case", I mean a specific example of something an application 
developer might want to do with the platform. For example, I might want to 
support deferred loading of tree view data in my application, since the tree 
may be large, or it may be expensive to build individual nodes. That's the use 
case - it doesn't speak to how it will be accomplished, just what it needs to 
do, and why.

> However, this looks like it might be turning into a prime example of
> when making a quick suggestion becomes a time consuming process which
> could be avoided by simply making, and maintaining, a single change
> locally. (1 change of 'private' --> 'protected')

Maybe, but when unchecked those types of changes can destabilize a system.

> In my original email I mentioned that simply loosening the visibility
> of the private internal map used by 'Resources' would allow different
> data formats and data sources.  Doing so would result in no API change
> at all.

Changing a member from private to protected is an API change.

> It also mentioned some simple refactoring to extract an interface to
> be used by consumers of the resource bundle, along with a possible
> abstract class containing core reuseable code, such as the
> hierarchy/resolution stuff.  The existing Resources class would extend
> the abstract class and implement the interface.  I was not proposing
> any new implementations to be supplied with Pivot, or any functional
> change to the current implementation.

These changes would require the creation of a new interface, and perhaps a new 
means of instantiating Resources (for example, JDK ResourceBundles don't have a 
constructor - they use a factory method). It would be helpful to understand how 
you envision this working.

> As the original mail also said, I have not looked into the bowels of
> Pivot to see if this refactoring would be enough, as I was merely
> making an initial suggestion to see if there was any interest in the
> idea.

OK. That was not clear to me from your email (I just took a look again, and I 
don't see any language indicating that it was meant to gauge developer interest 
in such a feature).

As I mentioned earlier, Pivot's feature set evolved from specific use cases and 
requirements. When proposing a change or new feature, I'd suggest maybe 
starting the discussion as follows:

1) I want to do X
2) I have tried doing Y and Z, but neither of those things let me do X [as 
efficiently as I would like to]
3) We could potentially solve this problem if we modified the API as follows: 
...
3a) Alternatively, we could do it like this, and the tradeoffs would be: ...

I don't know about anyone else, but that would help me better understand the 
motivation behind any changes you might want to suggest.

G

Reply via email to