|
|
@@ -7,11 +7,24 @@
|
|
|
package net.ranides.assira.enums;
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
+ * Interfejs, który może być implentowany przez typy enum. Pozwala każdej wartości
|
|
|
+ * {@code enum} przypisać wartość liczbową, która może być np traktowana jako
|
|
|
+ * unikalny klucz identyfikujący stałą. Interfejs używany np w klasie {@link EnumUtils}
|
|
|
* @author ranides
|
|
|
*/
|
|
|
public interface EnumInt {
|
|
|
|
|
|
+ /**
|
|
|
+ * Zwraca wartość liczbową, która jest powiązana ze stałą zdefiniowaną w klasie
|
|
|
+ * {@code enum}. Nie istnieją formalne wymagania względem zwracanej wartości,
|
|
|
+ * ale mile widziane jest, aby każda stała zwracała inną wartość - a najlepiej
|
|
|
+ * jeszcze, aby każda stała zwracała liczbę, która ma ustawiony inny bit.
|
|
|
+ * Wtedy {@code enum} może być potraktowana jako bezpieczna maska bitowa.
|
|
|
+ * Bardzo podobną funkcjonalność oferuje klasyczny kontener EnumSet, ale w nim
|
|
|
+ * nie mamy kontroli nad tym, który bit jest powiązany z którą stałą.
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
int toEnumKey();
|
|
|
|
|
|
}
|