I have a class that looks like this:

```
public class Catalog {

    public enum Table1 implements IExcelEnum{
            Name, Date, Id
    }

    public enum Table2 IExcelEnum {
        ...
    }
}

```

I can get to the enum Table1, such as:

```
System.out.println(Catalog.Table2.Name.value());

```

But what I want to do is to be able to feed a String or an identifier and get the enum back out so that I can reference it when creating my data object. so for example:

```
Data dataCol1 = new Data(Catalog.getEnum("Table1"), ArrayList<String> values);

```

I have an interface called IExcelEnum that does not have any fields, its just so I can generically type my enums so my data structure is willing to accept any of them.

What is the cleanest way to do this?