package eu.dnetlib.enabling.aas.security.criteria;

import org.opensaml.lite.security.TrustLevel;
import org.opensaml.xml.security.Criteria;
import org.opensaml.xml.security.credential.Credential;

/**
 * Trust level criteria. Holds information about trust level for {@link Credential}.
 * @author mhorst
 *
 */
public class TrustLevelCriteria implements Criteria {

	/**
	 * Trust level.
	 */
	private TrustLevel trustLevel;
	
	public TrustLevelCriteria(TrustLevel trustLevel) {
		setTrustLevel(trustLevel);
	}

	/**
	 * Returns trust level.
	 * @return trust level
	 */
	public TrustLevel getTrustLevel() {
		return trustLevel;
	}

	/**
	 * Sets trust level.
	 * @param trustLevel
	 */
	public void setTrustLevel(TrustLevel trustLevel) {
		 if (trustLevel == null) {
	            throw new IllegalArgumentException("Trust level criteria value must be supplied");
	        }
		this.trustLevel = trustLevel;
	}
}

