1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.jclouds.compute.predicates;
20
21 import static com.google.common.base.Preconditions.checkNotNull;
22
23 import java.util.Set;
24
25 import javax.annotation.Nullable;
26
27 import org.jclouds.compute.domain.Image;
28
29 import com.google.common.base.Predicate;
30 import com.google.common.base.Predicates;
31 import com.google.common.collect.Sets;
32
33
34
35
36
37
38
39
40
41 public class ImagePredicates {
42 private static final class Is64BitPredicate implements Predicate<Image> {
43 @Override
44 public boolean apply(Image image) {
45 return image.getOperatingSystem().is64Bit();
46 }
47
48 @Override
49 public String toString() {
50 return "is64Bit()";
51 }
52
53 @Override
54 public boolean equals(@Nullable Object obj) {
55 return (obj instanceof Is64BitPredicate);
56 }
57
58 }
59
60
61
62
63
64
65
66
67 public static Predicate<Image> idIn(Iterable<String> ids) {
68 checkNotNull(ids, "ids must be defined");
69 final Set<String> search = Sets.newHashSet(ids);
70 return new Predicate<Image>() {
71 @Override
72 public boolean apply(Image image) {
73 return search.contains(image.getId());
74 }
75
76 @Override
77 public String toString() {
78 return "idIn(" + search + ")";
79 }
80 };
81 }
82
83
84
85
86
87
88
89
90 public static Predicate<Image> idEquals(final String id) {
91 checkNotNull(id, "id must be defined");
92 return new Predicate<Image>() {
93 @Override
94 public boolean apply(Image image) {
95 return id.equals(image.getId());
96 }
97
98 @Override
99 public String toString() {
100 return "idEquals(" + id + ")";
101 }
102 };
103 }
104
105
106
107
108 public static Predicate<Image> is64Bit() {
109 return new Is64BitPredicate();
110 }
111
112
113
114
115 public static Predicate<Image> any() {
116 return Predicates.<Image> alwaysTrue();
117 }
118
119 }