1 karl 1.8 //%2006////////////////////////////////////////////////////////////////////////
|
2 chuck 1.2 //
|
3 karl 1.5 // 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.5 // 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 karl 1.8 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 chuck 1.2 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
|
20 karl 1.8 //
|
21 chuck 1.2 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 // Authors: David Rosckes (rosckes@us.ibm.com)
33 // Bert Rivero (hurivero@us.ibm.com)
34 // Chuck Carmack (carmack@us.ibm.com)
35 // Brian Lucier (lucier@us.ibm.com)
36 //
|
37 david.dillard 1.6 // Modified By: David Dillard, VERITAS Software Corp.
38 // (david.dillard@veritas.com)
|
39 aruran.ms 1.7 // Aruran, IBM(ashanmug@in.ibm.com) for Bug# 3589
|
40 chuck 1.2 //
41 //%/////////////////////////////////////////////////////////////////////////////
42
43 #ifndef Pegasus_CQLIdentifier_h
44 #define Pegasus_CQLIdentifier_h
45
|
46 david.dillard 1.6 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
47
|
48 chuck 1.2 #include <Pegasus/CQL/Linkage.h>
49 //#include <Pegasus/Common/Array.h>
50 #include <Pegasus/Common/ArrayInternal.h>
51 #include <Pegasus/Query/QueryCommon/QueryIdentifier.h>
52
53 PEGASUS_NAMESPACE_BEGIN
54
|
55 mike 1.9 class CQLIdentifierRep;
|
56 chuck 1.2
|
57 david.dillard 1.6 /**
|
58 chuck 1.2 The CQLIdentifier class encapsulates
59 the different formats of the CQL property portion
|
60 david.dillard 1.6 of a CQLChainedIdentifier.
|
61 chuck 1.2
62 For example, a CQLChainedIdentifier can have these parts:
|
63 david.dillard 1.6
|
64 chuck 1.2 Class.EmbeddedObject.Property
65 Class.Property
66
67
68 The "Property" portion of the CQLChainedIdentifier can be
69 in any of these 3 formats:
70 (a) property name
71 (b) property[3] e.g. an array index
72 (c) property#'OK' e.g. a symbolic constant
73 (d) * (wildcard)
74
75 In the future, there may be support added for a set of indices (ranges).
76 */
77 class PEGASUS_CQL_LINKAGE CQLIdentifier: public QueryIdentifier
78 {
79 public:
|
80 humberto 1.4 /**
81 Default constructor
|
82 david.dillard 1.6
|
83 humberto 1.4 @param - None.
84 @return - None.
85 @throws - None.
86 <I><B>Experimental Interface</B></I><BR>
87 */
|
88 chuck 1.2 CQLIdentifier();
|
89 david.dillard 1.6
|
90 humberto 1.3 /** The constructor for a CQLIdentifier object
91 takes a string as input. The string should contain the
92 property portion of a CQLChainedIdentifier.
|
93 david.dillard 1.6
|
94 humberto 1.3 The constructor parses the input string into the components of
95 the property identifier.
|
96 david.dillard 1.6
|
97 humberto 1.3 @param - identifier. The raw string to be parsed into a CQLIdentifier
|
98 david.dillard 1.6 @return - None.
99 @throws - CQLIdentifierParseException
|
100 humberto 1.4 <I><B>Experimental Interface</B></I><BR>
|
101 humberto 1.3 */
|
102 aruran.ms 1.7 CQLIdentifier(const String& identifier);
|
103 chuck 1.2
|
104 humberto 1.3 /**
|
105 david.dillard 1.6 Copy constructor
|
106 chuck 1.2
|
107 david.dillard 1.6 @param - id. The CQLIdentifier to copy construct from
|
108 humberto 1.3 @return - None.
109 @throws - None.
|
110 humberto 1.4 <I><B>Experimental Interface</B></I><BR>
|
111 humberto 1.3 */
|
112 chuck 1.2 CQLIdentifier(const CQLIdentifier& id);
113
|
114 humberto 1.3 /**
115 Constructs a CQLIdentifier from its base class
|
116 david.dillard 1.6
|
117 humberto 1.3 @param - identifier. The raw string to be parsed into a CQLIdentifier
118 @return - None.
119 @throws - None.
|
120 humberto 1.4 <I><B>Experimental Interface</B></I><BR>
|
121 humberto 1.3 */
|
122 chuck 1.2 CQLIdentifier(const QueryIdentifier& id);
123
|
124 humberto 1.4 /**
125 Destructor
|
126 david.dillard 1.6
|
127 humberto 1.4 @param - None.
128 @return - None.
129 @throws - None.
130 <I><B>Experimental Interface</B></I><BR>
131 */
|
132 chuck 1.2 ~CQLIdentifier();
133
|
134 humberto 1.4 /**
|
135 david.dillard 1.6 Assignment operator
136
|
137 humberto 1.4 @param - rhs. The right hand side of the assignment operator
138 @return - None.
139 @throws - None.
140 <I><B>Experimental Interface</B></I><BR>
141 */
|
142 chuck 1.2 CQLIdentifier& operator=(const CQLIdentifier& rhs);
143
144 private:
145
146 };
147
148
149 /*
150 #ifndef PEGASUS_ARRAY_T
151 #define PEGASUS_ARRAY_T CQLIdentifier
152 #include <Pegasus/Common/ArrayInter.h>
153 #undef PEGASUS_ARRAY_T
154 */
155
156 PEGASUS_NAMESPACE_END
157 //#endif
158 #endif
159 #endif /* Pegasus_CQLIdentifier_h */
|