private List filterForCorrelation(List list, ObjParuse objParuse, Map selectedParameterValues) {
try {
Integer objParFatherId = objParuse.getObjParFatherId();
BIObjectParameter objParFather = DAOFactory.getBIObjectParameterDAO().loadForDetailByObjParId(objParFatherId);
// get the general parameter associated to the bi parameter father
IParameterDAO parameterDAO = DAOFactory.getParameterDAO();
Parameter parameter = parameterDAO.loadForDetailByParameterID(objParFather.getParID());
// get the type of the general parameter
String valueTypeFilter = parameter.getType();
String valueFilter = "";
Object values = selectedParameterValues.get(objParFather.getParameterUrlName());
// if the father parameter is no valued, returns the list unfiltered
if (values == null) return list;
String[] filterValues = null;
if(values instanceof String) {
filterValues = new String[]{(String)values};
} else if(values instanceof String[]) {
filterValues = (String[])values;
} else {
Assert.assertUnreachable("values associated to parameter [" + objParFather.getParameterUrlName() +"] are naither an instance of JSONObject nor of JSONArray");
}
// based on the values number do different filter operations
switch (filterValues.length) {