/**
  * @param value the query literal; must not be null or the empty literal.
  * @return a list of ids of issue types represented by this literal; never null.
  */
 List<String> getIds(final QueryLiteral value) {
   if (value.getStringValue() != null) {
     return resolver.getIndexedValues(value.getStringValue());
   } else if (value.getLongValue() != null) {
     return resolver.getIndexedValues(value.getLongValue());
   } else {
     throw new IllegalStateException("Invalid query literal.");
   }
 }
 /**
  * @param searcher the user performing the search
  * @param clause the clause
  * @return a set of Strings representing the ids of the statuses; never null.
  */
 Set<String> getIds(final User searcher, final TerminalClause clause) {
   final List<QueryLiteral> literals =
       jqlOperandResolver.getValues(searcher, clause.getOperand(), clause);
   Set<String> ids = new HashSet<String>();
   if (literals != null) {
     for (QueryLiteral literal : literals) {
       if (literal.getLongValue() != null) {
         ids.addAll(issueConstantInfoResolver.getIndexedValues(literal.getLongValue()));
       } else if (literal.getStringValue() != null) {
         ids.addAll(issueConstantInfoResolver.getIndexedValues(literal.getStringValue()));
       } else if (literal.isEmpty()) {
         // empty literals would generate a Global context, but this does not impact on other
         // contexts
       }
     }
   }
   return ids;
 }