00001 #ifndef __ARC_SEC_REQUESTATTRIBUTE_H__
00002 #define __ARC_SEC_REQUESTATTRIBUTE_H__
00003
00004 #include <list>
00005 #include <arc/XMLNode.h>
00006 #include <arc/Logger.h>
00007
00008 #include "AttributeValue.h"
00009 #include "AttributeFactory.h"
00010
00011 namespace ArcSec {
00012
00013
00014
00016 class RequestAttribute {
00017 public:
00021 RequestAttribute(Arc::XMLNode& node, AttributeFactory* attrfactory);
00022
00023 RequestAttribute();
00024
00025 virtual ~RequestAttribute();
00026
00027 public:
00028 Arc::XMLNode getNode();
00029 std::string getAttributeId () const;
00030 void setAttributeId (const std::string& attributeId);
00031 std::string getDataType () const;
00032 void setDataType (const std::string& dataType);
00033 std::string getIssuer () const;
00034 void setIssuer (const std::string& issuer);
00035
00036
00037
00038 virtual AttributeValue* getAttributeValue() const;
00039
00040 virtual AttributeFactory* getAttributeFactory() const;
00041
00043 RequestAttribute& duplicate(RequestAttribute&);
00044
00045
00046
00047
00048 private:
00049 static Arc::Logger logger;
00050
00052 Arc::XMLNode node_;
00053
00055 std::string id;
00056
00058 std::string type;
00059
00061 std::string issuer;
00062
00063
00064
00066 AttributeValue* attrval;
00067
00069 AttributeFactory* attrfactory;
00070 };
00071
00072 }
00073
00074 #endif