Package freenet.clients.fcp

Source Code of freenet.clients.fcp.RedirectDirPutFile

package freenet.clients.fcp;

import java.net.MalformedURLException;

import freenet.keys.FreenetURI;
import freenet.support.LogThresholdCallback;
import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
import freenet.support.Logger.LogLevel;
import freenet.support.api.Bucket;
import freenet.support.api.ManifestElement;
import freenet.support.api.RandomAccessBucket;

public class RedirectDirPutFile extends DirPutFile {

  final FreenetURI targetURI;

        private static volatile boolean logMINOR;
  static {
    Logger.registerLogThresholdCallback(new LogThresholdCallback(){
      @Override
      public void shouldUpdate(){
        logMINOR = Logger.shouldLog(LogLevel.MINOR, this);
      }
    });
  }
 
  public static RedirectDirPutFile create(String name, String contentTypeOverride, SimpleFieldSet subset,
      String identifier, boolean global) throws MessageInvalidException {
    String target = subset.get("TargetURI");
    if(target == null)
      throw new MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "TargetURI missing but UploadFrom=redirect", identifier, global);
    FreenetURI targetURI;
    try {
      targetURI = new FreenetURI(target);
    } catch (MalformedURLException e) {
      throw new MessageInvalidException(ProtocolErrorMessage.INVALID_FIELD, "Invalid TargetURI: "+e, identifier, global);
    }
        if(logMINOR)
          Logger.minor(RedirectDirPutFile.class, "targetURI = "+targetURI);
        String mimeType;
        if(contentTypeOverride != null)
          mimeType = contentTypeOverride;
        else
          mimeType = guessMIME(name);
        return new RedirectDirPutFile(name, mimeType, targetURI);
  }
 
  public RedirectDirPutFile(String name, String mimeType, FreenetURI targetURI) {
    super(name, mimeType);
    this.targetURI = targetURI;
  }

  @Override
  public RandomAccessBucket getData() {
    return null;
  }

  @Override
  public ManifestElement getElement() {
    return new ManifestElement(name, targetURI, getMIMEType());
  }

}
TOP

Related Classes of freenet.clients.fcp.RedirectDirPutFile

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.