[jira] [Commented] (CSV-82) CSVRecord inconsistent behaviour when header mapping is not found

2013-06-24 Thread Emmanuel Bourg (JIRA)

[ 
https://issues.apache.org/jira/browse/CSV-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13692006#comment-13692006
 ] 

Emmanuel Bourg commented on CSV-82:
---

Sounds good. We probably want to better document isMapped/isSet though, the 
difference is not obvious when reading the javadoc.

 CSVRecord inconsistent behaviour when header mapping is not found
 -

 Key: CSV-82
 URL: https://issues.apache.org/jira/browse/CSV-82
 Project: Commons CSV
  Issue Type: Bug
Reporter: Sebb

 The CSVRecord#get(String) method has inconsistent behaviour.
 If no header mapping was provided, then it throws IllegalStateException.
 If the header name is not found, null is returned.
 Apart from being inconsistent, it might be useful in the future to be able to 
 return null as a column value (as distinct from the empty string).
 It should throw IllegalArgumentException for a missing header name, instead 
 of returning null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CSV-82) CSVRecord inconsistent behaviour when header mapping is not found

2013-06-23 Thread Gary Gregory (JIRA)

[ 
https://issues.apache.org/jira/browse/CSV-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13691688#comment-13691688
 ] 

Gary Gregory commented on CSV-82:
-

Can we close this issue? 

 CSVRecord inconsistent behaviour when header mapping is not found
 -

 Key: CSV-82
 URL: https://issues.apache.org/jira/browse/CSV-82
 Project: Commons CSV
  Issue Type: Bug
Reporter: Sebb

 The CSVRecord#get(String) method has inconsistent behaviour.
 If no header mapping was provided, then it throws IllegalStateException.
 If the header name is not found, null is returned.
 Apart from being inconsistent, it might be useful in the future to be able to 
 return null as a column value (as distinct from the empty string).
 It should throw IllegalArgumentException for a missing header name, instead 
 of returning null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CSV-82) CSVRecord inconsistent behaviour when header mapping is not found

2013-03-20 Thread Benedikt Ritter (JIRA)

[ 
https://issues.apache.org/jira/browse/CSV-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13608126#comment-13608126
 ] 

Benedikt Ritter commented on CSV-82:


Returning null is the same behavior as defined by 
{{java.util.Map.get(Object)}}. 
When a Map returns null on {{get(Object)}}, you don't know if this is, because 
null was associated with the key (given you are using a Map implementation that 
allows null values) or because no mapping for the given key is available.
Map provides {{contains(Object)}} to distinguish between the two cases.

{{CSVRecord}} OTOH provides {{isMapped(String)}} and {{isSet(String)}} for this.

 CSVRecord inconsistent behaviour when header mapping is not found
 -

 Key: CSV-82
 URL: https://issues.apache.org/jira/browse/CSV-82
 Project: Commons CSV
  Issue Type: Bug
Reporter: Sebb

 The CSVRecord#get(String) method has inconsistent behaviour.
 If no header mapping was provided, then it throws IllegalStateException.
 If the header name is not found, null is returned.
 Apart from being inconsistent, it might be useful in the future to be able to 
 return null as a column value (as distinct from the empty string).
 It should throw IllegalArgumentException for a missing header name, instead 
 of returning null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CSV-82) CSVRecord inconsistent behaviour when header mapping is not found

2012-03-26 Thread Emmanuel Bourg (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/CSV-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13238343#comment-13238343
 ] 

Emmanuel Bourg commented on CSV-82:
---

I don't find this inconsistent. There are two cases to handle:

# The header is missing and a field is accessed by name
# The header is present but the column name requested doesn't exist

In case 1 an IllegalStateException is thrown, because the expectation of the 
user is severely broken. He attempts to access the fields by name which is 
completely impossible.

In case 2 a null value is returned, because some column may be optional. It's 
not reasonable to throw an exception in this case, otherwise reading optional 
columns in a try catch block will become very cumbersome.

If you want to differentiate between missing columns and null values this can 
be done with a CSVRecord#has(String) method. But is it actually useful?


 CSVRecord inconsistent behaviour when header mapping is not found
 -

 Key: CSV-82
 URL: https://issues.apache.org/jira/browse/CSV-82
 Project: Commons CSV
  Issue Type: Bug
Reporter: Sebb

 The CSVRecord#get(String) method has inconsistent behaviour.
 If no header mapping was provided, then it throws IllegalStateException.
 If the header name is not found, null is returned.
 Apart from being inconsistent, it might be useful in the future to be able to 
 return null as a column value (as distinct from the empty string).
 It should throw IllegalArgumentException for a missing header name, instead 
 of returning null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CSV-82) CSVRecord inconsistent behaviour when header mapping is not found

2012-03-26 Thread Sebb (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/CSV-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13238362#comment-13238362
 ] 

Sebb commented on CSV-82:
-

bq. In case 2 a null value is returned, because some column may be optional.

I don't understand this concept of optional columns.
Surely any CSV header line needs to provide names for all the columns?
Otherwise, what's the point of the header line?

 CSVRecord inconsistent behaviour when header mapping is not found
 -

 Key: CSV-82
 URL: https://issues.apache.org/jira/browse/CSV-82
 Project: Commons CSV
  Issue Type: Bug
Reporter: Sebb

 The CSVRecord#get(String) method has inconsistent behaviour.
 If no header mapping was provided, then it throws IllegalStateException.
 If the header name is not found, null is returned.
 Apart from being inconsistent, it might be useful in the future to be able to 
 return null as a column value (as distinct from the empty string).
 It should throw IllegalArgumentException for a missing header name, instead 
 of returning null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CSV-82) CSVRecord inconsistent behaviour when header mapping is not found

2012-03-26 Thread Emmanuel Bourg (Commented) (JIRA)

[ 
https://issues.apache.org/jira/browse/CSV-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13238440#comment-13238440
 ] 

Emmanuel Bourg commented on CSV-82:
---

The header line should indeed identify all the columns of the file, but the 
parsing code might be ready to handle more columns than actually present.

I have a case where a file contains a date and a time column. The file is 
generated by a servlet, and depending on a query parameter the time column 
might be omitted. There is a unique parsing code for both cases, this code 
considers the time information as optional. It fetches the time column by name 
and simply ignores a null value.


 CSVRecord inconsistent behaviour when header mapping is not found
 -

 Key: CSV-82
 URL: https://issues.apache.org/jira/browse/CSV-82
 Project: Commons CSV
  Issue Type: Bug
Reporter: Sebb

 The CSVRecord#get(String) method has inconsistent behaviour.
 If no header mapping was provided, then it throws IllegalStateException.
 If the header name is not found, null is returned.
 Apart from being inconsistent, it might be useful in the future to be able to 
 return null as a column value (as distinct from the empty string).
 It should throw IllegalArgumentException for a missing header name, instead 
 of returning null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira