EMMA Coverage Report (generated Wed Oct 26 13:47:17 EDT 2011)
[all classes][org.jclouds.io.payloads]

COVERAGE SUMMARY FOR SOURCE FILE [Part.java]

nameclass, %method, %block, %line, %
Part.java75%  (3/4)78%  (14/18)89%  (157/176)90%  (31.4/35)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Part$PartOptions$Builder0%   (0/1)0%   (0/3)0%   (0/15)0%   (0/3)
Part$PartOptions$Builder (): void 0%   (0/1)0%   (0/3)0%   (0/1)
contentType (String): Part$PartOptions 0%   (0/1)0%   (0/6)0%   (0/1)
filename (String): Part$PartOptions 0%   (0/1)0%   (0/6)0%   (0/1)
     
class Part100% (1/1)80%  (4/5)92%  (37/40)88%  (7/8)
getName (): String 0%   (0/1)0%   (0/3)0%   (0/1)
Part (String, Part$PartMap, Payload): void 100% (1/1)100% (15/15)100% (4/4)
create (String, Payload, Part$PartOptions): Part 100% (1/1)100% (10/10)100% (1/1)
create (String, String): Part 100% (1/1)100% (9/9)100% (1/1)
getHeaders (): Multimap 100% (1/1)100% (3/3)100% (1/1)
     
class Part$PartMap100% (1/1)100% (5/5)99%  (95/96)99%  (16.9/17)
create (String, Payload, Part$PartOptions): Part$PartMap 100% (1/1)97%  (35/36)99%  (6.9/7)
Part$PartMap (): void 100% (1/1)100% (3/3)100% (1/1)
contentType (String): Part$PartMap 100% (1/1)100% (11/11)100% (3/3)
create (String): Part$PartMap 100% (1/1)100% (20/20)100% (3/3)
create (String, String): Part$PartMap 100% (1/1)100% (26/26)100% (3/3)
     
class Part$PartOptions100% (1/1)100% (5/5)100% (25/25)100% (8/8)
Part$PartOptions (): void 100% (1/1)100% (3/3)100% (2/2)
contentType (String): Part$PartOptions 100% (1/1)100% (8/8)100% (2/2)
filename (String): Part$PartOptions 100% (1/1)100% (8/8)100% (2/2)
getContentType (): String 100% (1/1)100% (3/3)100% (1/1)
getFilename (): String 100% (1/1)100% (3/3)100% (1/1)

1/**
2 * Licensed to jclouds, Inc. (jclouds) under one or more
3 * contributor license agreements.  See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership.  jclouds licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License.  You may obtain a copy of the License at
9 *
10 *   http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied.  See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19package org.jclouds.io.payloads;
20 
21import static com.google.common.base.Preconditions.checkNotNull;
22import static com.google.common.collect.Multimaps.forMap;
23 
24import java.util.LinkedHashMap;
25 
26import org.jclouds.javax.annotation.Nullable;
27import javax.ws.rs.core.HttpHeaders;
28 
29import org.jclouds.io.Payload;
30import org.jclouds.io.Payloads;
31 
32import com.google.common.collect.ImmutableMultimap;
33import com.google.common.collect.Multimap;
34 
35/**
36 * 
37 * @author Adrian Cole
38 */
39public class Part extends DelegatingPayload {
40   final String name;
41   final Multimap<String, String> headers;
42 
43   private static class PartMap extends LinkedHashMap<String, String> {
44 
45      /** The serialVersionUID */
46      private static final long serialVersionUID = -287387556008320212L;
47 
48      static Part.PartMap create(String name) {
49         Part.PartMap map = new PartMap();
50         map.put("Content-Disposition", String.format("form-data; name=\"%s\"", checkNotNull(name,
51                  "name")));
52         return map;
53      }
54 
55      static Part.PartMap create(String name, String filename) {
56         Part.PartMap map = new PartMap();
57         map.put("Content-Disposition", String.format("form-data; name=\"%s\"; filename=\"%s\"",
58                  checkNotNull(name, "name"), checkNotNull(filename, "filename")));
59         return map;
60      }
61 
62      Part.PartMap contentType(@Nullable String type) {
63         if (type != null)
64            put(HttpHeaders.CONTENT_TYPE, checkNotNull(type, "type"));
65         return this;
66      }
67 
68      public static Part.PartMap create(String name, Payload delegate, Part.PartOptions options) {
69         String filename = options != null ? options.getFilename() : null;
70         if (delegate instanceof FilePayload)
71            filename = FilePayload.class.cast(delegate).getRawContent().getName();
72         Part.PartMap returnVal;
73         returnVal = (filename != null) ? create(name, filename) : create(name);
74         if (options != null)
75            returnVal.contentType(options.getContentType());
76         return returnVal;
77 
78      }
79   }
80 
81   private Part(String name, Part.PartMap map, Payload delegate) {
82      super(delegate);
83      this.name = name;
84      this.headers = ImmutableMultimap.copyOf(forMap((checkNotNull(map, "headers"))));
85   }
86 
87   public static class PartOptions {
88      private String contentType;
89      private String filename;
90 
91      public Part.PartOptions contentType(String contentType) {
92         this.contentType = checkNotNull(contentType, "contentType");
93         return this;
94      }
95 
96      public Part.PartOptions filename(String filename) {
97         this.filename = checkNotNull(filename, "filename");
98         return this;
99      }
100 
101      public static class Builder {
102         public static Part.PartOptions contentType(String contentType) {
103            return new PartOptions().contentType(contentType);
104         }
105 
106         public static Part.PartOptions filename(String filename) {
107            return new PartOptions().filename(filename);
108         }
109      }
110 
111      public String getContentType() {
112         return contentType;
113      }
114 
115      public String getFilename() {
116         return filename;
117      }
118   }
119 
120   public static Part create(String name, String value) {
121      return new Part(name, PartMap.create(name), Payloads.newStringPayload(value));
122   }
123 
124   public static Part create(String name, Payload delegate, Part.PartOptions options) {
125      return new Part(name, PartMap.create(name, delegate, options), delegate);
126   }
127 
128   public Multimap<String, String> getHeaders() {
129      return headers;
130   }
131 
132   public String getName() {
133      return name;
134   }
135}

[all classes][org.jclouds.io.payloads]
EMMA 2.0.5312 (C) Vladimir Roubtsov