VS10 solution files, convert from NULL macro to nullptr.
[shibboleth/sp.git] / shibsp / attribute / SimpleAttribute.cpp
1 /*
2  *  Copyright 2009-2010 Internet2
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * SimpleAttribute.cpp
19  *
20  * An Attribute whose values are simple strings.
21  */
22
23 #include "internal.h"
24 #include "attribute/SimpleAttribute.h"
25
26 using namespace shibsp;
27 using namespace std;
28
29 namespace shibsp {
30     SHIBSP_DLLLOCAL Attribute* SimpleAttributeFactory(DDF& in) {
31         return new SimpleAttribute(in);
32     }
33 };
34
35 SimpleAttribute::SimpleAttribute(const vector<string>& ids) : Attribute(ids)
36 {
37 }
38
39 SimpleAttribute::SimpleAttribute(DDF& in) : Attribute(in)
40 {
41     DDF val = in.first().first();
42     while (val.string()) {
43         m_serialized.push_back(val.string());
44         val = in.first().next();
45     }
46 }
47
48 SimpleAttribute::~SimpleAttribute()
49 {
50 }
51
52 vector<string>& SimpleAttribute::getValues()
53 {
54     return m_serialized;
55 }
56
57 void SimpleAttribute::clearSerializedValues()
58 {
59     // Do nothing, since our values are already serialized.
60 }
61
62 DDF SimpleAttribute::marshall() const
63 {
64     DDF ddf = Attribute::marshall();
65     DDF vlist = ddf.first();
66     for (vector<string>::const_iterator i=m_serialized.begin(); i!=m_serialized.end(); ++i)
67         vlist.add(DDF(nullptr).string(i->c_str()));
68     return ddf;
69 }