EMMA Coverage Report (generated Mon Oct 17 05:41:20 EDT 2011)
[all classes][org.jclouds.aws.ec2.domain]

COVERAGE SUMMARY FOR SOURCE FILE [AWSRunningInstance.java]

nameclass, %method, %block, %line, %
AWSRunningInstance.java100% (2/2)78%  (39/50)85%  (638/751)72%  (87.5/121)

COVERAGE BREAKDOWN BY CLASS AND METHOD

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

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