(file) Return to CQLChainedIdentifier.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / CQL

  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 */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2