For just classes, we don't have to traverse interfaces.
()
| 1251 | |
| 1252 | /** For just classes, we don't have to traverse interfaces. */ |
| 1253 | final TypeCollector<K> classesOnly() { |
| 1254 | return new ForwardingTypeCollector<K>(this) { |
| 1255 | @Override |
| 1256 | Iterable<? extends K> getInterfaces(K type) { |
| 1257 | return ImmutableSet.of(); |
| 1258 | } |
| 1259 | |
| 1260 | @Override |
| 1261 | ImmutableList<K> collectTypes(Iterable<? extends K> types) { |
| 1262 | ImmutableList.Builder<K> builder = ImmutableList.builder(); |
| 1263 | for (K type : types) { |
| 1264 | if (!getRawType(type).isInterface()) { |
| 1265 | builder.add(type); |
| 1266 | } |
| 1267 | } |
| 1268 | return super.collectTypes(builder.build()); |
| 1269 | } |
| 1270 | }; |
| 1271 | } |
| 1272 | |
| 1273 | final ImmutableList<K> collectTypes(K type) { |
| 1274 | return collectTypes(ImmutableList.of(type)); |