EMMA Coverage Report (generated Wed Oct 26 13:47:17 EDT 2011)
[all classes][org.jclouds.compute.predicates]

COVERAGE SUMMARY FOR SOURCE FILE [NodePredicates.java]

nameclass, %method, %block, %line, %
NodePredicates.java38%  (3/8)11%  (4/37)5%   (17/351)4%   (3/75)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class NodePredicates$10%   (0/1)0%   (0/3)0%   (0/24)0%   (0/3)
NodePredicates$1 (Set): void 0%   (0/1)0%   (0/6)0%   (0/1)
apply (ComputeMetadata): boolean 0%   (0/1)0%   (0/6)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/12)0%   (0/1)
     
class NodePredicates$20%   (0/1)0%   (0/3)0%   (0/24)0%   (0/3)
NodePredicates$2 (String): void 0%   (0/1)0%   (0/6)0%   (0/1)
apply (NodeMetadata): boolean 0%   (0/1)0%   (0/6)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/12)0%   (0/1)
     
class NodePredicates$30%   (0/1)0%   (0/3)0%   (0/32)0%   (0/3)
NodePredicates$3 (String): void 0%   (0/1)0%   (0/6)0%   (0/1)
apply (NodeMetadata): boolean 0%   (0/1)0%   (0/14)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/12)0%   (0/1)
     
class NodePredicates$LocationId0%   (0/1)0%   (0/6)0%   (0/85)0%   (0/23)
NodePredicates$LocationId (String): void 0%   (0/1)0%   (0/6)0%   (0/3)
NodePredicates$LocationId (String, NodePredicates$1): void 0%   (0/1)0%   (0/4)0%   (0/1)
apply (ComputeMetadata): boolean 0%   (0/1)0%   (0/7)0%   (0/1)
equals (Object): boolean 0%   (0/1)0%   (0/37)0%   (0/13)
hashCode (): int 0%   (0/1)0%   (0/19)0%   (0/4)
toString (): String 0%   (0/1)0%   (0/12)0%   (0/1)
     
class NodePredicates$ParentLocationId0%   (0/1)0%   (0/6)0%   (0/92)0%   (0/25)
NodePredicates$ParentLocationId (String): void 0%   (0/1)0%   (0/6)0%   (0/3)
NodePredicates$ParentLocationId (String, NodePredicates$1): void 0%   (0/1)0%   (0/4)0%   (0/1)
apply (ComputeMetadata): boolean 0%   (0/1)0%   (0/14)0%   (0/3)
equals (Object): boolean 0%   (0/1)0%   (0/37)0%   (0/13)
hashCode (): int 0%   (0/1)0%   (0/19)0%   (0/4)
toString (): String 0%   (0/1)0%   (0/12)0%   (0/1)
     
class NodePredicates100% (1/1)20%  (2/10)16%  (11/68)17%  (3/18)
NodePredicates (): void 0%   (0/1)0%   (0/3)0%   (0/2)
inGroup (String): Predicate 0%   (0/1)0%   (0/8)0%   (0/2)
locationId (String): Predicate 0%   (0/1)0%   (0/10)0%   (0/2)
parentLocationId (String): Predicate 0%   (0/1)0%   (0/10)0%   (0/2)
runningInGroup (String): Predicate 0%   (0/1)0%   (0/8)0%   (0/2)
runningWithTag (String): Predicate 0%   (0/1)0%   (0/3)0%   (0/1)
withIds (String []): Predicate 0%   (0/1)0%   (0/12)0%   (0/3)
withTag (String): Predicate 0%   (0/1)0%   (0/3)0%   (0/1)
<static initializer> 100% (1/1)100% (9/9)100% (2/2)
all (): Predicate 100% (1/1)100% (2/2)100% (1/1)
     
class NodePredicates$4100% (1/1)33%  (1/3)23%  (3/13)33%  (1/3)
apply (NodeMetadata): boolean 0%   (0/1)0%   (0/8)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/2)0%   (0/1)
NodePredicates$4 (): void 100% (1/1)100% (3/3)100% (1/1)
     
class NodePredicates$5100% (1/1)33%  (1/3)23%  (3/13)33%  (1/3)
apply (NodeMetadata): boolean 0%   (0/1)0%   (0/8)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/2)0%   (0/1)
NodePredicates$5 (): void 100% (1/1)100% (3/3)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.compute.predicates;
20 
21import static com.google.common.base.Preconditions.checkNotNull;
22 
23import java.util.Set;
24 
25import org.jclouds.compute.domain.ComputeMetadata;
26import org.jclouds.compute.domain.NodeMetadata;
27import org.jclouds.compute.domain.NodeState;
28import org.jclouds.util.Preconditions2;
29 
30import com.google.common.base.Predicate;
31import com.google.common.base.Predicates;
32import com.google.common.collect.ImmutableSet;
33 
34/**
35 * Container for node filters (predicates).
36 * 
37 * This class has static methods that create customized predicates to use with
38 * {@link org.jclouds.compute.ComputeService}.
39 * 
40 * @author Oleksiy Yarmula
41 */
42public class NodePredicates {
43 
44   private static class ParentLocationId implements Predicate<ComputeMetadata> {
45      private final String id;
46 
47      private ParentLocationId(String id) {
48         this.id = id;
49      }
50 
51      @Override
52      public int hashCode() {
53         final int prime = 31;
54         int result = 1;
55         result = prime * result + ((id == null) ? 0 : id.hashCode());
56         return result;
57      }
58 
59      @Override
60      public boolean equals(Object obj) {
61         if (this == obj)
62            return true;
63         if (obj == null)
64            return false;
65         if (getClass() != obj.getClass())
66            return false;
67         ParentLocationId other = (ParentLocationId) obj;
68         if (id == null) {
69            if (other.id != null)
70               return false;
71         } else if (!id.equals(other.id))
72            return false;
73         return true;
74      }
75 
76      @Override
77      public boolean apply(ComputeMetadata nodeMetadata) {
78         if (nodeMetadata.getLocation().getParent() == null)
79            return false;
80         return id.equals(nodeMetadata.getLocation().getParent().getId());
81      }
82 
83      @Override
84      public String toString() {
85         return "ParentLocationId [id=" + id + "]";
86      }
87   }
88 
89   private static class LocationId implements Predicate<ComputeMetadata> {
90      @Override
91      public int hashCode() {
92         final int prime = 31;
93         int result = 1;
94         result = prime * result + ((id == null) ? 0 : id.hashCode());
95         return result;
96      }
97 
98      @Override
99      public boolean equals(Object obj) {
100         if (this == obj)
101            return true;
102         if (obj == null)
103            return false;
104         if (getClass() != obj.getClass())
105            return false;
106         LocationId other = (LocationId) obj;
107         if (id == null) {
108            if (other.id != null)
109               return false;
110         } else if (!id.equals(other.id))
111            return false;
112         return true;
113      }
114 
115      private final String id;
116 
117      private LocationId(String id) {
118         this.id = id;
119      }
120 
121      @Override
122      public boolean apply(ComputeMetadata nodeMetadata) {
123         return id.equals(nodeMetadata.getLocation().getId());
124      }
125 
126      @Override
127      public String toString() {
128         return "locationId(" + id + ")";
129      }
130   }
131 
132   /**
133    * Return nodes in the specified location.
134    * 
135    * @param id
136    *           id of the location
137    * @return predicate
138    */
139   public static Predicate<ComputeMetadata> locationId(final String id) {
140      checkNotNull(id, "id must be defined");
141      return new LocationId(id);
142   }
143 
144   /**
145    * Return nodes in the specified parent location.
146    * 
147    * @param id
148    *           id of the location
149    * @return predicate
150    */
151   public static Predicate<ComputeMetadata> parentLocationId(final String id) {
152      checkNotNull(id, "id must be defined");
153      return new ParentLocationId(id);
154   }
155 
156   /**
157    * Return nodes with the specific ids Note: returns all nodes, regardless of the state.
158    * 
159    * @param ids
160    *           ids of the resources
161    * @return predicate
162    */
163   public static <T extends ComputeMetadata> Predicate<T> withIds(String... ids) {
164      checkNotNull(ids, "ids must be defined");
165      final Set<String> search = ImmutableSet.copyOf(ids);
166      return new Predicate<T>() {
167         @Override
168         public boolean apply(T nodeMetadata) {
169            return search.contains(nodeMetadata.getId());
170         }
171 
172         @Override
173         public String toString() {
174            return "withIds(" + search + ")";
175         }
176      };
177   }
178 
179   /**
180    * return everything.
181    */
182   public static Predicate<ComputeMetadata> all() {
183      return Predicates.<ComputeMetadata> alwaysTrue();
184   }
185 
186   /**
187    * Return nodes in the specified group. Note: returns all nodes, regardless of the state.
188    * 
189    * @param group
190    *           group to match the items
191    * @return predicate
192    */
193   public static Predicate<NodeMetadata> inGroup(final String group) {
194      Preconditions2.checkNotEmpty(group, "group must be defined");
195      return new Predicate<NodeMetadata>() {
196         @Override
197         public boolean apply(NodeMetadata nodeMetadata) {
198            return group.equals(nodeMetadata.getGroup());
199         }
200 
201         @Override
202         public String toString() {
203            return "inGroup(" + group + ")";
204         }
205      };
206   }
207 
208   /**
209    * 
210    * @see #inGroup(String)
211    */
212   @Deprecated
213   public static Predicate<NodeMetadata> withTag(final String tag) {
214      return inGroup(tag);
215   }
216 
217   /**
218    * Return nodes with specified group that are in the NODE_RUNNING state.
219    * 
220    * @param group
221    *           group to match the items
222    * @return predicate
223    */
224   public static Predicate<NodeMetadata> runningInGroup(final String group) {
225      Preconditions2.checkNotEmpty(group, "group must be defined");
226      return new Predicate<NodeMetadata>() {
227         @Override
228         public boolean apply(NodeMetadata nodeMetadata) {
229            return group.equals(nodeMetadata.getGroup()) && nodeMetadata.getState() == NodeState.RUNNING;
230         }
231 
232         @Override
233         public String toString() {
234            return "runningInGroup(" + group + ")";
235         }
236      };
237   }
238 
239   /**
240    * 
241    * @see #inGroup(String)
242    */
243   @Deprecated
244   public static Predicate<NodeMetadata> runningWithTag(final String tag) {
245      return runningInGroup(tag);
246   }
247 
248   /**
249    * Match nodes with State == RUNNING
250    */
251   public static final Predicate<NodeMetadata> RUNNING = new Predicate<NodeMetadata>() {
252      @Override
253      public boolean apply(NodeMetadata nodeMetadata) {
254         return nodeMetadata.getState() == NodeState.RUNNING;
255      }
256 
257      @Override
258      public String toString() {
259         return "RUNNING";
260      }
261   };
262 
263   /**
264    * Match nodes with State == NODE_TERMINATED
265    */
266   public static final Predicate<NodeMetadata> TERMINATED = new Predicate<NodeMetadata>() {
267      @Override
268      public boolean apply(NodeMetadata nodeMetadata) {
269         return nodeMetadata.getState() == NodeState.TERMINATED;
270      }
271 
272      @Override
273      public String toString() {
274         return "TERMINATED";
275      }
276   };
277 
278}

[all classes][org.jclouds.compute.predicates]
EMMA 2.0.5312 (C) Vladimir Roubtsov