/* Copyright (c) 2003-2006 Ricebridge. All Rights Reserved. * * This file is available under the terms and conditions of the * Ricebridge "Open Source API" policy; Ricebridge grants use of this * copyrighted work under the terms of a BSD-style license only. See * http://www.opensource.org/licenses/bsd-license.php for more * information. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * - Neither the name of the Ricebridge nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ package com.ricebridge.csvman; /** DO NOT USE. FOR BACKWARDS COMPATIBILITY ONLY. * <p>This class is used for compatibility with <i>CSV Manager 1.1</i>. In that version, * custom {@link LineProvider LineProviders} inherited from <code>LineProviderSupport</code>, * not {@link CustomLineProvider}. Since the method API has changed this class is no longer * directly compatible. However, <i>CSV Manager</i> includes a compatibility layer so that * existing code will continue to function without requiring any changes.</p> * @see CustomLineProvider */ public abstract class LineProviderSupport implements LineProvider { /** Old version of {@link CustomLineProvider#startProcess CustomLineListener.startProcess}. */ public void startSave() { try { startSaveImpl(); } catch( CsvManagerException ce ) { throw ce; } catch( Exception e ) { throw new CsvManagerException( CsvManagerException.CODE_lineprovider_exception, new String[] { "line-provider-class", this.getClass().getName(), "methodname", "startSaveImpl" }, e ); } } /** Old version of {@link CustomLineProvider#endProcess CustomLineListener.endProcess}. */ public void endSave() { try { endSaveImpl(); } catch( CsvManagerException ce ) { throw ce; } catch( Exception e ) { throw new CsvManagerException( CsvManagerException.CODE_lineprovider_exception, new String[] { "line-provider-class", this.getClass().getName(), "methodname", "endSaveImpl" }, e ); } } /** Old version of {@link CustomLineProvider#hasNextLine CustomLineListener.hasNextLine}. */ public boolean hasNextLine() { try { return hasNextLineImpl(); } catch( CsvManagerException ce ) { throw ce; } catch( Exception e ) { throw new CsvManagerException( CsvManagerException.CODE_lineprovider_exception, new String[] { "line-provider-class", this.getClass().getName(), "methodname", "hasNextLineImpl" }, e ); } } /** Defunct method. {@link CustomLineProvider#nextLine CustomLineListener.nextLine} * now returns <code>String[]<./code>. */ public boolean hasNextField() { try { return hasNextFieldImpl(); } catch( CsvManagerException ce ) { throw ce; } catch( Exception e ) { throw new CsvManagerException( CsvManagerException.CODE_lineprovider_exception, new String[] { "line-provider-class", this.getClass().getName(), "methodname", "hasNextFieldImpl" }, e ); } } /** Defunct method. {@link CustomLineProvider#nextLine CustomLineListener.nextLine} * now returns <code>String[]<./code>. */ public String nextField() { try { return nextFieldImpl(); } catch( CsvManagerException ce ) { throw ce; } catch( Exception e ) { throw new CsvManagerException( CsvManagerException.CODE_lineprovider_exception, new String[] { "line-provider-class", this.getClass().getName(), "methodname", "nextFieldImpl" }, e ); } } /** Old version of {@link CustomLineProvider#nextLine CustomLineListener.nextLine}. */ public String[] nextLine() { try { nextLineImpl(); } catch( CsvManagerException ce ) { throw ce; } catch( Exception e ) { throw new CsvManagerException( CsvManagerException.CODE_lineprovider_exception, new String[] { "line-provider-class", this.getClass().getName(), "methodname", "nextLineImpl" }, e ); } // for compatibility with 1.2 return null; } /** Compatibility version of {@link CustomLineProvider#setCsvSpecImpl CustomLineProvider.setCsvSpecImpl}. */ protected void setCsvSpecImpl( CsvSpec pCsvSpec ) throws Exception { // default does nothing } /** Compatibility version of {@link CustomLineProvider#setLineSpecImpl CustomLineProvider.setLineSpecImpl}. */ protected void setLineSpecImpl( LineSpec pLineSpec ) throws Exception { // default does nothing } /** Old version of {@link CustomLineProvider#nextLineImpl CustomLineListener.nextLineImpl}. */ public abstract void startSaveImpl() throws Exception; /** Old version of {@link CustomLineProvider#nextLineImpl CustomLineListener.nextLineImpl}. */ public abstract void endSaveImpl() throws Exception; /** Old version of {@link CustomLineProvider#nextLineImpl CustomLineListener.nextLineImpl}. */ public abstract boolean hasNextLineImpl() throws Exception; /** Defunct method. {@link CustomLineProvider#nextLine CustomLineListener.nextLine} * now returns <code>String[]<./code>. */ public abstract boolean hasNextFieldImpl() throws Exception; /** Defunct method. {@link CustomLineProvider#nextLine CustomLineListener.nextLine} * now returns <code>String[]<./code>. */ public abstract String nextFieldImpl() throws Exception; /** Old version of {@link CustomLineProvider#nextLineImpl CustomLineListener.nextLineImpl}. */ public abstract void nextLineImpl() throws Exception; // for compatibility with 1.2 /** <i>CSV Manager 1.2</i> interface compatibility - does nothing. */ public void setLineSpec( LineSpec pLineSpec ) {} /** <i>CSV Manager 1.2</i> interface compatibility - does nothing. */ public void setCsvSpec( CsvSpec pCsvSpec ) {} /** <i>CSV Manager 1.2</i> interface compatibility - does nothing. */ public void startProcess() {} /** <i>CSV Manager 1.2</i> interface compatibility - does nothing. */ public void endProcess() {} }