/* Copyright 2000 Fraunhofer Gesellschaft
 * Leonrodstr. 54, 80636 Munich, Germany.
 * All rights reserved.
 *
 * You shall use this software only in accordance with
 * the terms of the license agreement you entered into
 * with Fraunhofer Gesellschaft.
 */
package confuoco.ttp.webservice;

import javax.activation.DataHandler;



//import java.io.*;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.Date;

import confuoco.content.*;

/**
 * DOCUMENT ME!
 *
 * @author $author$
 * @version $Revision: 1.4 $
 */
public class FileUploadService
{
    /**
     * DOCUMENT ME!
     */
    private static final String upload = "f:/Temp/Upload";

    /**
     * DOCUMENT ME!
     *
     * @param name DOCUMENT ME!
     * @param date DOCUMENT ME!
     * @param handler DOCUMENT ME!
     *
     * @throws IOException DOCUMENT ME!
     */
    public void upload(String name, Date date, DataHandler handler)
        throws IOException
    {
        System.out.println("start uploading...");
        System.out.println("name " + name);
        System.out.println("date " + date.toString());

        String uploadDir = createUploadDir();

        String fileName  = uploadDir + File.separator + name;
        System.out.println("fileName: " + fileName);

        
           BufferedInputStream in =
               new BufferedInputStream(handler.getDataSource().getInputStream());
           BufferedOutputStream out =
               new BufferedOutputStream(new FileOutputStream(fileName));
           byte[] data              = new byte[1024 * 8];
           int size                 = 0;
           while ((size = in.read(data)) != -1)
           {
               out.write(data, 0, size);
           }
        
           File file = new File(fileName);
           file.setLastModified(date.getTime());
           in.close();
           out.close();
         
        System.out.println("uploading done...");
    }

    /**
     * DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    private String createUploadDir()
    {
        File directory = new File(upload);

        if (!directory.exists())
        {
            directory.mkdirs();
        }
        System.out.println("absolutePath: " + directory.getAbsolutePath());
        return directory.getAbsolutePath();
    }
}
