docs: protected List splitInCriteria(Object attribute, Collection values, boolean negative, int inLimit)
      {
          List result = new ArrayList();
          Collection inCollection = new ArrayList();
  
          if (values == null || values.isEmpty())
          {
              // OQL creates empty Criteria for late binding
              result.add(buildInCriteria(attribute, negative, values));
          }
          else
          {
              Iterator iter = values.iterator();
  
              while (iter.hasNext())
              {
                  inCollection.add(iter.next());
                  if (inCollection.size() == inLimit || !iter.hasNext())
                  {
                      result.add(buildInCriteria(attribute, negative, inCollection));
                      inCollection = new ArrayList();
                  }
              }
          }
          return result;
      }