1 karl 1.4 //%2005////////////////////////////////////////////////////////////////////////
|
2 chuck 1.2 //
|
3 karl 1.4 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 chuck 1.2 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.4 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
9 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 chuck 1.2 //
12 // Permission is hereby granted, free of charge, to any person obtaining a copy
13 // of this software and associated documentation files (the "Software"), to
14 // deal in the Software without restriction, including without limitation the
15 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16 // sell copies of the Software, and to permit persons to whom the Software is
17 // furnished to do so, subject to the following conditions:
18 //
19 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
20 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
21 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
22 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
25 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //==============================================================================
|
29 karl 1.4
|
30 chuck 1.2 //
31 // Authors: David Rosckes (rosckes@us.ibm.com)
32 // Bert Rivero (hurivero@us.ibm.com)
33 // Chuck Carmack (carmack@us.ibm.com)
34 // Brian Lucier (lucier@us.ibm.com)
35 //
|
36 aruran.ms 1.6 // Modified By: Aruran, IBM(ashanmug@in.ibm.com) for Bug# 3588
|
37 chuck 1.2 //
38 //%/////////////////////////////////////////////////////////////////////////////
39
40 #ifndef Pegasus_CQLChainedIdentifier_h
41 #define Pegasus_CQLChainedIdentifier_h
42
43 #include <Pegasus/CQL/Linkage.h>
44 //#include <Pegasus/Common/Array.h>
45 #include <Pegasus/Common/ArrayInternal.h>
46 #include <Pegasus/Query/QueryCommon/QueryChainedIdentifier.h>
47 #include <Pegasus/CQL/CQLIdentifier.h>
48
49 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
50
51 PEGASUS_NAMESPACE_BEGIN
52 class PEGASUS_CQL_LINKAGE CQLFactory;
53 class PEGASUS_CQL_LINKAGE CQLChainedIdentifierRep;
54
55 /**
56 CQLChainedIdentifier class is used for parsing (not resolving)
57 the identifier portion of a CQL select statement.
58 chuck 1.2 A couple examples of a CQLIdentifier:
59
60 Class.EmbeddedObject.Property[3]
61 Class.Property#'OK'
62
63
64 The CQLChainedIdentifier class can parse and return each
65 section of a CQL identifier. The possible sections are:
66
67 class (optional)
68 zero or more embedded objects
69 property
70
71 Note: this must handle wildcard("*"), embedded objects, arrays, symbolic
72 constants, etc.
73 */
74 class PEGASUS_CQL_LINKAGE CQLChainedIdentifier : public QueryChainedIdentifier
75 {
76 public:
77
78 CQLChainedIdentifier();
|
79 humberto 1.3 /**
80 Constructor
81 Parses the string into the various components of a CQL identifier.
82 @param - inString. The raw string to be parsed into a CQLChainedIdentifier
83 @return - None.
84 @throws - None.
85 */
|
86 aruran.ms 1.6 CQLChainedIdentifier(const String& inString);
|
87 humberto 1.3
88 /**
89 The constructor for a CQLChainedIdentifier object.
90
91 @param - id. The CQLIdentifier to construct this object with.
92 @return - None.
93 @throws - None.
94 */
|
95 chuck 1.2 CQLChainedIdentifier(const CQLIdentifier & id);
96
|
97 humberto 1.3 /**
98 Copy Constructor
99
100 @param - cid. The CQLChainedIdentifier to construct this object with.
101 @return - None.
102 @throws - None.
103 */
|
104 chuck 1.2 CQLChainedIdentifier(const CQLChainedIdentifier& cid);
105
|
106 humberto 1.3 /**
107 Destructor
108
109 @param - None.
110 @return - None.
111 @throws - None.
112 */
|
113 chuck 1.2 ~CQLChainedIdentifier();
114
|
115 humberto 1.3 /**
116 Opertor=
117
118 @param - rhs. Right hand side of assignement operator.
119 @return - *this.
120 @throws - None.
121 */
|
122 chuck 1.2 CQLChainedIdentifier& operator=(const CQLChainedIdentifier& rhs);
123
|
124 humberto 1.3 /**
125 Operator[]. Allows indexed access into the CQLChainedIdentifier
126
127 @param - index. Location of data within the CQLChainedIdentifier
128 @return - CQLIdentifier. returns CQLIdentifer() if index is out of bounds.
129 @throws - None.
130 */
|
131 chuck 1.2 CQLIdentifier operator[](Uint32 index)const;
132
|
133 humberto 1.3 /**
134 Gets all of the CQLIdentifiers within the CQLChainedIdentifier
135
136 @param - None.
137 @return - Array<CQLIdentifier>.
138 @throws - None.
139 */
|
140 chuck 1.2 Array<CQLIdentifier> getSubIdentifiers()const;
141
|
142 humberto 1.3 /**
143 Gets the last CQLIdentifier in this objects Array of CQLIdentifiers
144
145 @param - None.
146 @return - CQLIdentifier.
147 @throws - None.
148 */
|
149 chuck 1.2 CQLIdentifier getLastIdentifier()const;
150
151 friend class CQLFactory;
152
153 private:
154
155 };
156
157 /*
158 #ifndef PEGASUS_ARRAY_T
159 #define PEGASUS_ARRAY_T CQLChainedIdentifier
160 #include <Pegasus/Common/ArrayInter.h>
161 #undef PEGASUS_ARRAY_T
162 #endif
163 */
164
165 PEGASUS_NAMESPACE_END
166 #endif
167 #endif /* Pegasus_CQLChainedIdentifier_h */
|