On 17 January 2014 08:38, Benedikt Ritter <brit...@apache.org> wrote:
> 2014/1/17 sebb <seb...@gmail.com>
>
>> On 17 January 2014 00:57, Gary Gregory <garydgreg...@gmail.com> wrote:
>> > On Thu, Jan 16, 2014 at 7:24 PM, sebb <seb...@gmail.com> wrote:
>> >
>> >> On 16 January 2014 20:58, Gary Gregory <garydgreg...@gmail.com> wrote:
>> >> > On Thu, Jan 16, 2014 at 7:49 AM, Emmanuel Bourg <ebo...@apache.org>
>> >> wrote:
>> >> >
>> >> >> Le 15/01/2014 14:04, Gary Gregory a écrit :
>> >> >>
>> >> >> > Uh, I want to go the other way around. See my use case.
>> >> >>
>> >> >> Why isn't this suitable to your use case? You could write:
>> >> >>
>> >> >>    factory.create(record.toMap());
>> >> >>
>> >> >> and then remove the create(CSVRecord) method with the duplicated
>> >> >> implementation.
>> >> >>
>> >> >> What am I missing?
>> >> >>
>> >> >
>> >> > That would work. What is still not clean or OO is that toMap() means
>> >> > nothing when no headers are defined.
>> >> >
>> >> > I've split the record into a mapped record subclass here:
>> >> >
>> >> > https://issues.apache.org/jira/browse/CSV-104
>> >> >
>> >> > Thoughts?
>> >> >
>> >> > We can still have toMap() implemented on top of the code now, but it
>> >> would
>> >> > have to return null if there are no headers.
>> >>
>> >> Why not return an empty Map?
>> >>
>> >
>> > An empty map is, well, empty but the record is not empty, so that's kinda
>> > confusing,
>>
>> Depends on the method Javadoc whether it is confusing or not.
>>
>> If toMap() is defined to return the empty Map if there are no column
>> names, then that is clear to me.
>>
>> AFAICT an empty map cannot be generated otherwise.
>>
>> Or is there a situation where an empty map means something usefully
>> distinct from no header names?
>>
>> > whereas null is clearly something that does exist. If toMap() is
>> > only in the subclass, then there is no problem.
>> >
>> > The alternative is to create a real map with columns name "Column1",
>> > "Column2", and so on. But then that would be confusing because
>> > record.get("Column1) would give you null whereas
>> > record.toMap().get("Column1") would give you a value. Then we get to talk
>> > about having "Column1", "Column2"... as the default column names if none
>> > are provided... kinda too clever.
>>
>> Yuk.
>>
>> > All of this to say that over time it is likely as we need to provide more
>> > APIs, and it seems easier to say null than an empty structure. First
>> > toMap(), then toProperties() and so on.
>>
>> I don't think that follows.
>>
>> > The KISS solution is toMap() -> null for unmapped records IMO.
>>
>> IMO the empty map is better.
>>
>
> To me this sounds more like IllegalStateException...
>

I would be OK with that as well.

IMO null is almost never correct as a collection or array return.

>>
>> > Gary
>> >
>> >
>> >>
>> >> > Gary
>> >> >
>> >> >
>> >> >>
>> >> >> Emmanuel Bourg
>> >> >>
>> >> >>
>> >> >> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> >> >> For additional commands, e-mail: dev-h...@commons.apache.org
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> > --
>> >> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>> >> > Java Persistence with Hibernate, Second Edition<
>> >> http://www.manning.com/bauer3/>
>> >> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> >> > Spring Batch in Action <http://www.manning.com/templier/>
>> >> > Blog: http://garygregory.wordpress.com
>> >> > Home: http://garygregory.com/
>> >> > Tweet! http://twitter.com/GaryGregory
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> >> For additional commands, e-mail: dev-h...@commons.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>> > Java Persistence with Hibernate, Second Edition<
>> http://www.manning.com/bauer3/>
>> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> > Spring Batch in Action <http://www.manning.com/templier/>
>> > Blog: http://garygregory.wordpress.com
>> > Home: http://garygregory.com/
>> > Tweet! http://twitter.com/GaryGregory
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>>
>>
>
>
> --
> http://people.apache.org/~britter/
> http://www.systemoutprintln.de/
> http://twitter.com/BenediktRitter
> http://github.com/britter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to