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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2