class SplitSelectorExtractor implements SelectorExtractor {

    @Override
    public List<String> extractSelectors(Query query) throws IllegalArgumentException {
        List<String> selectorList = new ArrayList<>();
        
        String selectorSeparator = this.separatorCharacter;
        if (this.separatorParameter != null) {
            QueryImpl.Parameter parameter = query.findParameter(separatorParameter);
            if (parameter != null && parameter.getParameterValue() != null) {
                String value = parameter.getParameterValue();
                if (StringUtils.isNotBlank(value) && value.length() == 1) {
                    selectorSeparator = value;
                }
            }
        }
        
        String queryStr = query.getQuery();
        if (selectorSeparator == null) {
            selectorList.add(query.getQuery());
        } else {
            String[] querySplit = queryStr.split(selectorSeparator);
            for (int splitNumber = 0; splitNumber < querySplit.length; splitNumber++) {
                if (useSplitsList == null || useSplit(useSplitsList, splitNumber)) {
                    String s = querySplit[splitNumber];
                    selectorList.add(s.trim());
                }
            }
        }
        return selectorList;
    }

}