Class TypeDistance

java.lang.Object
xyz.cofe.typedist.TypeDistance

public class TypeDistance
extends java.lang.Object
Растояние между типами A <=> B
  • Значение 0 - типы совпадают
  • Значение -1 - соответ что между A и B стоит один растояние: A instanceof B
  • Значение -2 - соответ что между A и B стоит два растояние: A instanceof X instanceof B
  • Значение -3 - соответ что между A и B стоит три растояние: A instanceof Y instanceof X instanceof B
  • Значение 1 - соответ что между A и B стоит одно растояние: B instanceof A
  • Значение 2 - соответ что между A и B стоит два растояние: B instanceof X instanceof A
  • Значение 3 - соответ что между A и B стоит три растояние: B instanceof Y instanceof X instanceof A
  • И т.д.
Если указывается перечисление (0..3 или -3..0) соответствует для интерфейсов, следует использовать крайнее значение от нуля.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected int max
    максимальное значение
    protected int min
    минимальное значение
  • Constructor Summary

    Constructors 
    Constructor Description
    TypeDistance()
    Конструктор, min=0, max=0
    TypeDistance​(int min, int max)
    Конструктор
  • Method Summary

    Modifier and Type Method Description
    static void cdistance​(java.lang.Class a, java.lang.Class b, java.util.function.Consumer<java.lang.Integer> dist)
    Расчет растояния между двумя классами
    boolean contrvariant()
    Типы A и B контрварианты: B instanceof A
    boolean covariant()
    Типы A и B коварианты: A instanceof B
    java.util.Optional<java.lang.Integer> dist()
    Выбирает крайнее растоение от нуля
    static java.util.Optional<TypeDistance> distance​(java.lang.Class a, java.lang.Class b)
    Вычисление дистанции между типами
    boolean equals()
    Типы A и B равны
    static void idistance​(java.lang.Class a, java.lang.Class b, java.util.function.Consumer<java.lang.Integer> dist)
    Расчет растояния между двумя интерфейсами
    int max()
    Возвращает максимальное значение
    int min()
    Возвращает минимальное значение
    java.lang.String toString()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • min

      protected final int min
      минимальное значение
    • max

      protected final int max
      максимальное значение
  • Constructor Details

    • TypeDistance

      public TypeDistance()
      Конструктор, min=0, max=0
    • TypeDistance

      public TypeDistance​(int min, int max)
      Конструктор
      Parameters:
      min - минимальная дистанция
      max - максимальное дистанция
  • Method Details

    • min

      public int min()
      Возвращает минимальное значение
      Returns:
      минимальная дистанция
    • max

      public int max()
      Возвращает максимальное значение
      Returns:
      максимальное дистанция
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • cdistance

      public static void cdistance​(java.lang.Class a, java.lang.Class b, java.util.function.Consumer<java.lang.Integer> dist)
      Расчет растояния между двумя классами
      Parameters:
      a - Первый класс
      b - Второй класс
      dist - Примиает растояние
    • idistance

      public static void idistance​(java.lang.Class a, java.lang.Class b, java.util.function.Consumer<java.lang.Integer> dist)
      Расчет растояния между двумя интерфейсами
      Parameters:
      a - Первый интерфейс
      b - Второй интерфейс
      dist - Примиает растояние
    • distance

      public static java.util.Optional<TypeDistance> distance​(java.lang.Class a, java.lang.Class b)
      Вычисление дистанции между типами
      Parameters:
      a - первй тип
      b - второй тип
      Returns:
      дистанция или null
    • covariant

      public boolean covariant()
      Типы A и B коварианты: A instanceof B
      Returns:
      true - Типы A и B коварианты
    • contrvariant

      public boolean contrvariant()
      Типы A и B контрварианты: B instanceof A
      Returns:
      true - Типы A и B коварианты
    • equals

      public boolean equals()
      Типы A и B равны
      Returns:
      true - равны
    • dist

      public java.util.Optional<java.lang.Integer> dist()
      Выбирает крайнее растоение от нуля
      Returns:
      растоения или emptry - кода min < 0 и max > 0