/** * Returns true if any of the condition sets match an inventoried Resource. * * @param context * @return */ public boolean isActive(GlobalActivationContext context) { ResourceManagerLocal resourceManager = LookupUtil.getResourceManager(); Subject subject = context.getSubject(); for (ResourceConditionSet rcs : this.resourceConditionSets) { ResourceCriteria criteria = new ResourceCriteria(); criteria.addFilterPluginName(rcs.getPluginName()); criteria.addFilterResourceTypeName(rcs.getResourceTypeName()); Set<Permission> requiredPermissions = rcs.getPermissions(); if (!((null == requiredPermissions) || requiredPermissions.isEmpty())) { Permission[] arr = requiredPermissions.toArray(new Permission[requiredPermissions.size()]); criteria.addRequiredPermissions(arr); } PageList<Resource> resources = resourceManager.findResourcesByCriteria(context.getSubject(), criteria); if (!((null == resources) || resources.isEmpty())) { return ActivatorHelper.areTraitsSatisfied( subject, rcs.getTraitMatchers(), resources, false); } } return false; }