public boolean hasAccess(final SecuredComponentData secureComponentData) {
boolean result = secureComponentData.isCombined();
boolean partialResult;
Object[] contextParameters = getContextParameters(secureComponentData);
for (String voter : secureComponentData.getVoters()) {
AbstractAccessDecisionVoter bean = getBean(voter.trim());
if (bean == null) {
return false;
}
InvocationContext ic = new InvocationContextImpl(secureComponentData
.getTargetComponent(), contextParameters);
Set<SecurityViolation> securityViolations = bean.checkPermission(ic);
partialResult = securityViolations.isEmpty();
if (secureComponentData.isNot()) {
partialResult = !partialResult;
}