shibsp::Attribute Class Reference

A resolved attribute. More...

#include <shibsp/attribute/Attribute.h>

Inheritance diagram for shibsp::Attribute:

shibsp::BinaryAttribute shibsp::ExtensibleAttribute shibsp::NameIDAttribute shibsp::ScopedAttribute shibsp::SimpleAttribute shibsp::XMLAttribute

List of all members.

Public Member Functions

const char * getId () const
 Returns the Attribute identifier.
const std::vector< std::string > & getAliases () const
 Returns all of the effective names for the Attribute.
std::vector< std::string > & getAliases ()
 Returns all of the effective names for the Attribute.
void setCaseSensitive (bool caseSensitive)
 Sets whether case sensitivity should apply to basic value comparisons.
void setInternal (bool internal)
 Sets whether the attribute should be exported for CGI use.
bool isCaseSensitive () const
 Indicates whether case sensitivity should apply to basic value comparisons.
bool isInternal () const
 Indicates whether the attribute should be exported for CGI use.
virtual size_t valueCount () const
 Returns the number of values.
virtual const std::vector
< std::string > & 
getSerializedValues () const
 Returns serialized Attribute values encoded as UTF-8 strings.
virtual void clearSerializedValues ()=0
 Informs the Attribute that values have changed and any serializations must be cleared.
virtual const char * getString (size_t index) const
 Gets the string equivalent of the value at the specified position (starting from zero).
virtual const char * getScope (size_t index) const
 Gets the "scope" of the value at the specified position (starting from zero).
virtual void removeValue (size_t index)
 Removes the value at the specified position (starting from zero).
virtual DDF marshall () const
 Marshalls an Attribute for remoting.
typedef AttributeAttributeFactory (DDF &in)
 A function that unmarshalls remoted data into the proper Attribute subclass.

Static Public Member Functions

static Attributeunmarshall (DDF &in)
 Unmarshalls a remoted Attribute.
static void registerFactory (const char *type, AttributeFactory *factory)
 Registers an AttributeFactory function for a given attribute "type".
static void deregisterFactory (const char *type)
 Deregisters an AttributeFactory function for a given attribute "type".
static void deregisterFactories ()
 Clears the map of factories.

Protected Member Functions

 Attribute (const std::vector< std::string > &ids)
 Constructor.
 Attribute (DDF &in)
 Constructs based on a remoted Attribute.

Protected Attributes

std::vector< std::string > m_serialized
 Maintains a copy of serialized attribute values, when possible.


Detailed Description

A resolved attribute.

Resolved attributes are a neutral construct that represent both simple and complex attribute data structures that might be found in SAML assertions or obtained from other sources.

Attributes consist of an id/name that is locally unique (that is, unique to a configuration at any given point in time) and zero or more values. Values can be of any type or structure, but will generally be made available to applications only if a serialized string form exists. More complex values can be used with access control plugins and other components that understand them, however.


Constructor & Destructor Documentation

shibsp::Attribute::Attribute ( const std::vector< std::string > &  ids  )  [protected]

Constructor.

Parameters:
ids array with primary identifier in first position, followed by any aliases

shibsp::Attribute::Attribute ( DDF in  )  [protected]

Constructs based on a remoted Attribute.

This allows Attribute objects to be recreated after marshalling. The DDF supplied must be a struct containing a single list member named with the Attribute's "id" and containing the values.

Parameters:
in input object containing marshalled Attribute


Member Function Documentation

const char* shibsp::Attribute::getId (  )  const

Returns the Attribute identifier.

Returns:
the Attribute identifier

const std::vector<std::string>& shibsp::Attribute::getAliases (  )  const

Returns all of the effective names for the Attribute.

Returns:
immutable array of identifiers, with the primary ID in the first position

std::vector<std::string>& shibsp::Attribute::getAliases (  ) 

Returns all of the effective names for the Attribute.

Returns:
mutable array of identifiers, with the primary ID in the first position

void shibsp::Attribute::setCaseSensitive ( bool  caseSensitive  ) 

Sets whether case sensitivity should apply to basic value comparisons.

Parameters:
caseSensitive true iff value comparisons should be case sensitive

void shibsp::Attribute::setInternal ( bool  internal  ) 

Sets whether the attribute should be exported for CGI use.

Parameters:
internal true iff the attribute should NOT be exported

bool shibsp::Attribute::isCaseSensitive (  )  const

Indicates whether case sensitivity should apply to basic value comparisons.

Returns:
true iff value comparisons should be case sensitive

bool shibsp::Attribute::isInternal (  )  const

Indicates whether the attribute should be exported for CGI use.

Returns:
true iff the attribute should NOT be exported

virtual size_t shibsp::Attribute::valueCount (  )  const [virtual]

Returns the number of values.

Returns:
number of values

Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, and shibsp::XMLAttribute.

virtual const std::vector<std::string>& shibsp::Attribute::getSerializedValues (  )  const [virtual]

Returns serialized Attribute values encoded as UTF-8 strings.

Returns:
an immutable vector of values

Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, and shibsp::XMLAttribute.

virtual const char* shibsp::Attribute::getString ( size_t  index  )  const [virtual]

Gets the string equivalent of the value at the specified position (starting from zero).

Parameters:
index position of value
Returns:
the specified value in its "string" form, or nullptr if undefined

Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, and shibsp::XMLAttribute.

virtual const char* shibsp::Attribute::getScope ( size_t  index  )  const [virtual]

Gets the "scope" of the value at the specified position (starting from zero).

Parameters:
index position of value
Returns:
the specified value's "scope", or nullptr if attribute is unscoped

Reimplemented in shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, and shibsp::ScopedAttribute.

virtual void shibsp::Attribute::removeValue ( size_t  index  )  [virtual]

Removes the value at the specified position (starting from zero).

Parameters:
index position of value to remove

Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, and shibsp::XMLAttribute.

virtual DDF shibsp::Attribute::marshall (  )  const [virtual]

Marshalls an Attribute for remoting.

This allows Attribute objects to be communicated across process boundaries without excess XML parsing. The DDF returned must be a struct containing a single list member named with the Attribute's "id". The name of the struct should contain the registered name of the Attribute implementation.

Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, shibsp::SimpleAttribute, and shibsp::XMLAttribute.

static Attribute* shibsp::Attribute::unmarshall ( DDF in  )  [static]

Unmarshalls a remoted Attribute.

Parameters:
in remoted Attribute data
Returns:
a resolved Attribute of the proper subclass

typedef Attribute* shibsp::Attribute::AttributeFactory ( DDF in  ) 

A function that unmarshalls remoted data into the proper Attribute subclass.

static void shibsp::Attribute::registerFactory ( const char *  type,
AttributeFactory *  factory 
) [static]

Registers an AttributeFactory function for a given attribute "type".

Parameters:
type string used at the root of remoted Attribute structures
factory factory function

static void shibsp::Attribute::deregisterFactory ( const char *  type  )  [static]

Deregisters an AttributeFactory function for a given attribute "type".

Parameters:
type string used at the root of remoted Attribute structures


Member Data Documentation

std::vector<std::string> shibsp::Attribute::m_serialized [mutable, protected]

Maintains a copy of serialized attribute values, when possible.

Implementations should maintain the array when values are added or removed.


The documentation for this class was generated from the following file:

Generated on Tue Jun 18 02:31:23 2013 for shibboleth-2.5.2 by  doxygen 1.5.6