Example usage for org.hibernate Filter setParameterList

List of usage examples for org.hibernate Filter setParameterList

Introduction

In this page you can find the example usage for org.hibernate Filter setParameterList.

Prototype

public Filter setParameterList(String name, Object[] values);

Source Link

Document

Set the named parameter's value list for this filter.

Usage

From source file:com.masetta.spann.orm.hibernate.support.HibernateSupport.java

License:Apache License

private static List<String> enableFilters(Session session, Collection<FilterActivation> filterList) {

    if (filterList == null || filterList.isEmpty())
        return Collections.emptyList();

    List<String> applied = new ArrayList<String>();
    Filter filter;
    for (FilterActivation f : filterList) {
        String filterName = f.getName();

        Collection<Map.Entry<String, Object>> parameters = f.getParameters();
        // skip filters which are already enabled,
        filter = session.getEnabledFilter(filterName);
        if (filter != null) {
            if (f.getParameters().size() > 0) {
                throw new IllegalArgumentException("Filter '" + f.getName()
                        + "' is already activated. Can not enable filter with different arguments.");
            }// w w  w  . ja v a  2s.  co  m
            continue;
        }

        filter = session.enableFilter(filterName);
        applied.add(filterName);
        for (Map.Entry<String, Object> e : parameters) {
            Object value = e.getValue();
            if (value == null) {
                filter.setParameter(e.getKey(), value);
            } else if (value instanceof Collection) {
                filter.setParameterList(e.getKey(), (Collection) value);
            } else if (value.getClass().isArray()) {
                filter.setParameterList(e.getKey(), (Object[]) value);
            } else {
                filter.setParameter(e.getKey(), value);
            }
        }
        filter.validate();
    }
    return applied;
}

From source file:edu.purdue.cybercenter.dm.web.TermController.java

private String fetchAllTerms(HttpServletRequest request, HttpServletResponse response, boolean isTemplate) {
    Session session = DomainObjectHelper.getHbmSession();

    Filter filter = session.enableFilter("mostRecentUpdatedTermFilter");
    filter.setParameter("isTemplate", isTemplate);
    Filter assetStatusFilter = session.enableFilter("assetStatusFilter");
    assetStatusFilter.setParameterList("statusIds", Arrays.asList(1));
    String responseBody = listTerms(request, response, isTemplate ? "template" : "term");
    session.disableFilter("assetStatusFilter");
    session.disableFilter("mostRecentUpdatedTermFilter");

    return responseBody;
}

From source file:gov.nih.nci.security.authorization.instancelevel.InstanceLevelSecurityHelper.java

License:BSD License

/**
 * This method initializes the filter that are already added to the Sessionfactory.
 * <br>//from   www.j  a  va2s . c o  m
 * This method also initializes the defined filters configured in HBM/Classes/Packages based on the definedFilterNamesMap. 
 * If definedFilterNamesMap contains 'ALL' as the Filter Name (key) then all defined filters are enabled.
 * <br>
 * This method first obtains the list of all the defined filters from the SessionFactory in the passes Session object. 
 * It then just iterates through the filter list and sets the group names and the application name parameter. 
 * 
 * @param groupNames The names of the groups which are invoking the query
 * @param session The Hibernate Session initialized to execute this query
 * @param authorizationManager The CSM AuthorizationManager instance for this application
 * @param definedFilterNamesMap - Map of defined Filter Names and string value ( enable / disable ) to indicate that the filter should be enabled of disabled.<br>.
 *                            
 */
public static void initializeFiltersForGroups(String[] groupNames, Session session,
        AuthorizationManager authorizationManager, Map<String, String> definedFilterNamesMap) {

    List<String> sessionGroupFilterNamesList = new ArrayList<String>();
    List<String> sessionDefinedFilterNamesList = new ArrayList<String>();
    boolean enableAllDefinedFilterNames = false;

    Set definedFilterNames = null;
    if (definedFilterNamesMap != null && !definedFilterNamesMap.isEmpty()) {
        definedFilterNames = definedFilterNamesMap.keySet();
        if (definedFilterNames.contains("ALL"))
            enableAllDefinedFilterNames = true;
    }

    SessionFactory sessionFactory = session.getSessionFactory();
    Set sessionFilterNamesSet = sessionFactory.getDefinedFilterNames();

    Iterator sessionFilterNamesSetIterator = sessionFilterNamesSet.iterator();
    while (sessionFilterNamesSetIterator.hasNext()) {
        String filterName = (String) sessionFilterNamesSetIterator.next();

        if (null != definedFilterNames) {
            if (enableAllDefinedFilterNames) {
                sessionDefinedFilterNamesList.add(filterName);
            } else {
                if (definedFilterNames.contains(filterName)) {
                    String value = (String) definedFilterNamesMap.get(filterName);
                    if (Constants.ENABLE.equalsIgnoreCase(value)) {
                        sessionDefinedFilterNamesList.add(filterName);
                    }
                }
            }
        }
        FilterDefinition filterDefinition = sessionFactory.getFilterDefinition(filterName);
        if (filterDefinition != null) {

            Set<String> parameterNamesSet = filterDefinition.getParameterNames();
            if (parameterNamesSet != null && parameterNamesSet.contains("GROUP_NAMES")) {
                sessionGroupFilterNamesList.add(filterName);
                // remove this filter name from sessionDefinedFilterNamesList if it exists in there.
                if (sessionDefinedFilterNamesList.contains(filterName))
                    sessionDefinedFilterNamesList.remove(filterName);
            }
        }
    }

    //Enable the User Filters from CSM database for the application
    Iterator sessionGroupFilterNamesListIterator = sessionGroupFilterNamesList.iterator();
    while (sessionGroupFilterNamesListIterator.hasNext()) {
        String filterName = (String) sessionGroupFilterNamesListIterator.next();
        Filter filter = session.enableFilter(filterName);
        filter.setParameterList("GROUP_NAMES", groupNames);
        filter.setParameter("APPLICATION_ID", authorizationManager.getApplicationContext().getApplicationId());
    }
    //Enable the Defined Filters available in HBM/Classes.
    Iterator sessionDefinedFilterNamesListIterator = sessionDefinedFilterNamesList.iterator();
    while (sessionDefinedFilterNamesListIterator.hasNext()) {
        String filterName = (String) sessionDefinedFilterNamesListIterator.next();
        Filter filter = session.enableFilter(filterName);
    }
}

From source file:nz.co.nomadconsulting.simplepersistence.TransactionInterceptor.java

License:Apache License

private void enableFilter(final Filter f, final EntityManager entityManager) {
    try {//from w w w .  j  a  v  a2  s  .  com
        if (!(Boolean) expressions.evaluateValueExpression(f.getEnabledExpression())) {
            return;
        }
        final org.hibernate.Filter filter = getSession(entityManager).enableFilter(f.getName());
        for (final Map.Entry<String, String> me : f.getParameters().entrySet()) {
            final Object filterValue = expressions.evaluateValueExpression(me.getValue());
            if (filterValue instanceof Collection) {
                filter.setParameterList(me.getKey(), (Collection<?>) filterValue);
            } else {
                filter.setParameter(me.getKey(), filterValue);
            }
        }
        filter.validate();
    } catch (final NotHibernateException nhe) {
        throw new RuntimeException("bob");
    }
}

From source file:ome.security.basic.AllGroupsSecurityFilter.java

License:Open Source License

/***
 * Since we assume that the group is "-1" for this method, we have to pass
 * in lists of all groups as we did before group permissions (~4.2).
 *///w  ww.  j  a  va 2  s  .com
public void enable(Session sess, EventContext ec) {
    final Filter filter = sess.enableFilter(getName());

    final int share01 = isShare(ec) ? 1 : 0;
    final int admin01 = ec.isCurrentUserAdmin() ? 1 : 0;

    filter.setParameter(is_admin, admin01);
    filter.setParameter(SecurityFilter.is_share, share01); // ticket:2219, not checking -1 here.
    filter.setParameter(SecurityFilter.current_user, ec.getCurrentUserId());
    filter.setParameterList(member_of_groups, configGroup(ec, ec.getMemberOfGroupsList()));
    filter.setParameterList(leader_of_groups, configGroup(ec, ec.getLeaderOfGroupsList()));
    enableBaseFilters(sess, admin01, ec.getCurrentUserId());
}

From source file:ome.security.basic.SharingSecurityFilter.java

License:Open Source License

@Override
public void enable(Session session, EventContext ec) {
    List<Long> imageIds = null;
    final Long shareId = ec.getCurrentShareId();
    if (shareId != null) {
        final ShareData shareData = shares.get(shareId);
        if (shareData != null && shareData.enabled) {
            imageIds = shareData.objectMap.get(Image.class.getName());
        }//from  ww w.  jav a  2s . c  o m
    }
    if (CollectionUtils.isEmpty(imageIds)) {
        imageIds = ImmutableList.of(-1L);
    }
    final int isAdmin01 = ec.isCurrentUserAdmin() ? 1 : 0;
    final int isShare01 = isShare(ec) ? 1 : 0;

    final Filter filter = session.enableFilter(getName());
    filter.setParameter("is_admin", isAdmin01);
    filter.setParameter("is_share", isShare01);
    filter.setParameterList("images", imageIds);
    enableBaseFilters(session, isAdmin01, ec.getCurrentUserId());
}

From source file:org.openeos.erp.core.ui.internal.ClientFilterProvider.java

License:Apache License

public void enableFilter(Session session) {
    Client client = (Client) sessionObjectsService
            .getSessionObject(ClientContextObjectContributor.CONTEXT_OBJECT_CLIENT_NAME);
    if (client != null) {
        LOG.debug("New session created, enabling filter for client selection");
        Filter filter = session.enableFilter(CLIENT_FILTER_NAME);
        filter.setParameter("client", client.getId());
        List<String> organizationList = new ArrayList<String>();
        for (Organization org : ((Client) session.get(Client.class, client.getId())).getOrganizations()) {
            organizationList.add(org.getId());
        }//  ww  w  . j  a  va 2s . c o  m
        filter = session.enableFilter(CLIENT_ORGANIZATION_FILTER_NAME);
        if (organizationList.size() == 0) {
            organizationList.add(
                    "NULL_EXPECT_NEVER_HAS_THIS_KEY_BECAUSE_THE_STRING_HAS_MORE_LEN THAN THE PERMITTED_KEY");
        }
        filter.setParameterList("organizationList", organizationList);

    } else {
        LOG.debug("Client filter not enabling because client is not established");
    }

}