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

 1 karl  1.1 //%LICENSE////////////////////////////////////////////////////////////////
 2           //
 3           // 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           //
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           //
17           // The above copyright notice and this permission notice shall be included
18           // in all copies or substantial portions of the Software.
19           //
20           // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21           // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 karl  1.1 // 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           //
28           //////////////////////////////////////////////////////////////////////////
29           //
30           //%/////////////////////////////////////////////////////////////////////////////
31           
32           #include "FQLQueryExpressionRep.h"
33           #include "FQLParser.h"
34           #include "FQLInstancePropertySource.h"
35           #include "FQLQueryStatement.h"
36           
37           PEGASUS_NAMESPACE_BEGIN
38           
39           
40           const CIMPropertyList FQLQueryExpressionRep::getPropertyList() const
41           {
42              PEGASUS_ASSERT(false);
43 karl  1.2    return CIMPropertyList();
44 karl  1.1 }
45           
46           FQLQueryExpressionRep::~FQLQueryExpressionRep()
47           {
48              if (_stmt) delete _stmt;
49           }
50           
51           void FQLQueryExpressionRep::_parse()
52           {
53              if (_queryLanguage=="DMTF:FQL")
54              {
55                 _stmt = new FQLQueryStatement();
56                 FQLParser::parse(_query, *_stmt);
57              }
58              else
59              {
60                   PEGASUS_CIM_EXCEPTION(CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED,
61                       _queryLanguage);
62              }
63           }
64           
65 karl  1.1 Boolean FQLQueryExpressionRep::evaluate(const CIMInstance & inst) const
66           {
67               if (_stmt == NULL)
68               {
69                   ((FQLQueryExpressionRep*)this)->_parse();
70               }
71           
72               FQLInstancePropertySource ips(inst);
73               try
74               {
75                  if (_stmt->evaluateQuery(&ips))
76                  {
77                      return true;
78                  }
79               }
80               catch (...)
81               {
82                    return false;
83               }
84               return false;
85           }
86 karl  1.1 
87           void FQLQueryExpressionRep::applyProjection(CIMInstance & ci,
88               Boolean allowMissing)
89           {
90              PEGASUS_ASSERT(false);
91           }
92           
93           PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2