@Override
  public Object clone() {
    ExcelInputMeta retval = (ExcelInputMeta) super.clone();
    normilizeAllocation();

    int nrfiles = fileName.length;
    int nrsheets = sheetName.length;
    int nrfields = field.length;

    retval.allocate( nrfiles, nrsheets, nrfields );

    for ( int i = 0; i < nrfields; i++ ) {
      retval.field[ i ] = (ExcelInputField) field[ i ].clone();
    }

    System.arraycopy( fileName, 0, retval.fileName, 0, nrfiles );
    System.arraycopy( fileMask, 0, retval.fileMask, 0, nrfiles );
    System.arraycopy( excludeFileMask, 0, retval.excludeFileMask, 0, nrfiles );
    System.arraycopy( fileRequired, 0, retval.fileRequired, 0, nrfiles );
    System.arraycopy( includeSubFolders, 0, retval.includeSubFolders, 0, nrfiles );

    System.arraycopy( sheetName, 0, retval.sheetName, 0, nrsheets );
    System.arraycopy( startColumn, 0, retval.startColumn, 0, nrsheets );
    System.arraycopy( startRow, 0, retval.startRow, 0, nrsheets );

    return retval;
  }
@Test
  public void testClone() throws KettleException {
    ExcelInputMeta clone = (ExcelInputMeta) meta.clone();
    Assert.assertEquals( meta.getXML(), clone.getXML() );
  }