numerando enumerações em Ja

Quero aninhar algumas enumerações. O objeto que estou representando são Flags, com um tipo e um valor. Há um número discreto de tipos e cada tipo tem um conjunto distinto de valores possívei

Então, se o Tipo A pode ter valores 1, 2 ou 3 e o Tipo B pode ter valores 4,5,6, eu gostaria de poder fazer coisas como:

Flag f = Flag.A.1;

f.getType() - returns "A"

f.getValue() - returns "1"

Flag f2 = Flag.A.4; -- Syntax error.

Estou enlouquecendo tentando aninhar enumerações dentro de enumerações - é o que estou tentando possível - preciso abandonar enumerações completamente e criar uma classe estática com membros estático

Meu melhor esforço até agora é:

public class Flag {

    enum A extends Flag {
        ONE("ONE"),
        TWO("TWO"),
        THREE("THREE");

        private A(String value) {
            Flag.type = "A";
            Flag.value = value;
        }
    }

        private static String type;
        private static String value;
}

Mas se eu fizer:

Flag f = Flag.A.ONE;

Os tipos são incompatíveis.

questionAnswers(3)

yourAnswerToTheQuestion