All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.att.research.xacml.api.AttributeAssignment Maven / Gradle / Ivy

/*
 *                        AT&T - PROPRIETARY
 *          THIS FILE CONTAINS PROPRIETARY INFORMATION OF
 *        AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
 *             ACCORDANCE WITH APPLICABLE AGREEMENTS.
 *
 *          Copyright (c) 2013 AT&T Knowledge Ventures
 *              Unpublished and Not for Publication
 *                     All Rights Reserved
 */
package com.att.research.xacml.api;

/**
 * Defines the API for objects that represent XACML 3.0 AttributeAssignment elements.  AttributeAssignments are used
 * in XACML 3.0 ObligationExpressions and AdviceExpressions.
 * 
 * @author Christopher A. Rath
 * @version $Revision: 1.1 $
 */
public interface AttributeAssignment {
	/**
	 * Gets the {@link com.att.research.xacml.api.Identifier} for the XACML Attribute that is assigned by this AttributeAssignment.
	 * 
	 * @return the Identifier for the XACML Attribute that is assigned by this AttributeAssignment.
	 */
	public Identifier getAttributeId();
	
	/**
	 * Gets the {@link com.att.research.xacml.api.Identifier} for the XACML Category of the Attribute that is assigned by this
	 * AttributeAssignment.
	 * 
	 * @return the Identifier for the XACML Category of the Attribute that is assigned by this AttributeAssignment.
	 */
	public Identifier getCategory();
	
	/**
	 * Gets the String issuer of the XACML Attribute that is assigned by this AttributeAssignment.
	 * 
	 * @return the String issuer of the XACML Attribute that is assigned by this AttributeAssignment.
	 */
	public String getIssuer();
	
	/**
	 * Gets the {@link com.att.research.xacml.api.Identifier} for the XACML data type of the AttributeValue that is assigned to the Attribute by this AttributeAssignment.
	 * 
	 * @return the Identifier for the XACML data type of the AttributeValue that is assigned to the Attribute by this AttributeAssignment.
	 */
	public Identifier getDataTypeId();
	
	/**
	 * Gets the {@link com.att.research.xacml.api.AttributeValue} representing the XACML AttributeValue that is assigned to the Attribute by this
	 * AttributeAssignment.
	 * 
	 * @return the {@link com.att.research.xacml.api.AttributeValue} representing the XACML AttributeValue that is assigned to the Attribute by this
	 * AttributeAssignment.
	 */
	public AttributeValue getAttributeValue();
	
	/**
	 * {@inheritDoc}
	 * 
	 * The implementation of the AttributeAssignment interface must override the equals method with the following semantics:
	 * 
	 * 		Two AttributeAssignments (a1 and a2) are equal if:
	 * 			{@code a1.getAttributeId().equals(a2.getAttributeId())} AND
	 * 			{@code a1.getCategory()>equals(a2.getCategory())} AND
	 * 			{@code a1.getIssuer() == null && @a2.getIssuer() == null} OR {@code a1.getIssuer().equals(a2.getIssuer())} AND
	 * 			{@code a1.getDataTypeId().equals(a2.getDataTypeId())} AND
	 * 			{@code a1.getAttributeValue().equals(a2.getAttributeValue())}
	 */
	@Override
	public boolean equals(Object obj);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy