Set fourth file version digit to signify rebuild.
[shibboleth/cpp-xmltooling.git] / xmltooling / Namespace.cpp
1 /**
2  * Licensed to the University Corporation for Advanced Internet
3  * Development, Inc. (UCAID) under one or more contributor license
4  * agreements. See the NOTICE file distributed with this work for
5  * additional information regarding copyright ownership.
6  *
7  * UCAID licenses this file to you under the Apache License,
8  * Version 2.0 (the "License"); you may not use this file except
9  * in compliance with the License. You may obtain a copy of the
10  * License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
17  * either express or implied. See the License for the specific
18  * language governing permissions and limitations under the License.
19  */
20
21 /**
22  * Namespace.cpp
23  * 
24  * Representing XML namespace attributes.
25  */
26
27 #include "internal.h"
28 #include "Namespace.h"
29
30 using namespace xmltooling;
31
32 using xercesc::XMLString;
33
34 Namespace::Namespace(const XMLCh* uri, const XMLCh* prefix, bool alwaysDeclare, namespace_usage_t usage)
35     : m_pinned(alwaysDeclare), m_usage(usage)
36 {
37     setNamespaceURI(uri);
38     setNamespacePrefix(prefix);
39 }
40
41 Namespace::~Namespace()
42 {
43 }
44
45 void Namespace::setNamespacePrefix(const XMLCh* prefix)
46 {
47     if (prefix)
48         m_prefix=prefix;
49     else
50         m_prefix.erase();
51 }
52
53 void Namespace::setNamespaceURI(const XMLCh* uri)
54 {
55     if (uri)
56         m_uri=uri;
57     else
58         m_uri.erase();
59 }
60
61 bool xmltooling::operator<(const Namespace& op1, const Namespace& op2)
62 {
63     int i=XMLString::compareString(op1.getNamespaceURI(),op2.getNamespaceURI());
64     if (i<0)
65         return true;
66     else if (i==0)
67         return (XMLString::compareString(op1.getNamespacePrefix(),op2.getNamespacePrefix())<0);
68     else
69         return false;
70 }
71
72 bool xmltooling::operator==(const Namespace& op1, const Namespace& op2)
73 {
74     return (XMLString::equals(op1.getNamespacePrefix(), op2.getNamespacePrefix()) &&
75             XMLString::equals(op1.getNamespaceURI(), op2.getNamespaceURI()));
76 }