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

COVERAGE SUMMARY FOR SOURCE FILE [CallForImages.java]

nameclass, %method, %block, %line, %
CallForImages.java0%   (0/1)0%   (0/3)0%   (0/92)0%   (0/17)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class CallForImages0%   (0/1)0%   (0/3)0%   (0/92)0%   (0/17)
CallForImages (DescribeImagesParallel, EC2ImageParser, Iterable, Multimap): void 0%   (0/1)0%   (0/18)0%   (0/7)
call (): Iterable 0%   (0/1)0%   (0/59)0%   (0/9)
toString (): String 0%   (0/1)0%   (0/15)0%   (0/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.compute.suppliers;
20 
21import static com.google.common.collect.Iterables.filter;
22import static com.google.common.collect.Iterables.transform;
23import static org.jclouds.aws.ec2.options.AWSDescribeImagesOptions.Builder.filters;
24 
25import java.util.Map.Entry;
26import java.util.concurrent.Callable;
27 
28import javax.annotation.Resource;
29import javax.inject.Inject;
30import javax.inject.Named;
31import javax.inject.Singleton;
32 
33import org.jclouds.compute.domain.Image;
34import org.jclouds.compute.reference.ComputeServiceConstants;
35import org.jclouds.ec2.compute.functions.EC2ImageParser;
36import org.jclouds.ec2.compute.strategy.DescribeImagesParallel;
37import org.jclouds.ec2.options.DescribeImagesOptions;
38import org.jclouds.logging.Logger;
39 
40import com.google.common.base.Predicates;
41import com.google.common.collect.ImmutableMap;
42import com.google.common.collect.Iterables;
43import com.google.common.collect.Multimap;
44import com.google.common.collect.ImmutableMap.Builder;
45import com.google.inject.assistedinject.Assisted;
46 
47/**
48 * 
49 * @author Adrian Cole
50 */
51@Singleton
52public class CallForImages implements Callable<Iterable<Image>> {
53   public interface Factory {
54      CallForImages parseImagesFromRegionsUsingFilter(Iterable<String> regions, Multimap<String, String> filter);
55   }
56 
57   @Resource
58   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
59   protected Logger logger = Logger.NULL;
60 
61   private final Iterable<String> regions;
62   private final DescribeImagesParallel describer;
63   private final EC2ImageParser parser;
64   private final Multimap<String, String> filter;
65 
66   @Inject
67   protected CallForImages(DescribeImagesParallel describer, EC2ImageParser parser, @Assisted Iterable<String> regions,
68            @Assisted Multimap<String, String> filter) {
69      this.regions = regions;
70      this.describer = describer;
71      this.filter = filter;
72      this.parser = parser;
73   }
74 
75   public Iterable<Image> call() {
76 
77      logger.debug(">> providing images");
78 
79      Builder<String, DescribeImagesOptions> builder = ImmutableMap.<String, DescribeImagesOptions> builder();
80      for (String region : regions)
81         builder.put(region, filters(filter));
82 
83      Iterable<Entry<String, DescribeImagesOptions>> queries = builder.build().entrySet();
84 
85      Iterable<Image> returnVal = filter(transform(describer.apply(queries), parser), Predicates.notNull());
86      if (logger.isDebugEnabled())
87         logger.debug("<< images(%s)", Iterables.size(returnVal));
88      return returnVal;
89   }
90 
91   @Override
92   public String toString() {
93      return String.format("desribingImages(filter=%s,regions=%s)", filter, regions);
94   }
95 
96}

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