Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Predicate.java « util « mapswithme « com « src « android - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: cd87668a3651dd95f2604a650f0c84eb0a7dde08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.mapswithme.util;

import android.support.annotation.NonNull;

public abstract class Predicate<T, D>
{
  @NonNull
  private final T mBaseValue;

  Predicate(@NonNull T baseValue)
  {
    mBaseValue = baseValue;
  }

  @NonNull
  T getBaseValue()
  {
    return mBaseValue;
  }

  public abstract boolean apply(@NonNull D field);

  public static class Equals<T, D> extends Predicate<T, D>
  {
    @NonNull
    private final TypeConverter<D, T> mConverter;

    public Equals(@NonNull TypeConverter<D, T> converter, @NonNull T data)
    {
      super(data);
      mConverter = converter;
    }

    @Override
    public boolean apply(@NonNull D field)
    {
      T converted = mConverter.convert(field);
      T value = getBaseValue();
      return value == converted || value.equals(converted);
    }
  }
}