See my comments inline ... > On 05.07.2020, at 15:25, Daniel Dekany <daniel.dek...@gmail.com> wrote: > > See my comments inline... > > On Sun, Jul 5, 2020 at 2:49 PM Siegfried Goeschl < > siegfried.goes...@gmail.com <mailto:siegfried.goes...@gmail.com>> wrote: > >> Hi Daniel, >> >> Please see my comments below >> >> Thanks in advance, >> >> Siegfried Goeschl >> >> >> >>> On 05.07.2020, at 13:42, Daniel Dekany <daniel.dek...@gmail.com> wrote: >>> >>> The reason I was asking is that if all functionality goes in >> DataSourcers, >>> the methods will shadow data source names. Like if you have a data source >>> named "empty", then DataSources.empty will not return that, instead it >> will >>> call isEmpty(). That also means that adding new methods to DataSource is >>> not backward compatible. So probably we will need a separate DataSources, >>> and DataSourceTool or something. (It's also possible to reverse >> priorities, >>> but that's even less manageable for the user.) >> >> Thanks, I was not aware of that - let me recap my understanding >> >> If I have a data source "empty", e.g. "empty=somepath/some.csv" >> >> * DataSources.empty would call DataSources.isEmpty() >> * DataSources["empty"] would fetch the data source "empty" >> > > Yeah, so thing is, in FreeMarker, foo.bar and foo["bar"] are exactly the > same. Furthermore, foo.bar() is just foo.bar, and then () operator is > applied on it's value (which is a method as a first class value). > > >> * DataSources.get("empty") would fetch the data source "empty" since it >> calls DataSources.get(String) >> > > Yes. > > >> Some thoughts along the line >> >> * The names of a list of data sources are not enforced to be unique so the >> map functionality is slightly broken >> > > Why not? That was also a quite important problem. I guess I even listed it > in the recent mail... or not. So these names and groups, should be > consolidated too.
Harvesting directory trees and consolidating the files into a single output - here I can't guarantee that the names are unique > > >> * Tools for me are stateless and can be potentially shared so I can not >> put the data sources for the current transformation in there >> > > I guess, technically speaking, you can. You are in the context of a > freemarker-generator run (or whatever the term for that is... session?). > Where's the ambiguity, or similar issue, if any? Still want to make the code embeddable so in my mental model the tools are reusable and do not contain "session-specific" data > > [snip] > > -- > Best regards, > Daniel Dekany