| class Foo { |
| public static <T, Loc> WeighingComparable<T, Loc> we<caret>igh(final Key<? extends Weigher<T, Loc>> key, |
| final Computable<T> element, |
| final Loc location) { |
| return new WeighingComparable<T, Loc>(element, location, new Weigher[0]); |
| } |
| |
| |
| public WeighingComparable<String, ProximityLocation> method(boolean b, |
| final Computable<String> elementComputable, |
| Object processingContext) { |
| return weigh(WEIGHER_KEY, elementComputable, new ProximityLocation()); |
| } |
| |
| public static final Key<ProximityWeigher> WEIGHER_KEY = null; |
| } |
| |
| abstract class ProximityWeigher extends Weigher<String, ProximityLocation> { |
| |
| } |
| |
| class ProximityLocation { |
| } |
| |
| class Key<P> { |
| } |
| |
| class Weigher<A, B> { |
| } |
| |
| class Computable<O> {} |
| |
| class WeighingComparable<T, Loc> implements Comparable<WeighingComparable<T, Loc>> { |
| |
| public WeighingComparable(final Computable<T> element, final Loc location, final Weigher[] weighers) { |
| |
| } |
| |
| public int compareTo(@NotNull final WeighingComparable<T, Loc> comparable) { |
| return 0; |
| } |
| |
| @Nullable |
| private Comparable getWeight(final int index) { |
| return null; |
| } |
| } |