// 
// Decompiled by Procyon v0.6.0
// 

package io.netty.handler.codec.http.multipart;

import io.netty.buffer.ByteBufHolder;
import io.netty.util.ReferenceCounted;
import java.io.InputStream;
import java.io.IOException;
import java.io.File;
import io.netty.buffer.ByteBuf;
import java.nio.charset.Charset;

public class MixedFileUpload extends AbstractMixedHttpData<FileUpload> implements FileUpload
{
    public MixedFileUpload(final String name, final String filename, final String contentType, final String contentTransferEncoding, final Charset charset, final long size, final long limitSize) {
        this(name, filename, contentType, contentTransferEncoding, charset, size, limitSize, DiskFileUpload.baseDirectory, DiskFileUpload.deleteOnExitTemporaryFile);
    }
    
    public MixedFileUpload(final String name, final String filename, final String contentType, final String contentTransferEncoding, final Charset charset, final long size, final long limitSize, final String baseDir, final boolean deleteOnExit) {
        super(limitSize, baseDir, deleteOnExit, (size > limitSize) ? new DiskFileUpload(name, filename, contentType, contentTransferEncoding, charset, size, baseDir, deleteOnExit) : new MemoryFileUpload(name, filename, contentType, contentTransferEncoding, charset, size));
    }
    
    @Override
    public String getContentTransferEncoding() {
        return ((FileUpload)this.wrapped).getContentTransferEncoding();
    }
    
    @Override
    public String getFilename() {
        return ((FileUpload)this.wrapped).getFilename();
    }
    
    @Override
    public void setContentTransferEncoding(final String contentTransferEncoding) {
        ((FileUpload)this.wrapped).setContentTransferEncoding(contentTransferEncoding);
    }
    
    @Override
    public void setFilename(final String filename) {
        ((FileUpload)this.wrapped).setFilename(filename);
    }
    
    @Override
    public void setContentType(final String contentType) {
        ((FileUpload)this.wrapped).setContentType(contentType);
    }
    
    @Override
    public String getContentType() {
        return ((FileUpload)this.wrapped).getContentType();
    }
    
    @Override
    FileUpload makeDiskData() {
        final DiskFileUpload diskFileUpload = new DiskFileUpload(this.getName(), this.getFilename(), this.getContentType(), this.getContentTransferEncoding(), this.getCharset(), this.definedLength(), this.baseDir, this.deleteOnExit);
        diskFileUpload.setMaxSize(this.getMaxSize());
        return diskFileUpload;
    }
    
    @Override
    public FileUpload copy() {
        return super.copy();
    }
    
    @Override
    public FileUpload duplicate() {
        return super.duplicate();
    }
    
    @Override
    public FileUpload retainedDuplicate() {
        return super.retainedDuplicate();
    }
    
    @Override
    public FileUpload replace(final ByteBuf content) {
        return super.replace(content);
    }
    
    @Override
    public FileUpload touch() {
        return super.touch();
    }
    
    @Override
    public FileUpload touch(final Object hint) {
        return super.touch(hint);
    }
    
    @Override
    public FileUpload retain() {
        return super.retain();
    }
    
    @Override
    public FileUpload retain(final int increment) {
        return super.retain(increment);
    }
}
