package org.jboss.resteasy.plugins.providers.multipart;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class MultipartOutput
{
protected List<OutputPart> parts = new ArrayList<OutputPart>();
protected String boundary = UUID.randomUUID().toString();
public OutputPart addPart(Object entity, MediaType mediaType)
{
OutputPart outputPart = new OutputPart(entity, entity.getClass(), null, mediaType);
parts.add(outputPart);
return outputPart;
}
public OutputPart addPart(Object entity, MediaType mediaType, String filename)
{
OutputPart outputPart = new OutputPart(entity, entity.getClass(), null, mediaType, filename);
parts.add(outputPart);
return outputPart;
}
public OutputPart addPart(Object entity, GenericType<?> type, MediaType mediaType)
{
OutputPart outputPart = new OutputPart(entity, type.getRawType(), type.getType(), mediaType);
parts.add(outputPart);
return outputPart;
}
public OutputPart addPart(Object entity, GenericType<?> type, MediaType mediaType, String filename)
{
OutputPart outputPart = new OutputPart(entity, type.getRawType(), type.getType(), mediaType, filename);
parts.add(outputPart);
return outputPart;
}
public OutputPart addPart(Object entity, Class<?> type, Type genericType, MediaType mediaType)
{
OutputPart outputPart = new OutputPart(entity, type, genericType, mediaType);
parts.add(outputPart);
return outputPart;
}
public OutputPart addPart(Object entity, Class<?> type, Type genericType, MediaType mediaType, String filename)
{
OutputPart outputPart = new OutputPart(entity, type, genericType, mediaType, filename);
parts.add(outputPart);
return outputPart;
}
public List<OutputPart> getParts()
{
return parts;
}
public String getBoundary()
{
return boundary;
}
public void setBoundary(String boundary)
{
this.boundary = boundary;
}
}