code: private static void addExpandTerm(int i, int ord, int byteValue, Term termValue, Set<Integer> terms) {
  		if (i < ord) {
  			int mask = 1 << i;
  			byte bitValue = termValue.get(i);
  			if (bitValue == 1) {
  				byteValue |= (-1 & mask);
  				addExpandTerm(i+1, ord, byteValue, termValue, terms);
  			} else if (bitValue == 0) {
  				addExpandTerm(i+1, ord, byteValue, termValue, terms);
  			} else {	// Dont care
  				addExpandTerm(i+1, ord, byteValue, termValue, terms);
  				byteValue |= (-1 & mask);
  				addExpandTerm(i+1, ord, byteValue, termValue, terms);
  			}
  		} else {
  			// add the term to the term list
  			terms.add(byteValue);
  		}
  	}
docs: Utility method to expand a term and add it to the list of results when the
  expansion is complete.  The result terms are represented using a list of
  integer bit-fields, with each integer representing a term in bit-field form.
  This usage imposes a size limit of  {@link Integer#SIZE} on the terms that
  can be handled by this method.
  
  @param i Shift value used in recursion.  Specify 0 in initial call.
  @param ord Term size
  @param byteValue Used in recursion.  Specify 0 in initial call.
  @param termValue The term being expanded
  @param terms The expanded terms represented as a set of bit-field ints