// Path: src/main/java/com/github/takezoe/xlsbeans/xssfconverter/NullWSheetImpl.java
// public class NullWSheetImpl implements WSheet {
// 
//   public static final NullWSheetImpl INSTANCE = new NullWSheetImpl();
// 
//   public String getName() {
//     return null;
//   }
// 
//   public WCell[] getColumn(int i) {
//     return null;
//   }
// 
//   public WCell getCell(int column, int row) {
//     return null;
//   }
// 
//   public int getColumns() {
//     return 0;
//   }
// 
//   public int getRows() {
//     return 0;
//   }
// 
// }
// 
// Path: src/main/java/com/github/takezoe/xlsbeans/xssfconverter/WSheet.java
// public interface WSheet {
//   String getName();
// 
//   int getColumns();
// 
//   WCell[] getColumn(int i);
// 
//   WCell getCell(int column, int row);
// 
//   int getRows();
// }
// 
// Path: src/main/java/com/github/takezoe/xlsbeans/xssfconverter/WWorkbook.java
// public interface WWorkbook {
//   WSheet getSheet(int i);
// 
//   WSheet getSheet(String name);
// 
//   WSheet[] getSheets();
// }


import com.github.takezoe.xlsbeans.xssfconverter.NullWSheetImpl;
import com.github.takezoe.xlsbeans.xssfconverter.WSheet;
import com.github.takezoe.xlsbeans.xssfconverter.WWorkbook;
import jxl.Sheet;
import jxl.Workbook;

package com.github.takezoe.xlsbeans.xssfconverter.impl.jxl;


/**
 * Workbook wrapper for Java Excel API.
 *
 * @author Mitsuyoshi Hasegawa
 */
public class JxlWWorkbookImpl implements WWorkbook {

  private Workbook workbook = null;

  public JxlWWorkbookImpl(Workbook workbook) {
    this.workbook = workbook;
  }

  public WSheet getSheet(int i) {
    Sheet sheet;
    try {
      sheet = workbook.getSheet(i);
    } catch (IndexOutOfBoundsException e) {
      sheet = null;
    }
    return (sheet != null) ? new JxlWSheetImpl(workbook.getSheet(i)) : NullWSheetImpl.INSTANCE;
  }

  public WSheet getSheet(String name) {
    Sheet sheet = workbook.getSheet(name);

// Path: src/main/java/com/github/takezoe/xlsbeans/xssfconverter/NullWSheetImpl.java
// public class NullWSheetImpl implements WSheet {
// 
//   public static final NullWSheetImpl INSTANCE = new NullWSheetImpl();
// 
//   public String getName() {
//     return null;
//   }
// 
//   public WCell[] getColumn(int i) {
//     return null;
//   }
// 
//   public WCell getCell(int column, int row) {
//     return null;
//   }
// 
//   public int getColumns() {
//     return 0;
//   }
// 
//   public int getRows() {
//     return 0;
//   }
// 
// }
// 
// Path: src/main/java/com/github/takezoe/xlsbeans/xssfconverter/WSheet.java
// public interface WSheet {
//   String getName();
// 
//   int getColumns();
// 
//   WCell[] getColumn(int i);
// 
//   WCell getCell(int column, int row);
// 
//   int getRows();
// }
// 
// Path: src/main/java/com/github/takezoe/xlsbeans/xssfconverter/WWorkbook.java
// public interface WWorkbook {
//   WSheet getSheet(int i);
// 
//   WSheet getSheet(String name);
// 
//   WSheet[] getSheets();
// }


// Path: src/main/java/com/github/takezoe/xlsbeans/xssfconverter/impl/jxl/JxlWWorkbookImpl.java
import com.github.takezoe.xlsbeans.xssfconverter.NullWSheetImpl;
import com.github.takezoe.xlsbeans.xssfconverter.WSheet;
import com.github.takezoe.xlsbeans.xssfconverter.WWorkbook;
import jxl.Sheet;
import jxl.Workbook;

package com.github.takezoe.xlsbeans.xssfconverter.impl.jxl;


/**
 * Workbook wrapper for Java Excel API.
 *
 * @author Mitsuyoshi Hasegawa
 */
public class JxlWWorkbookImpl implements WWorkbook {

  private Workbook workbook = null;

  public JxlWWorkbookImpl(Workbook workbook) {
    this.workbook = workbook;
  }

  public WSheet getSheet(int i) {
    Sheet sheet;
    try {
      sheet = workbook.getSheet(i);
    } catch (IndexOutOfBoundsException e) {
      sheet = null;
    }
    return (sheet != null) ? new JxlWSheetImpl(workbook.getSheet(i)) : NullWSheetImpl.INSTANCE;
  }

  public WSheet getSheet(String name) {
    Sheet sheet = workbook.getSheet(name);

    return (sheet != null) ? new JxlWSheetImpl(workbook.getSheet(name)) : NullWSheetImpl.INSTANCE;
