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

com.att.research.xacmlatt.pdp.policy.FunctionArgument Maven / Gradle / Ivy

The newest version!
/*
 *
 *          Copyright (c) 2013,2019  AT&T Knowledge Ventures
 *                     SPDX-License-Identifier: MIT
 */
package com.att.research.xacmlatt.pdp.policy;

import com.att.research.xacml.api.AttributeValue;
import com.att.research.xacml.api.Status;

/**
 * FunctionArgument is the interface implemented by objects that can serve as arguments to a {@link com.att.research.xacmlatt.pdp.policy.FunctionDefinition}
 * evaluate call.
 * 
 * @author car
 * @version $Revision: 1.3 $
 */
public interface FunctionArgument {
	/**
	 * Gets the {@link com.att.research.xacml.api.Status} from the evaluation of this FunctionArgument.
	 * 
	 * @return the Status from the evaluation of this FunctionArgument
	 */
	public Status getStatus();
	
	/**
	 * Determines if this FunctionArgument is OK and can have its AttributeValue or
	 * Bag retrieved.
	 * 
	 * @return true if this FunctionArgument is OK, otherwise false.
	 */
	public boolean isOk();
	
	/**
	 * Determines if this FunctionArgument represents a bag of values.
	 * 
	 * @return true if this FunctionArgument represents a bag of values, else false.
	 */
	public boolean isBag();
	
	/**
	 * Gets the single AttributeValue representing the value of this FunctionArgument.  If
	 * this FunctionArgument represents a bag, the value returned is up to the implementation.
	 * 
	 * @return the single AttributeValue representing the value of this FunctionArgument.
	 */
	public AttributeValue getValue();
	
	/**
	 * Gets the {@link com.att.research.xacmlatt.pdp.policy.Bag} value for this FunctionArgument if the
	 * argument represents a Bag, (i.e. isBag returns true).
	 * 
	 * @return the Bag value for this FunctionArgument.
	 */
	public Bag getBag();
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy