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

  1 martin 1.10 //%LICENSE////////////////////////////////////////////////////////////////
  2 martin 1.11 //
  3 martin 1.10 // Licensed to The Open Group (TOG) under one or more contributor license
  4             // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5             // this work for additional information regarding copyright ownership.
  6             // Each contributor licenses this file to you under the OpenPegasus Open
  7             // Source License; you may not use this file except in compliance with the
  8             // License.
  9 martin 1.11 //
 10 martin 1.10 // Permission is hereby granted, free of charge, to any person obtaining a
 11             // copy of this software and associated documentation files (the "Software"),
 12             // to deal in the Software without restriction, including without limitation
 13             // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14             // and/or sell copies of the Software, and to permit persons to whom the
 15             // Software is furnished to do so, subject to the following conditions:
 16 martin 1.11 //
 17 martin 1.10 // The above copyright notice and this permission notice shall be included
 18             // in all copies or substantial portions of the Software.
 19 martin 1.11 //
 20 martin 1.10 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21 martin 1.11 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 martin 1.10 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23             // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24             // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25             // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26             // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27 martin 1.11 //
 28 martin 1.10 //////////////////////////////////////////////////////////////////////////
 29 chuck  1.2  //%/////////////////////////////////////////////////////////////////////////////
 30             
 31             #ifndef Pegasus_CQLChainedIdentifier_h
 32             #define Pegasus_CQLChainedIdentifier_h
 33             
 34             #include <Pegasus/CQL/Linkage.h>
 35             //#include <Pegasus/Common/Array.h>
 36             #include <Pegasus/Common/ArrayInternal.h>
 37             #include <Pegasus/Query/QueryCommon/QueryChainedIdentifier.h>
 38             #include <Pegasus/CQL/CQLIdentifier.h>
 39             
 40             #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
 41             
 42 kumpf  1.12 PEGASUS_NAMESPACE_BEGIN
 43 mike   1.8  class CQLFactory;
 44             class CQLChainedIdentifierRep;
 45 chuck  1.2  
 46 kumpf  1.12 /**
 47 chuck  1.2  CQLChainedIdentifier class is used for parsing (not resolving)
 48 kumpf  1.12 the identifier portion of a CQL select statement.
 49 chuck  1.2  A couple examples of a CQLIdentifier:
 50             
 51               Class.EmbeddedObject.Property[3]
 52               Class.Property#'OK'
 53             
 54             
 55             The CQLChainedIdentifier class can parse and return each
 56              section of a CQL identifier.  The possible sections are:
 57             
 58                  class (optional)
 59                  zero or more embedded objects
 60                  property
 61             
 62             Note:  this must handle wildcard("*"), embedded objects, arrays, symbolic
 63             constants, etc.
 64 karl   1.9  */
 65 chuck  1.2  class PEGASUS_CQL_LINKAGE CQLChainedIdentifier : public QueryChainedIdentifier
 66             {
 67               public:
 68             
 69                 CQLChainedIdentifier();
 70 kumpf  1.12     /**
 71                 Constructor
 72 humberto 1.3          Parses the string into the various components of a CQL identifier.
 73 karl     1.9          @param  - inString.  The raw string to be parsed into a
 74                                 CQLChainedIdentifier
 75 humberto 1.3          @return - None.
 76                       @throws - None.
 77                   */
 78 aruran.ms 1.6      CQLChainedIdentifier(const String& inString);
 79 kumpf     1.12 
 80                    /**
 81 karl      1.9      The constructor for a CQLChainedIdentifier object.
 82                
 83 humberto  1.3          @param  - id.  The CQLIdentifier to construct this object with.
 84                        @return - None.
 85                        @throws - None.
 86                    */
 87 chuck     1.2      CQLChainedIdentifier(const CQLIdentifier & id);
 88 kumpf     1.12 
 89 humberto  1.3      /**
 90                        Copy Constructor
 91 karl      1.9  
 92                        @param  - cid. The CQLChainedIdentifier to construct this object with.
 93 humberto  1.3          @return - None.
 94                        @throws - None.
 95                    */
 96 chuck     1.2      CQLChainedIdentifier(const CQLChainedIdentifier& cid);
 97                
 98 humberto  1.3      /**
 99                        Destructor
100 karl      1.9  
101 humberto  1.3          @param  - None.
102                        @return - None.
103                        @throws - None.
104                    */
105 chuck     1.2      ~CQLChainedIdentifier();
106                
107 humberto  1.3      /**
108                        Opertor=
109 karl      1.9  
110 humberto  1.3          @param  - rhs. Right hand side of assignement operator.
111                        @return - *this.
112                        @throws - None.
113                    */
114 chuck     1.2      CQLChainedIdentifier& operator=(const CQLChainedIdentifier& rhs);
115                
116 humberto  1.3      /**
117                        Operator[]. Allows indexed access into the CQLChainedIdentifier
118 karl      1.9  
119 humberto  1.3          @param  - index. Location of data within the CQLChainedIdentifier
120 karl      1.9          @return - CQLIdentifier.  returns CQLIdentifer() if index is
121                                  out of bounds.
122 humberto  1.3          @throws - None.
123                    */
124 chuck     1.2      CQLIdentifier operator[](Uint32 index)const;
125                
126 humberto  1.3      /**
127                        Gets all of the CQLIdentifiers within the CQLChainedIdentifier
128 karl      1.9  
129 humberto  1.3          @param  - None.
130                        @return - Array<CQLIdentifier>.
131                        @throws - None.
132                    */
133 chuck     1.2      Array<CQLIdentifier> getSubIdentifiers()const;
134                
135 humberto  1.3      /**
136                        Gets the last CQLIdentifier in this objects Array of CQLIdentifiers
137 karl      1.9  
138 humberto  1.3          @param  - None.
139                        @return - CQLIdentifier.
140                        @throws - None.
141                    */
142 chuck     1.2      CQLIdentifier getLastIdentifier()const;
143 kumpf     1.12 
144 chuck     1.2      friend class CQLFactory;
145                
146                  private:
147                
148                };
149                
150                /*
151                #ifndef PEGASUS_ARRAY_T
152                #define PEGASUS_ARRAY_T CQLChainedIdentifier
153                #include <Pegasus/Common/ArrayInter.h>
154                #undef PEGASUS_ARRAY_T
155                #endif
156                */
157                
158                PEGASUS_NAMESPACE_END
159                #endif
160                #endif /* Pegasus_CQLChainedIdentifier_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2