Package xyz.cofe.typedist
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
- И т.д.
-
Field Summary
-
Constructor Summary
Constructors Constructor Description TypeDistance()Конструктор, min=0, max=0TypeDistance(int min, int max)Конструктор -
Method Summary
Modifier and Type Method Description static voidcdistance(java.lang.Class a, java.lang.Class b, java.util.function.Consumer<java.lang.Integer> dist)Расчет растояния между двумя классамиbooleancontrvariant()Типы A и B контрварианты: B instanceof Abooleancovariant()Типы A и B коварианты: A instanceof Bjava.util.Optional<java.lang.Integer>dist()Выбирает крайнее растоение от нуляstatic java.util.Optional<TypeDistance>distance(java.lang.Class a, java.lang.Class b)Вычисление дистанции между типамиbooleanequals()Типы A и B равныstatic voididistance(java.lang.Class a, java.lang.Class b, java.util.function.Consumer<java.lang.Integer> dist)Расчет растояния между двумя интерфейсамиintmax()Возвращает максимальное значениеintmin()Возвращает минимальное значениеjava.lang.StringtoString()
-
Field Details
-
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:
toStringin classjava.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
Вычисление дистанции между типами- 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
-