EMMA Coverage Report (generated Fri Aug 26 14:14:05 EDT 2011)
[all classes][org.jclouds.aws.ec2.domain]

COVERAGE SUMMARY FOR SOURCE FILE [AWSRunningInstance.java]

nameclass, %method, %block, %line, %
AWSRunningInstance.java100% (2/2)77%  (36/47)84%  (576/682)71%  (75.6/107)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AWSRunningInstance100% (1/1)50%  (6/12)81%  (307/380)60%  (35.6/59)
getMonitoringState (): MonitoringState 0%   (0/1)0%   (0/3)0%   (0/1)
getPlacementGroup (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getProductCodes (): Set 0%   (0/1)0%   (0/3)0%   (0/1)
getSecurityGroupIdToNames (): Map 0%   (0/1)0%   (0/3)0%   (0/1)
getSubnetId (): String 0%   (0/1)0%   (0/3)0%   (0/1)
getVpcId (): String 0%   (0/1)0%   (0/3)0%   (0/1)
equals (Object): boolean 100% (1/1)54%  (56/103)48%  (16/33)
hashCode (): int 100% (1/1)89%  (64/72)95%  (7.6/8)
AWSRunningInstance (String, Map, String, String, String, String, InstanceStat... 100% (1/1)100% (58/58)100% (9/9)
builder (): AWSRunningInstance$Builder 100% (1/1)100% (4/4)100% (1/1)
getSpotInstanceRequestId (): String 100% (1/1)100% (3/3)100% (1/1)
toString (): String 100% (1/1)100% (122/122)100% (1/1)
     
class AWSRunningInstance$Builder100% (1/1)86%  (30/35)89%  (269/302)83%  (40/48)
devices (Map): AWSRunningInstance$Builder 0%   (0/1)0%   (0/7)0%   (0/1)
platform (String): AWSRunningInstance$Builder 0%   (0/1)0%   (0/7)0%   (0/1)
productCodes (Iterable): AWSRunningInstance$Builder 0%   (0/1)0%   (0/9)0%   (0/2)
subnetId (String): AWSRunningInstance$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
vpcId (String): AWSRunningInstance$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
AWSRunningInstance$Builder (): void 100% (1/1)100% (9/9)100% (3/3)
amiLaunchIndex (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
availabilityZone (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
build (): AWSRunningInstance 100% (1/1)100% (60/60)100% (1/1)
device (String, BlockDevice): AWSRunningInstance$Builder 100% (1/1)100% (8/8)100% (1/1)
dnsName (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
groupId (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
groupIds (Iterable): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
imageId (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
instanceId (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
instanceState (InstanceState): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
instanceType (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
ipAddress (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
kernelId (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
keyName (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
launchTime (Date): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
monitoringState (MonitoringState): AWSRunningInstance$Builder 100% (1/1)100% (5/5)100% (2/2)
placementGroup (String): AWSRunningInstance$Builder 100% (1/1)100% (5/5)100% (2/2)
privateDnsName (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
privateIpAddress (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
productCode (String): AWSRunningInstance$Builder 100% (1/1)100% (9/9)100% (3/3)
ramdiskId (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
reason (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
region (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
rootDeviceName (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
rootDeviceType (RootDeviceType): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)
securityGroupIdToName (String, String): AWSRunningInstance$Builder 100% (1/1)100% (12/12)100% (3/3)
securityGroupIdToNames (Map): AWSRunningInstance$Builder 100% (1/1)100% (9/9)100% (2/2)
spotInstanceRequestId (String): AWSRunningInstance$Builder 100% (1/1)100% (5/5)100% (2/2)
virtualizationType (String): AWSRunningInstance$Builder 100% (1/1)100% (7/7)100% (1/1)

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.aws.ec2.domain;
20 
21import static com.google.common.base.Preconditions.checkNotNull;
22 
23import java.util.Date;
24import java.util.Map;
25import java.util.Set;
26 
27import javax.annotation.Nullable;
28 
29import org.jclouds.ec2.domain.BlockDevice;
30import org.jclouds.ec2.domain.InstanceState;
31import org.jclouds.ec2.domain.RootDeviceType;
32import org.jclouds.ec2.domain.RunningInstance;
33 
34import com.google.common.collect.ImmutableMap;
35import com.google.common.collect.ImmutableSet;
36import com.google.common.collect.Maps;
37import com.google.common.collect.Sets;
38 
39/**
40 * 
41 * @see <a href=
42 *      "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-ItemType-RunningInstancesItemType.html"
43 *      />
44 * @author Adrian Cole
45 */
46public class AWSRunningInstance extends RunningInstance {
47   public static Builder builder() {
48      return new Builder();
49   }
50 
51   public static class Builder extends org.jclouds.ec2.domain.RunningInstance.Builder {
52      private MonitoringState monitoringState;
53      private String placementGroup;
54      private Set<String> productCodes = Sets.newLinkedHashSet();
55      private String subnetId;
56      private String spotInstanceRequestId;
57      private String vpcId;
58      private Map<String, String> securityGroupIdToNames = Maps.newLinkedHashMap();
59 
60      public Builder securityGroupIdToNames(Map<String, String> securityGroupIdToNames) {
61         this.securityGroupIdToNames = ImmutableMap.copyOf(checkNotNull(securityGroupIdToNames,
62               "securityGroupIdToNames"));
63         return this;
64      }
65 
66      public Builder securityGroupIdToName(String key, String value) {
67         if (key != null && value != null)
68            this.securityGroupIdToNames.put(key, value);
69         return this;
70      }
71 
72      public Builder monitoringState(MonitoringState monitoringState) {
73         this.monitoringState = monitoringState;
74         return this;
75      }
76 
77      public Builder placementGroup(String placementGroup) {
78         this.placementGroup = placementGroup;
79         return this;
80      }
81 
82      public Builder productCodes(Iterable<String> productCodes) {
83         this.productCodes = ImmutableSet.copyOf(checkNotNull(productCodes, "productCodes"));
84         return this;
85      }
86 
87      public Builder productCode(String productCode) {
88         if (productCode != null)
89            this.productCodes.add(productCode);
90         return this;
91      }
92 
93      public Builder subnetId(String subnetId) {
94         this.subnetId = subnetId;
95         return this;
96      }
97 
98      public Builder spotInstanceRequestId(String spotInstanceRequestId) {
99         this.spotInstanceRequestId = spotInstanceRequestId;
100         return this;
101      }
102 
103      public Builder vpcId(String vpcId) {
104         this.vpcId = vpcId;
105         return this;
106      }
107 
108      @Override
109      public Builder amiLaunchIndex(String amiLaunchIndex) {
110         return Builder.class.cast(super.amiLaunchIndex(amiLaunchIndex));
111      }
112 
113      @Override
114      public Builder availabilityZone(String availabilityZone) {
115         return Builder.class.cast(super.availabilityZone(availabilityZone));
116      }
117 
118      @Override
119      public Builder devices(Map<String, BlockDevice> ebsBlockDevices) {
120         return Builder.class.cast(super.devices(ebsBlockDevices));
121      }
122 
123      @Override
124      public Builder dnsName(String dnsName) {
125         return Builder.class.cast(super.dnsName(dnsName));
126      }
127 
128      @Override
129      public Builder imageId(String imageId) {
130         return Builder.class.cast(super.imageId(imageId));
131      }
132 
133      @Override
134      public Builder instanceId(String instanceId) {
135         return Builder.class.cast(super.instanceId(instanceId));
136      }
137 
138      @Override
139      public Builder instanceState(InstanceState instanceState) {
140         return Builder.class.cast(super.instanceState(instanceState));
141      }
142 
143      @Override
144      public Builder instanceType(String instanceType) {
145         return Builder.class.cast(super.instanceType(instanceType));
146      }
147 
148      @Override
149      public Builder ipAddress(String ipAddress) {
150         return Builder.class.cast(super.ipAddress(ipAddress));
151      }
152 
153      @Override
154      public Builder kernelId(String kernelId) {
155         return Builder.class.cast(super.kernelId(kernelId));
156      }
157 
158      @Override
159      public Builder keyName(String keyName) {
160         return Builder.class.cast(super.keyName(keyName));
161      }
162 
163      @Override
164      public Builder launchTime(Date launchTime) {
165         return Builder.class.cast(super.launchTime(launchTime));
166      }
167 
168      @Override
169      public Builder platform(String platform) {
170         return Builder.class.cast(super.platform(platform));
171      }
172 
173      @Override
174      public Builder privateDnsName(String privateDnsName) {
175         return Builder.class.cast(super.privateDnsName(privateDnsName));
176      }
177 
178      @Override
179      public Builder privateIpAddress(String privateIpAddress) {
180         return Builder.class.cast(super.privateIpAddress(privateIpAddress));
181      }
182 
183      @Override
184      public Builder ramdiskId(String ramdiskId) {
185         return Builder.class.cast(super.ramdiskId(ramdiskId));
186      }
187 
188      @Override
189      public Builder reason(String reason) {
190         return Builder.class.cast(super.reason(reason));
191      }
192 
193      @Override
194      public Builder region(String region) {
195         return Builder.class.cast(super.region(region));
196      }
197 
198      @Override
199      public Builder rootDeviceName(String rootDeviceName) {
200         return Builder.class.cast(super.rootDeviceName(rootDeviceName));
201      }
202 
203      @Override
204      public Builder rootDeviceType(RootDeviceType rootDeviceType) {
205         return Builder.class.cast(super.rootDeviceType(rootDeviceType));
206      }
207 
208      @Override
209      public Builder virtualizationType(String virtualizationType) {
210         return Builder.class.cast(super.virtualizationType(virtualizationType));
211      }
212 
213      @Override
214      public Builder device(String key, BlockDevice value) {
215         return Builder.class.cast(super.device(key, value));
216      }
217 
218      @Override
219      public Builder groupId(String groupId) {
220         return Builder.class.cast(super.groupId(groupId));
221      }
222 
223      @Override
224      public Builder groupIds(Iterable<String> groupIds) {
225         return Builder.class.cast(super.groupIds(groupIds));
226      }
227 
228      @Override
229      public AWSRunningInstance build() {
230         return new AWSRunningInstance(region, securityGroupIdToNames, amiLaunchIndex, dnsName, imageId, instanceId,
231               instanceState, instanceType, ipAddress, kernelId, keyName, launchTime, availabilityZone,
232               virtualizationType, platform, privateDnsName, privateIpAddress, ramdiskId, reason, rootDeviceType,
233               rootDeviceName, ebsBlockDevices, monitoringState, placementGroup, productCodes, subnetId,
234               spotInstanceRequestId, vpcId);
235      }
236 
237   }
238 
239   private final MonitoringState monitoringState;
240   @Nullable
241   private final String placementGroup;
242   private final Set<String> productCodes;
243   @Nullable
244   private final String subnetId;
245   @Nullable
246   private final String spotInstanceRequestId;
247   @Nullable
248   private final String vpcId;
249   private final Map<String, String> securityGroupIdToNames;
250 
251   protected AWSRunningInstance(String region, Map<String, String> securityGroupIdToNames, String amiLaunchIndex,
252         String dnsName, String imageId, String instanceId, InstanceState instanceState, String instanceType,
253         String ipAddress, String kernelId, String keyName, Date launchTime, String availabilityZone,
254         String virtualizationType, String platform, String privateDnsName, String privateIpAddress, String ramdiskId,
255         String reason, RootDeviceType rootDeviceType, String rootDeviceName, Map<String, BlockDevice> ebsBlockDevices,
256         MonitoringState monitoringState, String placementGroup, Iterable<String> productCodes, String subnetId,
257         String spotInstanceRequestId, String vpcId) {
258      super(region, securityGroupIdToNames.values(), amiLaunchIndex, dnsName, imageId, instanceId, instanceState,
259            instanceType, ipAddress, kernelId, keyName, launchTime, availabilityZone, virtualizationType, platform,
260            privateDnsName, privateIpAddress, ramdiskId, reason, rootDeviceType, rootDeviceName, ebsBlockDevices);
261      this.monitoringState = checkNotNull(monitoringState, "monitoringState");
262      this.placementGroup = placementGroup;
263      this.productCodes = ImmutableSet.copyOf(checkNotNull(productCodes, "productCodes"));
264      this.subnetId = subnetId;
265      this.spotInstanceRequestId = spotInstanceRequestId;
266      this.vpcId = vpcId;
267      this.securityGroupIdToNames = ImmutableMap.<String, String> copyOf(checkNotNull(securityGroupIdToNames,
268            "securityGroupIdToNames"));
269   }
270 
271   public Map<String, String> getSecurityGroupIdToNames() {
272      return securityGroupIdToNames;
273   }
274 
275   /**
276    * State of monitoring for the instance.
277    */
278   public MonitoringState getMonitoringState() {
279      return monitoringState;
280   }
281 
282   /**
283    * The name of the placement group the instance is in (for cluster compute
284    * instances).
285    */
286   public String getPlacementGroup() {
287      return placementGroup;
288   }
289 
290   /**
291    * Product codes attached to this instance.
292    */
293   public Set<String> getProductCodes() {
294      return productCodes;
295   }
296 
297   /**
298    * The ID of the Spot Instance request
299    */
300   public String getSpotInstanceRequestId() {
301      return spotInstanceRequestId;
302   }
303 
304   /**
305    * Specifies the VPC in which the instance is running (Amazon Virtual Private
306    * Cloud).
307    */
308   public String getVpcId() {
309      return vpcId;
310   }
311 
312   /**
313    * Specifies the subnet ID in which the instance is running (Amazon Virtual
314    * Private Cloud).
315    */
316   public String getSubnetId() {
317      return subnetId;
318   }
319 
320   @Override
321   public int hashCode() {
322      final int prime = 31;
323      int result = super.hashCode();
324      result = prime * result + ((placementGroup == null) ? 0 : placementGroup.hashCode());
325      result = prime * result + ((productCodes == null) ? 0 : productCodes.hashCode());
326      result = prime * result + ((spotInstanceRequestId == null) ? 0 : spotInstanceRequestId.hashCode());
327      result = prime * result + ((subnetId == null) ? 0 : subnetId.hashCode());
328      result = prime * result + ((vpcId == null) ? 0 : vpcId.hashCode());
329      return result;
330   }
331 
332   @Override
333   public boolean equals(Object obj) {
334      if (this == obj)
335         return true;
336      if (!super.equals(obj))
337         return false;
338      if (getClass() != obj.getClass())
339         return false;
340      AWSRunningInstance other = (AWSRunningInstance) obj;
341      if (placementGroup == null) {
342         if (other.placementGroup != null)
343            return false;
344      } else if (!placementGroup.equals(other.placementGroup))
345         return false;
346      if (productCodes == null) {
347         if (other.productCodes != null)
348            return false;
349      } else if (!productCodes.equals(other.productCodes))
350         return false;
351      if (spotInstanceRequestId == null) {
352         if (other.spotInstanceRequestId != null)
353            return false;
354      } else if (!spotInstanceRequestId.equals(other.spotInstanceRequestId))
355         return false;
356      if (subnetId == null) {
357         if (other.subnetId != null)
358            return false;
359      } else if (!subnetId.equals(other.subnetId))
360         return false;
361      if (vpcId == null) {
362         if (other.vpcId != null)
363            return false;
364      } else if (!vpcId.equals(other.vpcId))
365         return false;
366      return true;
367   }
368 
369   @Override
370   public String toString() {
371      return "[region=" + region + ", availabilityZone=" + availabilityZone + ", instanceId=" + instanceId
372            + ", instanceState=" + instanceState + ", instanceType=" + instanceType + ", virtualizationType="
373            + virtualizationType + ", imageId=" + imageId + ", ipAddress=" + ipAddress + ", dnsName=" + dnsName
374            + ", privateIpAddress=" + privateIpAddress + ", privateDnsName=" + privateDnsName + ", keyName=" + keyName
375            + ", platform=" + platform + ", launchTime=" + launchTime + ", rootDeviceName=" + rootDeviceName
376            + ", rootDeviceType=" + rootDeviceType + ", ebsBlockDevices=" + ebsBlockDevices + ", monitoringState="
377            + monitoringState + ", placementGroup=" + placementGroup + ", productCodes=" + productCodes
378            + ", spotInstanceRequestId=" + spotInstanceRequestId + ", subnetId=" + subnetId + ", vpcId=" + vpcId + "]";
379   }
380 
381}

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