org.opensaml
Class SAMLAttribute

java.lang.Object
  extended byorg.opensaml.SAMLObject
      extended byorg.opensaml.SAMLAttribute
All Implemented Interfaces:
java.lang.Cloneable

public class SAMLAttribute
extends SAMLObject
implements java.lang.Cloneable

Basic SAML Attribute implementation that handles rudimentary attribute value types

Author:
Scott Cantor

Field Summary
protected  long lifetime
          Effective lifetime of attribute's value(s) in seconds (0 means infinite)
protected  java.lang.String name
          Name of attribute
protected  java.lang.String namespace
          Namespace/qualifier of attribute
protected  QName type
          The schema type of attribute value(s)
protected  java.util.ArrayList values
          An array of attribute values
 
Fields inherited from class org.opensaml.SAMLObject
config, log, root
 
Constructor Summary
SAMLAttribute()
          Default constructor
SAMLAttribute(org.w3c.dom.Element e)
          Reconstructs an attribute from a DOM tree
SAMLAttribute(java.io.InputStream in)
          Reconstructs an attribute from a stream
SAMLAttribute(java.lang.String name, java.lang.String namespace, QName type, long lifetime, java.util.Collection values)
          Builds an Attribute out of its component parts
 
Method Summary
 boolean accept(org.w3c.dom.Element e)
          Attribute acceptance hook used while consuming attributes from an assertion.
 boolean addValue(org.w3c.dom.Element e)
          Imports a value to the state of the SAML Attribute, subject to acceptance.
 void addValue(java.lang.Object value)
          Adds a value to the attribute
 void checkValidity()
          Evaluates the object's content to see if it is currently valid if serialized.
 java.lang.Object clone()
          Copies a SAML object such that no dependencies exist between the original and the copy.
protected  java.lang.String computeTypeDecl(org.w3c.dom.Element e)
          Computes the xsi:type attribute on each AttributeValue element with any supporting declarations created.
 void fromDOM(org.w3c.dom.Element e)
          Initialization of attribute from a DOM element.
static SAMLAttribute getInstance(org.w3c.dom.Element e)
          Locates an implementation class for an attribute and constructs it based on the DOM provided.
static SAMLAttribute getInstance(java.io.InputStream in)
          Locates an implementation class for an attribute and constructs it based on the stream provided.
 long getLifetime()
          Gets the value's lifetime, in seconds
 java.lang.String getName()
          Gets the AttributeName attribute of the SAML Attribute
 java.lang.String getNamespace()
          Gets the AttributeNamespace attribute of the SAML Attribute
 QName getType()
          Gets the value of the xsi:type attribute, if any, of the SAML Attribute
 java.util.Iterator getValues()
          Gets the values of the SAML Attribute
static void regFactory(java.lang.String name, java.lang.String namespace, java.lang.String className)
          Registers a class to handle a specific SAML attribute when parsing XML
 void removeValue(int index)
          Removes a value by position (zero-based)
 void setLifetime(long lifetime)
          Sets the value's lifetime, in seconds
 void setName(java.lang.String name)
          Sets the AttributeName attribute of the SAML Attribute
 void setNamespace(java.lang.String namespace)
          Sets the AttributeNamespace attribute of the SAML Attribute
 void setType(QName type)
          Sets the value of the xsi:type attribute, if any, of the SAML Attribute
 void setValues(java.util.Collection values)
          Sets the values of the attribute
 org.w3c.dom.Node toDOM(org.w3c.dom.Document doc, boolean xmlns)
          Transforms the object into a DOM tree using an existing document context
static void unregFactory(java.lang.String name, java.lang.String namespace)
          Unregisters a class to handle a specific SAML attribute when parsing XML
protected  void valueToDOM(java.lang.Object value, org.w3c.dom.Element e)
          Creates the DOM representation of an attribute value in the specified element.
 
Methods inherited from class org.opensaml.SAMLObject
fromStream, plantRoot, toBase64, toDOM, toDOM, toDOM, toStream, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

name

protected java.lang.String name
Name of attribute


namespace

protected java.lang.String namespace
Namespace/qualifier of attribute


type

protected QName type
The schema type of attribute value(s)


lifetime

protected long lifetime
Effective lifetime of attribute's value(s) in seconds (0 means infinite)


values

protected java.util.ArrayList values
An array of attribute values

Constructor Detail

SAMLAttribute

public SAMLAttribute()
Default constructor


SAMLAttribute

public SAMLAttribute(java.lang.String name,
                     java.lang.String namespace,
                     QName type,
                     long lifetime,
                     java.util.Collection values)
              throws SAMLException
Builds an Attribute out of its component parts

Parameters:
name - Name of attribute
namespace - Namespace/qualifier of attribute
type - The schema type of attribute value(s)
lifetime - Effective lifetime of attribute's value(s) in seconds (0 means infinite)
values - An array of attribute values
Throws:
SAMLException - Thrown if attribute cannot be built from the supplied information

SAMLAttribute

public SAMLAttribute(org.w3c.dom.Element e)
              throws SAMLException
Reconstructs an attribute from a DOM tree

Parameters:
e - The root of a DOM tree
Throws:
SAMLException - Thrown if the object cannot be constructed

SAMLAttribute

public SAMLAttribute(java.io.InputStream in)
              throws SAMLException
Reconstructs an attribute from a stream

Parameters:
in - A stream containing XML
Throws:
SAMLException - Raised if an exception occurs while constructing the object.
Method Detail

regFactory

public static void regFactory(java.lang.String name,
                              java.lang.String namespace,
                              java.lang.String className)
Registers a class to handle a specific SAML attribute when parsing XML

Parameters:
name - The attribute name
namespace - The attribute namespace
className - The Java class that handles this attribute

unregFactory

public static void unregFactory(java.lang.String name,
                                java.lang.String namespace)
Unregisters a class to handle a specific SAML attribute when parsing XML

Parameters:
name - The attribute name
namespace - The attribute namespace

getInstance

public static SAMLAttribute getInstance(org.w3c.dom.Element e)
                                 throws SAMLException
Locates an implementation class for an attribute and constructs it based on the DOM provided.

Parameters:
e - The root of a DOM containing the SAML attribute
Returns:
SAMLAttribute A constructed attribute object
Throws:
SAMLException - Thrown if an error occurs while constructing the object

getInstance

public static SAMLAttribute getInstance(java.io.InputStream in)
                                 throws SAMLException
Locates an implementation class for an attribute and constructs it based on the stream provided.

Parameters:
in - The stream to deserialize from
Returns:
SAMLAttribute A constructed attribute object
Throws:
SAMLException - Thrown if an error occurs while constructing the object

computeTypeDecl

protected java.lang.String computeTypeDecl(org.w3c.dom.Element e)
Computes the xsi:type attribute on each AttributeValue element with any supporting declarations created.

Parameters:
e - The root element of the attribute
Returns:
The xsi:type value to use

valueToDOM

protected void valueToDOM(java.lang.Object value,
                          org.w3c.dom.Element e)
                   throws SAMLException
Creates the DOM representation of an attribute value in the specified element.

The base implementation handles string values by creating a single Text node. Override this method in your subclass to perform more advanced processing.

Parameters:
value - The attribute value to DOM-ify
e - The AttributeValue element to write into
Throws:
SAMLException - Raised if an error occurs while creating the DOM

fromDOM

public void fromDOM(org.w3c.dom.Element e)
             throws SAMLException
Initialization of attribute from a DOM element.

Checks the attribute's syntactic validity. An exception is thrown if any problems are detected. The exception will contain a message describing the problem, and may wrap another exception.

Because attributes are generalized, this base method only handles attributes whose values are of uniform schema type. The attribute's schema type is set by the first xsi:type attribute found in the value list, if any.

The addValue method is used to actually process the values, and can be overridden to handle more complex values

Overrides:
fromDOM in class SAMLObject
Parameters:
e - Root element of a DOM tree
Throws:
SAMLException - Raised if an exception occurs while constructing the object.

getName

public java.lang.String getName()
Gets the AttributeName attribute of the SAML Attribute

Returns:
The name value

setName

public void setName(java.lang.String name)
Sets the AttributeName attribute of the SAML Attribute

Parameters:
name - The name value

getNamespace

public java.lang.String getNamespace()
Gets the AttributeNamespace attribute of the SAML Attribute

Returns:
The namespace value

setNamespace

public void setNamespace(java.lang.String namespace)
Sets the AttributeNamespace attribute of the SAML Attribute

Parameters:
namespace - The name value

getType

public QName getType()
Gets the value of the xsi:type attribute, if any, of the SAML Attribute

Returns:
The schema type value

setType

public void setType(QName type)
Sets the value of the xsi:type attribute, if any, of the SAML Attribute

Parameters:
type - The schema type value

getLifetime

public long getLifetime()
Gets the value's lifetime, in seconds

Returns:
The effective lifetime of the attribute value, in seconds (0 means infinite)

setLifetime

public void setLifetime(long lifetime)
Sets the value's lifetime, in seconds

Parameters:
lifetime - The effective lifetime of the attribute value, in seconds (0 means infinite)

getValues

public java.util.Iterator getValues()
Gets the values of the SAML Attribute

Returns:
An iterator over the values

accept

public boolean accept(org.w3c.dom.Element e)
Attribute acceptance hook used while consuming attributes from an assertion. Base class simply accepts anything. Override for desired behavior.

Parameters:
e - An AttributeValue element to check
Returns:
true iff the value is deemed acceptable

addValue

public boolean addValue(org.w3c.dom.Element e)
Imports a value to the state of the SAML Attribute, subject to acceptance.

The base version only supports a simple text node content model and uses Strings.

Override this method to perform advanced processing during XML import.

Parameters:
e - The AttributeValue element containing the value to add
Returns:
true iff the value was understandable

setValues

public void setValues(java.util.Collection values)
               throws SAMLException
Sets the values of the attribute

Parameters:
values - The values to use
Throws:
SAMLException - Raised if the value cannot be added to the attribute

addValue

public void addValue(java.lang.Object value)
              throws SAMLException
Adds a value to the attribute

Parameters:
value - The value to add
Throws:
SAMLException - Raised if the value cannot be properly added

removeValue

public void removeValue(int index)
                 throws java.lang.IndexOutOfBoundsException
Removes a value by position (zero-based)

Parameters:
index - The position of the value to remove
Throws:
java.lang.IndexOutOfBoundsException

toDOM

public org.w3c.dom.Node toDOM(org.w3c.dom.Document doc,
                              boolean xmlns)
                       throws SAMLException
Description copied from class: SAMLObject
Transforms the object into a DOM tree using an existing document context

Overrides:
toDOM in class SAMLObject
Parameters:
doc - A Document object to use in manufacturing the tree
xmlns - Include namespace(s) on root element?
Returns:
Root element node of the DOM tree capturing the object
Throws:
SAMLException - Raised if the object is incompletely defined
See Also:
SAMLObject.toDOM(org.w3c.dom.Document,boolean)

checkValidity

public void checkValidity()
                   throws SAMLException
Description copied from class: SAMLObject
Evaluates the object's content to see if it is currently valid if serialized. Does not evaluate embedded objects except on the basis of whether they exist. For example, an Assertion must have a Statement, but if an invalid statement is added, SAMLAssertion.isValid() would succeed, while SAMLStatement.isValid would raise an exception.

Overrides:
checkValidity in class SAMLObject
Throws:
SAMLException - Raised if the serialized object would be invalid SAML, excluding any embedded objects
See Also:
SAMLObject.checkValidity()

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Copies a SAML object such that no dependencies exist between the original and the copy. Does not clone values.

Overrides:
clone in class SAMLObject
Returns:
The new object
Throws:
java.lang.CloneNotSupportedException
See Also:
Object.clone()


Copyright ? 2002 UCAID. All Rights Reserved.