title: Replace String Literals If/elseIf block with Enum
body: <p>I'm new to using Java Enums and I've read that replace IF logic that compares String literals should be replaced with an Enum.  I don't quite understand how to replace my below code with an Enum, any ideas?  Based on the col value being passed into applyEQ, I need to do a base the next method call on it's value.  I do know the possible values of col ahead of time and I'm using a constants file for now.  Should I create an Enum and place it in my Interface of Constants file?</p>
  
  <pre><code>public class FilterHelper implements IFilterHelper {
  
     private final EQuery eQuery;
  
     public FilterHelper(EQuery query) {
        eQuery = query;
     }
  
      @Override
      public void applyEQ(String col, String val) throws Exception {
          int return = 0;
          if (col.equalsIgnoreCase(EConstants.NAME)) {
              ret = Sample.addName(eQuery, val);
          } else if (col.equalsIgnoreCase(EConstants.KEYWORDS)) {
              ret = Sample.addKey(eQuery, val);
          } else if (col.equalsIgnoreCase(EConstants.ROLE)) {
              ret = Sample.addRole(eQuery, val);
          }  
  
          if (return != 0) {
              throw new Exception("failed");
          }
      }
  }
  </code></pre>
  
  <p><strong>EConstants.java</strong></p>
  
  <pre><code>public final class EConstants {    
      public static final String NAME = "cewName";
      public static final String KEYWORDS = "cewKeywords";
      public static final String ROLE = "cewRole";
  }
  </code></pre>