org.hibernate.Filter.setParameterList()

Here are the examples of the java api org.hibernate.Filter.setParameterList() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

1 Examples 7

2 Source : JPQLDataSet.java
with GNU Affero General Public License v3.0
from KnowageLabs

/**
 * @param session
 * @param runtimeDrivers
 */
private void enableFilters(Session session) {
    Map<String, Object> drivers = this.getDrivers();
    if (drivers != null) {
        if (drivers.isEmpty() == false) {
            Filter filter = null;
            Set<String> filterNames = session.getSessionFactory().getDefinedFilterNames();
            Iterator<String> it = filterNames.iterator();
            while (it.hasNext()) {
                String filterName = it.next();
                filter = session.enableFilter(filterName);
                Map<String, Type> parametersTypes = filter.getFilterDefinition().getParameterTypes();
                for (Entry<String, Type> entry : parametersTypes.entrySet()) {
                    String parameterName = entry.getKey();
                    Type parameterType = entry.getValue();
                    String driverName = parameterName.toString();
                    Object value = null;
                    Object valueAfterConversion = null;
                    Clreplaced<?> wantedClreplaced = parameterType.getReturnedClreplaced();
                    try {
                        List<?> valueList = (List<?>) drivers.get(driverName);
                        if (valueList.size() == 1) {
                            Map<?, ?> valueDescriptionMap = (Map<?, ?>) valueList.get(0);
                            if (!valueDescriptionMap.isEmpty()) {
                                value = valueDescriptionMap.get("value");
                                valueAfterConversion = mapValueToRequiredType(wantedClreplaced, value);
                                filter.setParameter(driverName, valueAfterConversion);
                            }
                        }
                        if (valueList.size() > 1) {
                            List<Object> multivalueList = new ArrayList<Object>();
                            for (int i = 0; i < valueList.size(); i++) {
                                Map<?, ?> valueDescriptionMap = (Map<?, ?>) valueList.get(i);
                                value = valueDescriptionMap.get("value");
                                valueAfterConversion = mapValueToRequiredType(wantedClreplaced, value);
                                multivalueList.add(valueAfterConversion);
                            }
                            filter.setParameterList(driverName, multivalueList);
                        }
                        value = null;
                        valueAfterConversion = null;
                    } catch (Exception e) {
                        String msg = String.format("Error during conversion for driver %s from value %s of clreplaced %s to %s of clreplaced %s", driverName, value, value != null ? value.getClreplaced().getName() : "N.D.", valueAfterConversion, wantedClreplaced.getName());
                        logger.error(msg, e);
                        throw new SpagoBIRuntimeException(msg, e);
                    }
                }
            }
        }
    }
}