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

  1 karl  1.3 //%2005////////////////////////////////////////////////////////////////////////
  2 chuck 1.2 //
  3 karl  1.3 // 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.3 // 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           //
 30           // Authors: David Rosckes (rosckes@us.ibm.com)
 31           //          Bert Rivero (hurivero@us.ibm.com)
 32 chuck 1.2 //          Chuck Carmack (carmack@us.ibm.com)
 33           //          Brian Lucier (lucier@us.ibm.com)
 34           //
 35 aruran.ms 1.6 // Modified By: Aruran, IBM(ashanmug@in.ibm.com) for Bug# 3589
 36 chuck     1.2 //
 37               //%/////////////////////////////////////////////////////////////////////////////
 38               
 39               #ifndef Pegasus_CQLIdentifierRep_h
 40               #define Pegasus_CQLIdentifierRep_h
 41               
 42               #include <Pegasus/Common/Config.h>
 43               #include <Pegasus/CQL/Linkage.h>
 44               #include <Pegasus/Common/Array.h>
 45               #include <Pegasus/Common/CIMName.h>
 46               #include <Pegasus/Query/QueryCommon/QueryIdentifierRep.h>
 47               
 48               PEGASUS_NAMESPACE_BEGIN
 49               
 50               
 51               /** 
 52                 The CQLIdentifier class encapsulates
 53                 the different formats of the CQL property portion
 54                 of a CQLChainedIdentifier. 
 55               
 56                 For example, a CQLChainedIdentifier can have these parts:
 57 chuck     1.2  
 58                   Class.EmbeddedObject.Property
 59                   Class.Property
 60               
 61               
 62               The "Property" portion of the CQLChainedIdentifier can be
 63               in any of these 3 formats:
 64                  (a)  property name
 65                  (b)  property[3]     e.g. an array index
 66                  (c)  property#'OK'    e.g. a symbolic constant
 67                  (d)  *   (wildcard)
 68               
 69               In the future, there may be support added for a set of indices (ranges).
 70                 */
 71               class PEGASUS_CQL_LINKAGE CQLIdentifierRep: public QueryIdentifierRep
 72               {
 73                 public:
 74                   CQLIdentifierRep();
 75                   /**  The constructor for a CQLIdentifier object
 76 aruran.ms 1.6           takes a const string reference as input.  The string should contain the
 77 chuck     1.2           property portion of a CQLChainedIdentifier.
 78                   
 79                        The constructor parses the input string into the components of 
 80                        the property identifier. 
 81                   
 82                        Throws parsing errors.
 83                     */
 84 aruran.ms 1.6     CQLIdentifierRep(const String& identifier);
 85 chuck     1.2 
 86                   CQLIdentifierRep(const CQLIdentifierRep* rep);
 87               
 88                   ~CQLIdentifierRep();
 89               
 90                   CQLIdentifierRep& operator=(const CQLIdentifierRep& rhs);
 91               
 92                 private:
 93 aruran.ms 1.6 
 94                     /**   This method needs to continue to take a String object, not a reference nor a const
 95                           reference.  The reason being it changes the value of the parameter and that
 96                           changed value should not be returned to the caller.
 97                     */
 98               
 99 chuck     1.2     void parse(String indentifier);
100 chuck     1.4 
101                   static Char16 STAR;
102                   static Char16 HASH;
103                   static Char16 RBRKT;
104                   static Char16 LBRKT;
105                   static const char SCOPE[];
106 chuck     1.2 };
107               
108               PEGASUS_NAMESPACE_END
109               
110               #endif /* Pegasus_CQLIdentifier_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2