class FilterCore implements FilterResolver, Serializable {

    public Object getCacheKey(String queryString, Map<String, Object> providedParameters, String keyColumn, String[] resultColumns) {
    	Map<String, Object> resolvedParameters = resolveParameters(queryString, providedParameters);

    	if (resolvedParameters != null && queryString != null && !queryString.isEmpty()) {
            StringBuilder sb = new StringBuilder(queryString);
            if (!resolvedParameters.isEmpty()) {
                sb.append("; ").append(getString(resolvedParameters));
            }
            if (keyColumn != null && resultColumns != null) {
                sb.append("; ").append(keyColumn).append("; ").append(StringUtils.join(resultColumns,";"));
            }
            return sb.toString();
    	}
    	return null;
    }

}