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

COVERAGE SUMMARY FOR SOURCE FILE [SpotHandler.java]

nameclass, %method, %block, %line, %
SpotHandler.java100% (1/1)100% (4/4)92%  (108/117)97%  (22.4/23)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SpotHandler100% (1/1)100% (4/4)92%  (108/117)97%  (22.4/23)
getResult (): Spot 100% (1/1)71%  (22/31)87%  (4.4/5)
SpotHandler (DateService, String): void 100% (1/1)100% (17/17)100% (6/6)
characters (char [], int, int): void 100% (1/1)100% (8/8)100% (2/2)
endElement (String, String, String): void 100% (1/1)100% (61/61)100% (10/10)

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.xml;
20 
21import javax.inject.Inject;
22 
23import org.jclouds.aws.ec2.domain.Spot;
24import org.jclouds.aws.util.AWSUtils;
25import org.jclouds.date.DateService;
26import org.jclouds.http.functions.ParseSax;
27import org.jclouds.location.Region;
28 
29/**
30 * 
31 * @author Adrian Cole
32 */
33public class SpotHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Spot> {
34   private StringBuilder currentText = new StringBuilder();
35 
36   protected final DateService dateService;
37   protected final String defaultRegion;
38 
39   @Inject
40   public SpotHandler(DateService dateService, @Region String defaultRegion) {
41      this.dateService = dateService;
42      this.defaultRegion = defaultRegion;
43   }
44 
45   private Spot.Builder builder = Spot.builder();
46 
47   public Spot getResult() {
48      try {
49         String region = getRequest() == null ? null : AWSUtils.findRegionInArgsOrNull(getRequest());
50         if (region == null)
51            region = defaultRegion;
52         return builder.region(region).build();
53      } finally {
54         builder.clear();
55      }
56   }
57 
58   public void endElement(String uri, String name, String qName) {
59      if (qName.equals("instanceType")) {
60         builder.instanceType(currentText.toString().trim());
61      } else if (qName.equals("productDescription")) {
62         builder.productDescription(currentText.toString().trim());
63      } else if (qName.equals("spotPrice")) {
64         builder.spotPrice(Float.parseFloat(currentText.toString().trim()));
65      } else if (qName.equals("timestamp")) {
66         builder.timestamp(dateService.iso8601DateParse(currentText.toString().trim()));
67      }
68      currentText = new StringBuilder();
69   }
70 
71   public void characters(char ch[], int start, int length) {
72      currentText.append(ch, start, length);
73   }
74}

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