(file) Return to CQLIdentifier.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             // Authors: David Rosckes (rosckes@us.ibm.com)
 31             //          Bert Rivero (hurivero@us.ibm.com)
 32             //          Chuck Carmack (carmack@us.ibm.com)
 33             //          Brian Lucier (lucier@us.ibm.com)
 34             //
 35 david.dillard 1.6  // Modified By: David Dillard, VERITAS Software Corp.
 36                    //                  (david.dillard@veritas.com)
 37 aruran.ms     1.7  //              Aruran, IBM(ashanmug@in.ibm.com) for Bug# 3589
 38 chuck         1.2  //
 39                    //%/////////////////////////////////////////////////////////////////////////////
 40                    
 41                    #ifndef Pegasus_CQLIdentifier_h
 42                    #define Pegasus_CQLIdentifier_h
 43                    
 44 david.dillard 1.6  #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
 45                    
 46 chuck         1.2  #include <Pegasus/CQL/Linkage.h>
 47                    //#include <Pegasus/Common/Array.h>
 48                    #include <Pegasus/Common/ArrayInternal.h>
 49                    #include <Pegasus/Query/QueryCommon/QueryIdentifier.h>
 50                    
 51                    PEGASUS_NAMESPACE_BEGIN
 52                    
 53 mike          1.9  class CQLIdentifierRep;
 54 chuck         1.2  
 55 david.dillard 1.6  /**
 56 chuck         1.2    The CQLIdentifier class encapsulates
 57                      the different formats of the CQL property portion
 58 david.dillard 1.6    of a CQLChainedIdentifier.
 59 chuck         1.2  
 60                      For example, a CQLChainedIdentifier can have these parts:
 61 david.dillard 1.6  
 62 chuck         1.2      Class.EmbeddedObject.Property
 63                        Class.Property
 64                    
 65                    
 66                    The "Property" portion of the CQLChainedIdentifier can be
 67                    in any of these 3 formats:
 68                       (a)  property name
 69                       (b)  property[3]     e.g. an array index
 70                       (c)  property#'OK'    e.g. a symbolic constant
 71                       (d)  *   (wildcard)
 72                    
 73                    In the future, there may be support added for a set of indices (ranges).
 74                      */
 75                    class PEGASUS_CQL_LINKAGE CQLIdentifier: public QueryIdentifier
 76                    {
 77                      public:
 78 humberto      1.4      /**
 79                            Default constructor
 80 david.dillard 1.6  
 81 humberto      1.4          @param  -  None.
 82                            @return - None.
 83                            @throws - None.
 84                            <I><B>Experimental Interface</B></I><BR>
 85                        */
 86 chuck         1.2      CQLIdentifier();
 87 david.dillard 1.6  
 88 humberto      1.3      /**  The constructor for a CQLIdentifier object
 89                              takes a string as input.  The string should contain the
 90                              property portion of a CQLChainedIdentifier.
 91 david.dillard 1.6  
 92 humberto      1.3           The constructor parses the input string into the components of
 93                             the property identifier.
 94 david.dillard 1.6  
 95 humberto      1.3           @param - identifier.  The raw string to be parsed into a CQLIdentifier
 96 david.dillard 1.6          @return - None.
 97                             @throws - CQLIdentifierParseException
 98 humberto      1.4           <I><B>Experimental Interface</B></I><BR>
 99 humberto      1.3        */
100 aruran.ms     1.7      CQLIdentifier(const String& identifier);
101 chuck         1.2  
102 humberto      1.3      /**
103 david.dillard 1.6          Copy constructor
104 chuck         1.2  
105 david.dillard 1.6          @param - id.  The CQLIdentifier to copy construct from
106 humberto      1.3          @return - None.
107                            @throws - None.
108 humberto      1.4          <I><B>Experimental Interface</B></I><BR>
109 humberto      1.3      */
110 chuck         1.2      CQLIdentifier(const CQLIdentifier& id);
111                    
112 humberto      1.3      /**
113                            Constructs a CQLIdentifier from its base class
114 david.dillard 1.6  
115 humberto      1.3          @param - identifier.  The raw string to be parsed into a CQLIdentifier
116                            @return - None.
117                            @throws - None.
118 humberto      1.4          <I><B>Experimental Interface</B></I><BR>
119 humberto      1.3      */
120 chuck         1.2      CQLIdentifier(const QueryIdentifier& id);
121                    
122 humberto      1.4      /**
123                            Destructor
124 david.dillard 1.6  
125 humberto      1.4          @param  - None.
126                            @return - None.
127                            @throws - None.
128                            <I><B>Experimental Interface</B></I><BR>
129                        */
130 chuck         1.2      ~CQLIdentifier();
131                    
132 humberto      1.4      /**
133 david.dillard 1.6          Assignment operator
134                    
135 humberto      1.4          @param  - rhs.  The right hand side of the assignment operator
136                            @return - None.
137                            @throws - None.
138                            <I><B>Experimental Interface</B></I><BR>
139                        */
140 chuck         1.2      CQLIdentifier& operator=(const CQLIdentifier& rhs);
141                    
142                      private:
143                    
144                    };
145                    
146                    
147                    /*
148                    #ifndef PEGASUS_ARRAY_T
149                    #define PEGASUS_ARRAY_T CQLIdentifier
150                    #include <Pegasus/Common/ArrayInter.h>
151                    #undef PEGASUS_ARRAY_T
152                    */
153                    
154                    PEGASUS_NAMESPACE_END
155                    //#endif
156                    #endif
157                    #endif /* Pegasus_CQLIdentifier_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2