001    /**
002     * Copyright 2007 Mike Kroutikov.
003     *
004     * This program is free software; you can redistribute it and/or modify
005     *   it under the terms of the Lesser GNU General Public License as 
006     *   published by the Free Software Foundation; either version 3 of
007     *   the License, or (at your option) any later version.
008     *
009     *   This program is distributed in the hope that it will be useful,
010     *   but WITHOUT ANY WARRANTY; without even the implied warranty of
011     *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
012     *   Lesser GNU General Public License for more details.
013     *
014     *   You should have received a copy of the Lesser GNU General Public License
015     *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
016     */
017    
018    package org.otfeed.samples;
019    
020    /**
021     * Assorted utils for CSV formatting.
022     */
023    public class CSVUtil {
024    
025            public static String quoteIfNeeded(String s) {
026                    if(s == null) return s;
027                    s = s.trim();
028                    if(s.indexOf('#') >= 0) {
029                            s = s.replace('#', '_');
030                    }
031                    if(s.indexOf(',') < 0) return s;
032                    if(s.indexOf('"') < 0) return "\"" + s + "\"";
033                    if(s.indexOf('\'') < 0) return "'" + s + "'";
034                    throw new AssertionError("unquotable string [" + s + "]");
035            }
036    }