@Override public Part apply(Entry<String, Object> from) { return Part.create(from.getKey(), from.getValue().toString()); } };
public static Part create(String name, Payload delegate, Part.PartOptions options) { return new Part(name, PartMap.create(name, delegate, options), delegate); }
private String createHeaders(String boundaryrn, Part part) { StringBuilder builder = new StringBuilder(dd).append(boundaryrn); for (Entry<String, String> entry : part.getHeaders().entries()) { String header = String.format("%s: %s%s", entry.getKey(), entry.getValue(), rn); builder.append(header); } builder.append(rn); return builder.toString(); }
@SuppressWarnings("unchecked") public MultipartForm(String boundary, Iterable<? extends Part> content) { super(content); this.boundary = boundary; this.content = content; getContentMetadata().setContentType("multipart/form-data; boundary=" + boundary); String boundaryrn = boundary + rn; boolean isRepeatable = true; long contentLength = 0; for (Part part : content) { if (!part.isRepeatable()) isRepeatable = false; contentLength += part.getContentMetadata().getContentLength() + createHeaders(boundaryrn, part).length() + createRn().length(); } contentLength += createFooter(boundary).length(); getContentMetadata().setContentLength(contentLength); this.isRepeatable = isRepeatable; }
@Override public void release() { for (Part part : content) part.release(); }
@Override public InputStream openStream() throws IOException { String boundaryrn = boundary + rn; ImmutableList.Builder<InputStream> builder = ImmutableList.builder(); for (Part part : content) { builder.add(new ByteArrayInputStream(createHeaders(boundaryrn, part).getBytes())) .add(part.openStream()) .add(new ByteArrayInputStream(createRn().getBytes())); } builder.add(new ByteArrayInputStream(createFooter(boundary).getBytes())); return new SequenceInputStream(Collections.enumeration(builder.build())); }
@SuppressWarnings("unchecked") public MultipartForm(String boundary, Iterable<? extends Part> content) { super(content); this.boundary = boundary; this.content = content; getContentMetadata().setContentType("multipart/form-data; boundary=" + boundary); String boundaryrn = boundary + rn; boolean isRepeatable = true; long contentLength = 0; for (Part part : content) { if (!part.isRepeatable()) isRepeatable = false; contentLength += part.getContentMetadata().getContentLength() + createHeaders(boundaryrn, part).length() + createRn().length(); } contentLength += createFooter(boundary).length(); getContentMetadata().setContentLength(contentLength); this.isRepeatable = isRepeatable; }
@Override public void release() { for (Part part : content) part.release(); }
@Override public InputStream openStream() throws IOException { String boundaryrn = boundary + rn; ImmutableList.Builder<InputStream> builder = ImmutableList.builder(); for (Part part : content) { builder.add(new ByteArrayInputStream(createHeaders(boundaryrn, part).getBytes())) .add(part.openStream()) .add(new ByteArrayInputStream(createRn().getBytes())); } builder.add(new ByteArrayInputStream(createFooter(boundary).getBytes())); return new SequenceInputStream(Collections.enumeration(builder.build())); }
@Override public Part apply(Entry<String, Object> from) { return Part.create(from.getKey(), from.getValue().toString()); } };
@SuppressWarnings("unchecked") public MultipartForm(String boundary, Iterable<? extends Part> content) { super(content); this.boundary = boundary; this.content = content; getContentMetadata().setContentType("multipart/form-data; boundary=" + boundary); String boundaryrn = boundary + rn; boolean isRepeatable = true; long contentLength = 0; for (Part part : content) { if (!part.isRepeatable()) isRepeatable = false; contentLength += part.getContentMetadata().getContentLength() + createHeaders(boundaryrn, part).length() + createRn().length(); } contentLength += createFooter(boundary).length(); getContentMetadata().setContentLength(contentLength); this.isRepeatable = isRepeatable; }
public static Part create(String name, Payload delegate, Part.PartOptions options) { return new Part(name, PartMap.create(name, delegate, options), delegate); }
@Override public void release() { for (Part part : content) part.release(); }
private String createHeaders(String boundaryrn, Part part) { StringBuilder builder = new StringBuilder(dd).append(boundaryrn); for (Entry<String, String> entry : part.getHeaders().entries()) { String header = String.format("%s: %s%s", entry.getKey(), entry.getValue(), rn); builder.append(header); } builder.append(rn); return builder.toString(); }
@Override public InputStream openStream() throws IOException { String boundaryrn = boundary + rn; ImmutableList.Builder<InputStream> builder = ImmutableList.builder(); for (Part part : content) { builder.add(new ByteArrayInputStream(createHeaders(boundaryrn, part).getBytes())) .add(part.openStream()) .add(new ByteArrayInputStream(createRn().getBytes())); } builder.add(new ByteArrayInputStream(createFooter(boundary).getBytes())); return new SequenceInputStream(Collections.enumeration(builder.build())); }
@Override public Part apply(Entry<String, Object> from) { return Part.create(from.getKey(), from.getValue().toString()); } };
@SuppressWarnings("unchecked") public MultipartForm(String boundary, Iterable<? extends Part> content) { super(content); getContentMetadata().setContentType("multipart/form-data; boundary=" + boundary); getContentMetadata().setContentLength(0l); String boundaryrn = boundary + rn; isRepeatable = true; InputSupplier<? extends InputStream> chain = join(); for (Part part : content) { if (!part.isRepeatable()) isRepeatable = false; getContentMetadata().setContentLength( getContentMetadata().getContentLength() + part.getContentMetadata().getContentLength()); chain = join(chain, addLengthAndReturnHeaders(boundaryrn, part), part, addLengthAndReturnRn()); } chain = join(chain, addLengthAndReturnFooter(boundary)); this.chain = chain; }
public static Part create(String name, Payload delegate, Part.PartOptions options) { return new Part(name, PartMap.create(name, delegate, options), delegate); }
@Override public void release() { for (Part part : content) part.release(); }
private String createHeaders(String boundaryrn, Part part) { StringBuilder builder = new StringBuilder(dd).append(boundaryrn); for (Entry<String, String> entry : part.getHeaders().entries()) { String header = String.format("%s: %s%s", entry.getKey(), entry.getValue(), rn); builder.append(header); } builder.append(rn); return builder.toString(); }