On 2 August 2013 00:44, James Carman <ja...@carmanconsulting.com> wrote: > You are -1ing a code modification, which means this counts as a veto. > Are you sure you want to veto this?
Yes. We don't have agreement that CSV should include these methods. > On Thu, Aug 1, 2013 at 7:28 PM, sebb <seb...@gmail.com> wrote: >> On 1 August 2013 22:57, <ggreg...@apache.org> wrote: >>> Author: ggregory >>> Date: Thu Aug 1 21:57:46 2013 >>> New Revision: 1509450 >>> >>> URL: http://svn.apache.org/r1509450 >>> Log: >>> Add CSVRecord#getInt(String) API and tests. >> >> -1 >> >> I think this is out of scope for CSV. >> >>> Added: >>> >>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordIntTest.java >>> (with props) >>> Modified: >>> >>> commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java >>> >>> Modified: >>> commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java >>> URL: >>> http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java?rev=1509450&r1=1509449&r2=1509450&view=diff >>> ============================================================================== >>> --- >>> commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java >>> (original) >>> +++ >>> commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVRecord.java >>> Thu Aug 1 21:57:46 2013 >>> @@ -146,6 +146,23 @@ public class CSVRecord implements Serial >>> * if the record is inconsistent >>> * @see #isConsistent() >>> */ >>> + public int getInt(String name) { >>> + String s = this.get(name); >>> + return s != null ? Integer.parseInt(s) : 0; >>> + } >>> + >>> + /** >>> + * Returns a value by name. >>> + * >>> + * @param name >>> + * the name of the column to be retrieved. >>> + * @return the column value >>> + * @throws IllegalStateException >>> + * if no header mapping was provided >>> + * @throws IllegalArgumentException >>> + * if the record is inconsistent >>> + * @see #isConsistent() >>> + */ >>> public long getLong(String name) { >>> String s = this.get(name); >>> return s != null ? Long.parseLong(s) : 0; >>> >>> Added: >>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordIntTest.java >>> URL: >>> http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordIntTest.java?rev=1509450&view=auto >>> ============================================================================== >>> --- >>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordIntTest.java >>> (added) >>> +++ >>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordIntTest.java >>> Thu Aug 1 21:57:46 2013 >>> @@ -0,0 +1,64 @@ >>> +/* >>> + * Licensed to the Apache Software Foundation (ASF) under one or more >>> + * contributor license agreements. See the NOTICE file distributed with >>> + * this work for additional information regarding copyright ownership. >>> + * The ASF licenses this file to You under the Apache License, Version 2.0 >>> + * (the "License"); you may not use this file except in compliance with >>> + * the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, software >>> + * distributed under the License is distributed on an "AS IS" BASIS, >>> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >>> + * See the License for the specific language governing permissions and >>> + * limitations under the License. >>> + */ >>> +package org.apache.commons.csv; >>> + >>> +import java.io.IOException; >>> + >>> +import org.junit.Assert; >>> +import org.junit.Before; >>> +import org.junit.Test; >>> + >>> +public class CSVRecordIntTest { >>> + >>> + private CSVRecord record; >>> + >>> + /** >>> + * @return >>> + * @throws IOException >>> + */ >>> + private CSVRecord createTestRecord() throws IOException { >>> + String csv = "A, B, C, D, E\n-1, 0, 1, " + Integer.MAX_VALUE + ", >>> " + Integer.MIN_VALUE; >>> + CSVRecord record = CSVParser.parseString(csv, >>> CSVFormat.DEFAULT.withHeader().withIgnoreSurroundingSpaces(true)) >>> + .iterator().next(); >>> + return record; >>> + } >>> + >>> + @Before >>> + public void setUp() throws IOException { >>> + this.record = createTestRecord(); >>> + } >>> + >>> + @Test(expected = IllegalArgumentException.class) >>> + public void testGetIntegerByMissingString() { >>> + Assert.assertEquals(null, >>> Integer.valueOf(record.getInt("ABSENT"))); >>> + } >>> + >>> + @Test(expected = IllegalArgumentException.class) >>> + public void testGetIntegerByNullString() { >>> + Assert.assertEquals(null, Integer.valueOf(record.getInt(null))); >>> + } >>> + >>> + @Test >>> + public void testGetIntegerByString() { >>> + Assert.assertEquals(-1, record.getInt("A")); >>> + Assert.assertEquals(0, record.getInt("B")); >>> + Assert.assertEquals(1, record.getInt("C")); >>> + Assert.assertEquals(Integer.MAX_VALUE, record.getInt("D")); >>> + Assert.assertEquals(Integer.MIN_VALUE, record.getInt("E")); >>> + } >>> + >>> +} >>> >>> Propchange: >>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordIntTest.java >>> ------------------------------------------------------------------------------ >>> svn:eol-style = native >>> >>> Propchange: >>> commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CSVRecordIntTest.java >>> ------------------------------------------------------------------------------ >>> svn:keywords = Id >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org