docs: private void processSplit(final String parsed_value) {
      if (splits == null) {
        // then this is the first time we're processing the value, so we need to
        // execute the split if there's a separator, after some validation
        if (parsed_value == null || parsed_value.isEmpty()) {
          throw new IllegalArgumentException("Value was empty for rule: " + 
              rule);
        }
        if (rule.getSeparator() == null || rule.getSeparator().isEmpty()) {
          throw new IllegalArgumentException("Separator was empty for rule: " + 
              rule);
        }      
        
        // split it
        splits = parsed_value.split(rule.getSeparator());
        if (splits.length < 1) { 
          testMessage("Separator did not match, created an empty list on rule: " + 
              rule);
          // set the index to 1 so the next time through it thinks we're done and
          // moves on to the next rule
          split_idx = 1;
          return;
        }
        split_idx = 0;
        setCurrentName(parsed_value, splits[split_idx]);
        split_idx++;
      } else {
        // otherwise we have split values and we just need to grab the next one
        setCurrentName(parsed_value, splits[split_idx]);
        split_idx++;
      }
    }