summaryrefslogtreecommitdiffstats
path: root/sdo-cpp/tags/cpp-sdo-1.0.incubating-M3/runtime/core/src/commonj/sdo/PropertyDefinition.h
blob: 0f6bb6be97b926169094bbf0041a6f71ffd2e401 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 *   
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/* $Rev$ $Date$ */

#ifndef _PROPERTYDefinition_H_
#define _PROPERTYDefinition_H_

#include "export.h"

#include <vector>
#include "commonj/sdo/SDOString.h"



namespace commonj
{
    namespace sdo
    {
     
        class PropertyDefinitionImpl;
        
/**
 * PropertyDefinitionImpl holds a property as defined by an XSD.
 * The XSD holds more information than does the SDO Property.
 * This class holds the extra information found as the XSD is
 * parsed.
 */
        class SDO_API PropertyDefinition
        {
            
        public:


            /*SDO_API*/ PropertyDefinition();
            PropertyDefinition(const PropertyDefinition& pd);
            PropertyDefinition& operator=(const PropertyDefinition& pd);

            /*SDO_API*/ virtual ~PropertyDefinition();

            PropertyDefinitionImpl* getPropertyDefinition();


                       
            // where this property is to be substituted for another
            /*SDO_API*/ void setSubstituteName(const char * name);
            /*SDO_API*/ void setSubstituteName(const SDOString& name);
            /*SDO_API*/ const char* getSubstituteName() const;

            /*SDO_API*/ void setSubstituteUri(const char* name);
            /*SDO_API*/ void setSubstituteUri(const SDOString& name);
            /*SDO_API*/ const char* getSubstituteUri() const;

            // where there are substitute names for this property.
            /*SDO_API*/ void addSubstitute(const char* name,
                const char* localname);
            /*SDO_API*/ void addSubstitute(const SDOString& name,
                const SDOString& localname);
            /*SDO_API*/ int getSubstituteCount() const;
            /*SDO_API*/ const char* getSubstituteNames(unsigned int index) const;
            /*SDO_API*/ const char* getSubstituteLocalNames(unsigned int index) const;

            
            /*SDO_API*/ void setAliases(const char* aliases);
            /*SDO_API*/ void setAliases(const SDOString& aliases);
            /*SDO_API*/ const char* getAliases() const;

            /*SDO_API*/ void setName(const char* name);
            /*SDO_API*/ void setName(const SDOString& name);
            /*SDO_API*/ const char* getName() const;
            
            /*SDO_API*/ void setLocalName(const char* name);
            /*SDO_API*/ void setLocalName(const SDOString& name);
            /*SDO_API*/ const char* getLocalName() const;

            /*SDO_API*/ void setType(const char* uri, const char* name);
            /*SDO_API*/ void setType(const SDOString& uri, const SDOString& name);
            /*SDO_API*/ const char * getTypeName() const;
            /*SDO_API*/ const char * getTypeUri() const;
            /*SDO_API*/ const char * getTypeFullName() const;
            /*SDO_API*/ const char * getTypeFullLocalName() const ;
            
            /*SDO_API*/ void setTypeFullLocalName(const char* name);
            /*SDO_API*/ void setTypeFullLocalName(const SDOString& name);

            /*SDO_API*/ void setDefaultValue(const char* value);
            /*SDO_API*/ void setDefaultValue(const SDOString& value);
            /*SDO_API*/ const char* getDefaultValue() const;

            /*SDO_API*/ bool getIsMany() const;
            /*SDO_API*/ bool getIsContainment() const;
            /*SDO_API*/ bool getIsReadOnly() const;
            /*SDO_API*/ bool getIsID() const;
            /*SDO_API*/ bool getIsIDREF() const;
            /*SDO_API*/ bool getIsReference() const;
            /*SDO_API*/ bool getIsElement() const;
            /*SDO_API*/ bool getIsQName() const;
            /*SDO_API*/ bool getIsSubstitute() const;

            /*SDO_API*/ void setIsMany(bool value);
            /*SDO_API*/ void setIsContainment(bool value);
            /*SDO_API*/ void setIsReadOnly(bool value);
            /*SDO_API*/ void setIsID(bool value);
            /*SDO_API*/ void setIsIDREF(bool value);
            /*SDO_API*/ void setIsReference(bool value);
            /*SDO_API*/ void setIsElement(bool value);
            /*SDO_API*/ void setIsQName(bool value);
            /*SDO_API*/ void setIsSubstitute(bool value);


        private:
            PropertyDefinitionImpl* propertydefinition;
            void copy(const PropertyDefinition& pd);
        };
    } // End - namespace sdo
} // End - namespace commonj


#endif //_PROPERTYDefinitionImpl_H_