(file) Return to WQLQueryExpressionRep.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / WQL

 1 schuur 1.1 //%2003////////////////////////////////////////////////////////////////////////
 2            //
 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            // IBM Corp.; EMC Corporation, The Open Group.
 7            //
 8            // Permission is hereby granted, free of charge, to any person obtaining a copy
 9            // of this software and associated documentation files (the "Software"), to
10            // deal in the Software without restriction, including without limitation the
11            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12            // sell copies of the Software, and to permit persons to whom the Software is
13            // furnished to do so, subject to the following conditions:
14            //
15            // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
16            // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
17            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
18            // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
19            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21            // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 schuur 1.1 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23            //
24            //==============================================================================
25            //
26            // Author: Adrian Schuur (schuur@de.ibm.com)
27            //
28            // Modified By:
29            //
30            //%/////////////////////////////////////////////////////////////////////////////
31            
32            #include "WQLQueryExpressionRep.h"
33            #include "WQLParser.h"
34            #include "WQLInstancePropertySource.h"
35            
36            PEGASUS_NAMESPACE_BEGIN
37            
38            
39            const CIMPropertyList WQLQueryExpressionRep::getPropertyList() const
40            {
41               if (_stmt==NULL) ((WQLQueryExpressionRep*)this)->_parse();
42            
43 schuur 1.1    return _stmt->getSelectPropertyList();
44            }
45            
46            WQLQueryExpressionRep::~WQLQueryExpressionRep() {
47               if (_stmt) delete _stmt;
48            }
49            
50            void WQLQueryExpressionRep::_parse()
51            {
52               if (_queryLanguage=="WQL") {
53                  _stmt=new WQLSelectStatement();
54                  WQLParser::parse(_query, *_stmt);
55               }
56               else throw
57                 PEGASUS_CIM_EXCEPTION(CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED, _queryLanguage);
58            }
59            
60            Boolean WQLQueryExpressionRep::evaluate(const CIMInstance & inst) const
61            {
62                if (_stmt==NULL) ((WQLQueryExpressionRep*)this)->_parse();
63            
64 schuur 1.1     WQLInstancePropertySource ips(inst);
65                try {
66                   if (_stmt->evaluateWhereClause(&ips)) return true;
67                }
68                catch (...) {
69                     return false;
70                }
71                return false; 
72            }
73            
74            void WQLQueryExpressionRep::applyProjection(CIMInstance & ci) {
75               if (_stmt==NULL) ((WQLQueryExpressionRep*)this)->_parse();
76            
77               _stmt->applyProjection(ci);
78            }
79            
80            PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2