001    /*----------------    FILE HEADER  ------------------------------------------
002    
003     This file is part of deegree.
004     Copyright (C) 2001-2008 by:
005     EXSE, Department of Geography, University of Bonn
006     http://www.giub.uni-bonn.de/deegree/
007     lat/lon GmbH
008     http://www.lat-lon.de
009    
010     This library is free software; you can redistribute it and/or
011     modify it under the terms of the GNU Lesser General Public
012     License as published by the Free Software Foundation; either
013     version 2.1 of the License, or (at your option) any later version.
014    
015     This library is distributed in the hope that it will be useful,
016     but WITHOUT ANY WARRANTY; without even the implied warranty of
017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
018     Lesser General Public License for more details.
019    
020     You should have received a copy of the GNU Lesser General Public
021     License along with this library; if not, write to the Free Software
022     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
023    
024     Contact:
025    
026     Andreas Poth
027     lat/lon GmbH
028     Aennchenstr. 19
029     53115 Bonn
030     Germany
031     E-Mail: poth@lat-lon.de
032    
033     Prof. Dr. Klaus Greve
034     Department of Geography
035     University of Bonn
036     Meckenheimer Allee 166
037     53115 Bonn
038     Germany
039     E-Mail: greve@giub.uni-bonn.de
040    
041     
042     ---------------------------------------------------------------------------*/
043    package org.deegree.tools.importer;
044    
045    import java.io.BufferedInputStream;
046    import java.io.File;
047    import java.io.FileInputStream;
048    import java.io.FileNotFoundException;
049    import java.io.IOException;
050    import java.util.ArrayList;
051    import java.util.List;
052    
053    import org.deegree.framework.log.ILogger;
054    import org.deegree.framework.log.LoggerFactory;
055    
056    
057    
058    /**
059     * 
060     * The <code>FileLoader</code> loads a file from given path.
061     * 
062     * @author <a href="mailto:buesching@lat-lon.de">Lyn Buesching</a>
063     * @author last edited by: $Author: buesching $
064     * 
065     * @version $Revision: 1.1 $, $Date: 2007-10-10 14:21:26 $
066     *
067     */
068    public class FileLoader implements Loader {
069    
070        private static final ILogger LOG = LoggerFactory.getLogger( FileLoader.class );
071        
072        /**
073         * @param objectToLoad  contains an Array of strings, where the first 
074         *          entry contains the source to load and the second the target to export
075         * @return an ArrayList of objects, where the first object contains an 
076         *          Array of bytes to export and the second object the information 
077         *          of the target to export 
078         */
079        public Object loadObject( Object objectToLoad ) {
080            List<Object> result = new ArrayList<Object>();
081            String source = ((String[]) objectToLoad)[0];
082            LOG.logInfo( Messages.getString("FileLoader.LOAD", source ) );
083            File file = new File( source );
084            int fileLength = (int) file.length();
085            byte[] byteArray = new byte[fileLength];
086            try {    
087                FileInputStream fileIS = new FileInputStream( file );
088                BufferedInputStream bufferedIS = new BufferedInputStream( fileIS );
089                bufferedIS.read( byteArray, 0, fileLength );
090                bufferedIS.close();
091                fileIS.close();
092                result.add( byteArray );
093                result.add( ((String[]) objectToLoad)[1] );
094                return result;
095            } catch ( FileNotFoundException e ) {
096                e.printStackTrace();
097                return null;
098            } catch ( IOException e ) {
099                e.printStackTrace();
100                return null;
101            }
102        }
103        
104    }