EMMA Coverage Report (generated Wed Jun 22 19:47:49 EDT 2011)
[all classes][org.jclouds.blobstore.domain.internal]

COVERAGE SUMMARY FOR SOURCE FILE [BlobImpl.java]

nameclass, %method, %block, %line, %
BlobImpl.java100% (1/1)44%  (4/9)20%  (24/121)28%  (9/32)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class BlobImpl100% (1/1)44%  (4/9)20%  (24/121)28%  (9/32)
compareTo (Blob): int 0%   (0/1)0%   (0/19)0%   (0/3)
equals (Object): boolean 0%   (0/1)0%   (0/39)0%   (0/13)
hashCode (): int 0%   (0/1)0%   (0/20)0%   (0/4)
setAllHeaders (Multimap): void 0%   (0/1)0%   (0/7)0%   (0/2)
toString (): String 0%   (0/1)0%   (0/12)0%   (0/1)
BlobImpl (MutableBlobMetadata): void 100% (1/1)100% (9/9)100% (4/4)
getAllHeaders (): Multimap 100% (1/1)100% (3/3)100% (1/1)
getMetadata (): MutableBlobMetadata 100% (1/1)100% (3/3)100% (1/1)
setPayload (Payload): void 100% (1/1)100% (9/9)100% (3/3)

1/**
2 *
3 * Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com>
4 *
5 * ====================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * 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, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 * ====================================================================
18 */
19package org.jclouds.blobstore.domain.internal;
20 
21import static com.google.common.base.Preconditions.checkNotNull;
22 
23import javax.inject.Inject;
24 
25import org.jclouds.blobstore.domain.Blob;
26import org.jclouds.blobstore.domain.MutableBlobMetadata;
27import org.jclouds.blobstore.domain.StorageMetadata;
28import org.jclouds.http.internal.PayloadEnclosingImpl;
29import org.jclouds.io.Payload;
30 
31import com.google.common.collect.LinkedHashMultimap;
32import com.google.common.collect.Multimap;
33 
34/**
35 * Value type for an HTTP Blob service. Blobs are stored in {@link StorageMetadata containers} and consist
36 * of a {@link org.jclouds.blobstore.domain.Value#getInput() value}, a {@link Blob#getKey key and
37 * 
38 * @link Blob.Metadata#getUserMetadata() metadata}
39 * 
40 * @author Adrian Cole
41 */
42public class BlobImpl extends PayloadEnclosingImpl implements Blob, Comparable<Blob> {
43 
44   private final MutableBlobMetadata metadata;
45   private Multimap<String, String> allHeaders = LinkedHashMultimap.create();
46 
47   @Inject
48   public BlobImpl(MutableBlobMetadata metadata) {
49      super();
50      this.metadata = metadata;
51   }
52 
53   /**
54    * {@inheritDoc}
55    */
56   @Override
57   public MutableBlobMetadata getMetadata() {
58      return metadata;
59   }
60 
61   /**
62    * {@inheritDoc}
63    */
64   @Override
65   public Multimap<String, String> getAllHeaders() {
66      return allHeaders;
67   }
68 
69   /**
70    * {@inheritDoc}
71    */
72   @Override
73   public void setAllHeaders(Multimap<String, String> allHeaders) {
74      this.allHeaders = checkNotNull(allHeaders, "allHeaders");
75   }
76 
77   /**
78    * {@inheritDoc}
79    */
80   @Override
81   public int compareTo(Blob o) {
82      if (getMetadata().getName() == null)
83         return -1;
84      return (this == o) ? 0 : getMetadata().getName().compareTo(o.getMetadata().getName());
85   }
86 
87   @Override
88   public int hashCode() {
89      final int prime = 31;
90      int result = super.hashCode();
91      result = prime * result + ((metadata == null) ? 0 : metadata.hashCode());
92      return result;
93   }
94 
95   @Override
96   public boolean equals(Object obj) {
97      if (this == obj)
98         return true;
99      if (!super.equals(obj))
100         return false;
101      if (getClass() != obj.getClass())
102         return false;
103      BlobImpl other = (BlobImpl) obj;
104      if (metadata == null) {
105         if (other.metadata != null)
106            return false;
107      } else if (!metadata.equals(other.metadata))
108         return false;
109      return true;
110   }
111 
112   @Override
113   public String toString() {
114      return "[metadata=" + metadata + "]";
115   }
116 
117   @Override
118   public void setPayload(Payload data) {
119      super.setPayload(data);
120      metadata.setContentMetadata(data.getContentMetadata());
121   }
122 
123}

[all classes][org.jclouds.blobstore.domain.internal]
EMMA 2.0.5312 (C) Vladimir Roubtsov