/*******************************************************************************
* Copyright (c) 2012 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.cdi.deltaspike.core;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.eclipse.core.runtime.IPath;
import org.jboss.tools.cdi.internal.core.impl.definition.AbstractMemberDefinition;
import org.jboss.tools.cdi.internal.core.impl.definition.AnnotationDefinition;
/**
* @author Viacheslav Kabanovich
*/
public class DeltaspikeSecurityBindingConfiguration {
String securityBindingTypeName;
AnnotationDefinition securityBindingType;
Map<AbstractMemberDefinition, SecurityBindingDeclaration> boundMembers = new HashMap<AbstractMemberDefinition, SecurityBindingDeclaration>();
Set<DeltaspikeAuthorityMethod> authorizerMembers = new HashSet<DeltaspikeAuthorityMethod>();
Set<IPath> involvedResources = new HashSet<IPath>();
public DeltaspikeSecurityBindingConfiguration(String securityBindingTypeName) {
this.securityBindingTypeName = securityBindingTypeName;
}
public void setSecurityBundingTypeDefinition(AnnotationDefinition securityBindingType, DeltaspikeSecurityDefinitionContext context) {
this.securityBindingType = securityBindingType;
}
public void clear(IPath path) {
involvedResources.remove(path);
}
public void clear(String typeName) {
Iterator<AbstractMemberDefinition> it = boundMembers.keySet().iterator();
while(it.hasNext()) {
if(typeName.equals(it.next().getTypeDefinition().getQualifiedName())) {
it.remove();
}
}
Iterator<DeltaspikeAuthorityMethod> it2 = authorizerMembers.iterator();
while(it2.hasNext()) {
if(typeName.equals(it2.next().getDeclaringTypeName())) {
it2.remove();
}
}
}
public Map<AbstractMemberDefinition, SecurityBindingDeclaration> getBoundMembers() {
return boundMembers;
}
public Set<DeltaspikeAuthorityMethod> getAuthorizerMembers() {
return authorizerMembers;
}
public String getSecurityBindingTypeName() {
return securityBindingTypeName;
}
public AnnotationDefinition getSecurityBindingTypeDefinition() {
return securityBindingType;
}
public Set<IPath> getInvolvedTypes() {
return involvedResources;
}
}