EMMA Coverage Report (generated Fri Apr 27 15:03:37 EDT 2012)
[all classes][org.jclouds.ec2.domain]

COVERAGE SUMMARY FOR SOURCE FILE [BlockDeviceMapping.java]

nameclass, %method, %block, %line, %
BlockDeviceMapping.java33%  (2/6)35%  (9/26)21%  (93/453)22%  (23/104)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class BlockDeviceMapping$Builder0%   (0/1)0%   (0/9)0%   (0/69)0%   (0/21)
BlockDeviceMapping$Builder (): void 0%   (0/1)0%   (0/3)0%   (0/1)
build (): BlockDeviceMapping 0%   (0/1)0%   (0/16)0%   (0/1)
clear (): BlockDeviceMapping$Builder 0%   (0/1)0%   (0/20)0%   (0/7)
deleteOnTermination (Boolean): BlockDeviceMapping$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
deviceName (String): BlockDeviceMapping$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
noDevice (Boolean): BlockDeviceMapping$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
sizeInGib (Integer): BlockDeviceMapping$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
snapshotId (String): BlockDeviceMapping$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
virtualName (String): BlockDeviceMapping$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
     
class BlockDeviceMapping$MapEBSSnapshotToDevice0%   (0/1)0%   (0/1)0%   (0/16)0%   (0/4)
BlockDeviceMapping$MapEBSSnapshotToDevice (String, String, Integer, Boolean):... 0%   (0/1)0%   (0/16)0%   (0/4)
     
class BlockDeviceMapping$MapEphemeralDeviceToDevice0%   (0/1)0%   (0/1)0%   (0/16)0%   (0/4)
BlockDeviceMapping$MapEphemeralDeviceToDevice (String, String): void 0%   (0/1)0%   (0/16)0%   (0/4)
     
class BlockDeviceMapping$UnmapDeviceNamed0%   (0/1)0%   (0/1)0%   (0/10)0%   (0/2)
BlockDeviceMapping$UnmapDeviceNamed (String): void 0%   (0/1)0%   (0/10)0%   (0/2)
     
class BlockDeviceMapping100% (1/1)62%  (8/13)24%  (80/329)29%  (20/70)
builder (): BlockDeviceMapping$Builder 0%   (0/1)0%   (0/4)0%   (0/1)
compareTo (BlockDeviceMapping): int 0%   (0/1)0%   (0/6)0%   (0/1)
equals (Object): boolean 0%   (0/1)0%   (0/117)0%   (0/38)
hashCode (): int 0%   (0/1)0%   (0/84)0%   (0/9)
toString (): String 0%   (0/1)0%   (0/37)0%   (0/1)
BlockDeviceMapping (String, String, String, Integer, Boolean, Boolean): void 100% (1/1)98%  (55/56)100% (12/12)
<static initializer> 100% (1/1)100% (7/7)100% (2/2)
getDeviceName (): String 100% (1/1)100% (3/3)100% (1/1)
getEbsDeleteOnTermination (): Boolean 100% (1/1)100% (3/3)100% (1/1)
getEbsNoDevice (): Boolean 100% (1/1)100% (3/3)100% (1/1)
getEbsSnapshotId (): String 100% (1/1)100% (3/3)100% (1/1)
getEbsVolumeSize (): Integer 100% (1/1)100% (3/3)100% (1/1)
getVirtualName (): String 100% (1/1)100% (3/3)100% (1/1)
     
class BlockDeviceMapping$MapNewVolumeToDevice100% (1/1)100% (1/1)100% (13/13)100% (3/3)
BlockDeviceMapping$MapNewVolumeToDevice (String, Integer, Boolean): void 100% (1/1)100% (13/13)100% (3/3)

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.ec2.domain;
20 
21import static com.google.common.base.Preconditions.checkArgument;
22import static com.google.common.base.Preconditions.checkNotNull;
23 
24import org.jclouds.javax.annotation.Nullable;
25import org.jclouds.util.Preconditions2;
26 
27/**
28 * 
29 * @author Lili Nadar
30 */
31public class BlockDeviceMapping implements Comparable<BlockDeviceMapping>{
32   public static Builder builder() {
33      return new Builder();
34   }
35 
36   public static class Builder {
37      private String deviceName;
38      private String virtualName;
39      private String snapshotId;
40      private Integer sizeInGib;
41      private Boolean noDevice;
42      private Boolean deleteOnTermination;
43 
44      public Builder deviceName(String deviceName) {
45         this.deviceName = deviceName;
46         return this;
47      }
48 
49      public Builder virtualName(String virtualName) {
50         this.virtualName = virtualName;
51         return this;
52      }
53 
54      public Builder snapshotId(String snapshotId) {
55         this.snapshotId = snapshotId;
56         return this;
57      }
58 
59      public Builder sizeInGib(Integer sizeInGib) {
60         this.sizeInGib = sizeInGib;
61         return this;
62      }
63 
64      public Builder noDevice(Boolean noDevice) {
65         this.noDevice = noDevice;
66         return this;
67      }
68 
69      public Builder deleteOnTermination(Boolean deleteOnTermination) {
70         this.deleteOnTermination = deleteOnTermination;
71         return this;
72      }
73 
74      public BlockDeviceMapping build() {
75         return new BlockDeviceMapping(deviceName, virtualName, snapshotId, sizeInGib, noDevice, deleteOnTermination);
76      }
77 
78      public Builder clear() {
79         this.deviceName = null;
80         this.virtualName = null;
81         this.snapshotId = null;
82         this.sizeInGib = null;
83         this.noDevice = null;
84         this.deleteOnTermination = null;
85         return this;
86      }
87   }
88 
89   private final String deviceName;
90   private final String virtualName;
91   private final String snapshotId;
92   private final Integer sizeInGib;
93   private final Boolean noDevice;
94   private final Boolean deleteOnTermination;
95 
96   // values expressed in GB
97   private static final Integer VOLUME_SIZE_MIN_VALUE = 1;
98   private static final Integer VOLUME_SIZE_MAX_VALUE = 1000;
99 
100   BlockDeviceMapping(String deviceName, @Nullable String virtualName, @Nullable String snapshotId,
101         @Nullable Integer sizeInGib, @Nullable Boolean noDevice, @Nullable Boolean deleteOnTermination) {
102 
103      checkNotNull(deviceName, "deviceName cannot be null");
104      Preconditions2.checkNotEmpty(deviceName, "the deviceName must be non-empty");
105 
106      if (sizeInGib != null) {
107         checkArgument((sizeInGib >= VOLUME_SIZE_MIN_VALUE && sizeInGib <= VOLUME_SIZE_MAX_VALUE),
108               String.format("Size in Gib must be between %s and %s GB", VOLUME_SIZE_MIN_VALUE, VOLUME_SIZE_MAX_VALUE));
109      }
110      this.deviceName = deviceName;
111      this.virtualName = virtualName;
112      this.snapshotId = snapshotId;
113      this.sizeInGib = sizeInGib;
114      this.noDevice = noDevice;
115      this.deleteOnTermination = deleteOnTermination;
116   }
117 
118   public String getDeviceName() {
119      return deviceName;
120   }
121 
122   public String getVirtualName() {
123      return virtualName;
124   }
125 
126   public String getEbsSnapshotId() {
127      return snapshotId;
128   }
129 
130   public Integer getEbsVolumeSize() {
131      return sizeInGib;
132   }
133 
134   public Boolean getEbsNoDevice() {
135      return noDevice;
136   }
137 
138   public Boolean getEbsDeleteOnTermination() {
139      return deleteOnTermination;
140   }
141 
142   @Override
143   public int hashCode() {
144      final int prime = 31;
145      int result = 1;
146      result = prime * result + ((deleteOnTermination == null) ? 0 : deleteOnTermination.hashCode());
147      result = prime * result + ((deviceName == null) ? 0 : deviceName.hashCode());
148      result = prime * result + ((noDevice == null) ? 0 : noDevice.hashCode());
149      result = prime * result + ((sizeInGib == null) ? 0 : sizeInGib.hashCode());
150      result = prime * result + ((snapshotId == null) ? 0 : snapshotId.hashCode());
151      result = prime * result + ((virtualName == null) ? 0 : virtualName.hashCode());
152      return result;
153   }
154 
155   @Override
156   public boolean equals(Object obj) {
157      if (this == obj)
158         return true;
159      if (obj == null)
160         return false;
161      if (getClass() != obj.getClass())
162         return false;
163      BlockDeviceMapping other = (BlockDeviceMapping) obj;
164      if (deleteOnTermination == null) {
165         if (other.deleteOnTermination != null)
166            return false;
167      } else if (!deleteOnTermination.equals(other.deleteOnTermination))
168         return false;
169      if (deviceName == null) {
170         if (other.deviceName != null)
171            return false;
172      } else if (!deviceName.equals(other.deviceName))
173         return false;
174      if (noDevice == null) {
175         if (other.noDevice != null)
176            return false;
177      } else if (!noDevice.equals(other.noDevice))
178         return false;
179      if (sizeInGib == null) {
180         if (other.sizeInGib != null)
181            return false;
182      } else if (!sizeInGib.equals(other.sizeInGib))
183         return false;
184      if (snapshotId == null) {
185         if (other.snapshotId != null)
186            return false;
187      } else if (!snapshotId.equals(other.snapshotId))
188         return false;
189      if (virtualName == null) {
190         if (other.virtualName != null)
191            return false;
192      } else if (!virtualName.equals(other.virtualName))
193         return false;
194      return true;
195   }
196 
197   @Override
198   public String toString() {
199      return "[deviceName=" + deviceName + ", virtualName=" + virtualName + ", snapshotId=" + snapshotId
200            + ", sizeInGib=" + sizeInGib + ", noDevice=" + noDevice + ", deleteOnTermination=" + deleteOnTermination
201            + "]";
202   }
203 
204   public static class MapEBSSnapshotToDevice extends BlockDeviceMapping {
205      public MapEBSSnapshotToDevice(String deviceName, String snapshotId, @Nullable Integer sizeInGib,
206            @Nullable Boolean deleteOnTermination) {
207         super(deviceName, null, snapshotId, sizeInGib, null, deleteOnTermination);
208         checkNotNull(snapshotId, "snapshotId cannot be null");
209         Preconditions2.checkNotEmpty(snapshotId, "the snapshotId must be non-empty");
210      }
211   }
212 
213   public static class MapNewVolumeToDevice extends BlockDeviceMapping {
214      public MapNewVolumeToDevice(String deviceName, Integer sizeInGib, @Nullable Boolean deleteOnTermination) {
215         super(deviceName, null, null, sizeInGib, null, deleteOnTermination);
216         checkNotNull(sizeInGib, "sizeInGib cannot be null");
217      }
218   }
219 
220   public static class MapEphemeralDeviceToDevice extends BlockDeviceMapping {
221      public MapEphemeralDeviceToDevice(String deviceName, String virtualName) {
222         super(deviceName, virtualName, null, null, null, null);
223         checkNotNull(virtualName, "virtualName cannot be null");
224         Preconditions2.checkNotEmpty(virtualName, "the virtualName must be non-empty");
225      }
226   }
227 
228   public static class UnmapDeviceNamed extends BlockDeviceMapping {
229      public UnmapDeviceNamed(String deviceName) {
230         super(deviceName, null, null, null, true, null);
231      }
232   }
233 
234   @Override
235   public int compareTo(BlockDeviceMapping arg0) {
236      return deviceName.compareTo(arg0.deviceName);
237   }
238}

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