Package freenet.clients.fcp

Source Code of freenet.clients.fcp.DiskDirPutFile

/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.clients.fcp;

import java.io.File;

import freenet.client.DefaultMIMETypes;
import freenet.support.SimpleFieldSet;
import freenet.support.api.RandomAccessBucket;
import freenet.support.io.FileBucket;

public class DiskDirPutFile extends DirPutFile {

  final File file;
 
  public static DiskDirPutFile create(String name, String contentTypeOverride, SimpleFieldSet subset,
      String identifier, boolean global) throws MessageInvalidException {
    String s = subset.get("Filename");
    if(s == null)
      throw new MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Missing field: Filename on "+name, identifier, global);
    File file = new File(s);
    String mimeType;
    if(contentTypeOverride == null)
      mimeType = guessMIME(name, file);
    else
      mimeType = contentTypeOverride;
    return new DiskDirPutFile(name, mimeType, file);
  }
 
  // FIXME implement FileHash support
  public DiskDirPutFile(String name, String mimeType, File f) {
    super(name, mimeType);
     this.file = f;
  }

  protected static String guessMIME(String name, File file) {
    String mime = DirPutFile.guessMIME(name);
    if(mime == null) {
      mime = DefaultMIMETypes.guessMIMEType(file.getName(), false /* fixme? */);
    }
    return mime;
  }

  @Override
  public RandomAccessBucket getData() {
    return new FileBucket(file, true, false, false, false);
  }

  public File getFile() {
    return file;
  }

}
TOP

Related Classes of freenet.clients.fcp.DiskDirPutFile

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.