com.sun.xacml.attr
Class AttributeValue
java.lang.Object
com.sun.xacml.attr.AttributeValue
- All Implemented Interfaces:
- Evaluatable
- Direct Known Subclasses:
- AnyURIAttribute, BagAttribute, Base64BinaryAttribute, BooleanAttribute, DateAttribute, DateTimeAttribute, DayTimeDurationAttribute, DoubleAttribute, HexBinaryAttribute, IntegerAttribute, RFC822NameAttribute, StringAttribute, TimeAttribute, X500NameAttribute, YearMonthDurationAttribute
- public abstract class AttributeValue
- extends Object
- implements Evaluatable
The base type for all datatypes used in a policy or request/response,
this abstract class represents a value for a given attribute type.
All the required types defined in the XACML specification are
provided as instances of AttributeValues. If you want to
provide a new type, extend this class and implement the
equals(Object)
and hashCode
methods from
Object
, which are used for equality checking.
- Since:
- 1.0
Constructor Summary |
protected |
AttributeValue(URI type)
Constructor that takes the specific attribute type. |
Method Summary |
abstract String |
encode()
Encodes the value in a form suitable for including in XML data like
a request or an obligation. |
void |
encode(OutputStream output)
Encodes this AttributeValue into its XML representation
and writes this encoding to the given OutputStream with
no indentation. |
void |
encode(OutputStream output,
Indenter indenter)
Encodes this AttributeValue into its XML representation
and writes this encoding to the given OutputStream with
indentation. |
String |
encodeWithTags(boolean includeType)
Encodes the value and includes the AttributeValue XML tags so that
the resulting string can be included in a valid XACML policy or
Request/Response. |
EvaluationResult |
evaluate(EvaluationCtx context)
Implements the required interface from Evaluatable . |
boolean |
evaluatesToBag()
Returns whether or not this value is actually a bag of values. |
List |
getChildren()
Always returns an empty list since values never have children. |
URI |
getType()
Returns the type of this attribute value. |
boolean |
isBag()
Returns whether or not this value is actually a bag of values. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AttributeValue
protected AttributeValue(URI type)
- Constructor that takes the specific attribute type.
- Parameters:
type
- the attribute's type
getType
public URI getType()
- Returns the type of this attribute value. By default this always
returns the type passed to the constructor.
- Specified by:
getType
in interface Evaluatable
- Returns:
- the attribute's type
evaluatesToBag
public final boolean evaluatesToBag()
- Returns whether or not this value is actually a bag of values. This
is a required interface from
Evaluatable
, but the
more meaningful isBag
method is used by
AttributeValue
s, so this method is declared as final
and calls the isBag
method for this value.
- Specified by:
evaluatesToBag
in interface Evaluatable
- Returns:
- true if this is a bag of values, false otherwise
getChildren
public List getChildren()
- Always returns an empty list since values never have children.
- Specified by:
getChildren
in interface Evaluatable
- Returns:
- an empty
List
isBag
public boolean isBag()
- Returns whether or not this value is actually a bag of values. By
default this returns
false
. Typically, only the
BagAttribute
should ever override this to return
true
.
- Returns:
- true if this is a bag of values, false otherwise
evaluate
public EvaluationResult evaluate(EvaluationCtx context)
- Implements the required interface from
Evaluatable
.
Since there is nothing to evaluate in an attribute value, the default
result is just this instance. Override this method if you want
special behavior, like a dynamic value.
- Specified by:
evaluate
in interface Evaluatable
- Parameters:
context
- the representation of the request
- Returns:
- a successful evaluation containing this value
encode
public abstract String encode()
- Encodes the value in a form suitable for including in XML data like
a request or an obligation. This must return a value that could in
turn be used by the factory to create a new instance with the same
value.
- Returns:
- a
String
form of the value
encode
public void encode(OutputStream output)
- Encodes this
AttributeValue
into its XML representation
and writes this encoding to the given OutputStream
with
no indentation. This will always produce the version used in a
policy rather than that used in a request, so this is equivalent
to calling encodeWithTags(true)
and then stuffing that
into a stream.
- Specified by:
encode
in interface Evaluatable
- Parameters:
output
- a stream into which the XML-encoded data is written
encode
public void encode(OutputStream output,
Indenter indenter)
- Encodes this
AttributeValue
into its XML representation
and writes this encoding to the given OutputStream
with
indentation. This will always produce the version used in a
policy rather than that used in a request, so this is equivalent
to calling encodeWithTags(true)
and then stuffing that
into a stream.
- Specified by:
encode
in interface Evaluatable
- Parameters:
output
- a stream into which the XML-encoded data is writtenindenter
- an object that creates indentation strings
encodeWithTags
public String encodeWithTags(boolean includeType)
- Encodes the value and includes the AttributeValue XML tags so that
the resulting string can be included in a valid XACML policy or
Request/Response. The
boolean
parameter lets you include
the DataType attribute, which is required in a policy but not allowed
in a Request or Response.
- Parameters:
includeType
- include the DataType XML attribute if
true
, exclude if false
- Returns:
- a
String
encoding including the XML tags
Copyright 2003-2004 Sun Microsystems,
Inc. All rights reserved. Use is subject to license
terms.Sun, Sun Microsystems, the Sun Logo, and Java are
trademarks or registered trademarks of Sun Microsystems, Inc. in
the US and other countries.