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

Diff for /pegasus/src/Pegasus/Common/CIMClassRep.cpp between version 1.86 and 1.90

version 1.86, 2008/06/19 17:57:00 version 1.90, 2008/12/01 17:49:47
Line 1 
Line 1 
 //%2006////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development  // Licensed to The Open Group (TOG) under one or more contributor license
 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.  // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;  // this work for additional information regarding copyright ownership.
 // IBM Corp.; EMC Corporation, The Open Group.  // Each contributor licenses this file to you under the OpenPegasus Open
 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;  // Source License; you may not use this file except in compliance with the
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.  // License.
 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;  
 // EMC Corporation; VERITAS Software Corporation; The Open Group.  
 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;  
 // EMC Corporation; Symantec Corporation; The Open Group.  
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy  // Permission is hereby granted, free of charge, to any person obtaining a
 // of this software and associated documentation files (the "Software"), to  // copy of this software and associated documentation files (the "Software"),
 // deal in the Software without restriction, including without limitation the  // to deal in the Software without restriction, including without limitation
 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 // sell copies of the Software, and to permit persons to whom the Software is  // and/or sell copies of the Software, and to permit persons to whom the
 // furnished to do so, subject to the following conditions:  // Software is furnished to do so, subject to the following conditions:
 // //
 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN  // The above copyright notice and this permission notice shall be included
 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  // in all copies or substantial portions of the Software.
 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT  
 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR  
 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT  
 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  
 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  
 // //
 //==============================================================================  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
   // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   //
   //////////////////////////////////////////////////////////////////////////
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 39 
Line 37 
 #include "CIMScope.h" #include "CIMScope.h"
 #include <Pegasus/Common/Tracer.h> #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/MessageLoader.h> #include <Pegasus/Common/MessageLoader.h>
 #include "CIMNameUnchecked.h"  
 #include "StrLit.h" #include "StrLit.h"
 #include "CIMInstanceRep.h" #include "CIMInstanceRep.h"
 #include "CIMPropertyInternal.h" #include "CIMPropertyInternal.h"
Line 155 
Line 152 
     if (!context)     if (!context)
         throw NullPointer();         throw NullPointer();
  
     PEG_TRACE_STRING(TRC_OBJECTRESOLUTION, Tracer::LEVEL4,      PEG_TRACE((TRC_OBJECTRESOLUTION, Tracer::LEVEL4,
         String("CIMClassRep::resolve  class = ") +          "CIMClassRep::resolve  class = %s, superclass = %s",
         _reference.getClassName().getString() + ", superclass = " +          (const char*)_reference.getClassName().getString().getCString(),
         _superClassName.getString());          (const char*)_superClassName.getString().getCString()));
  
     if (!_superClassName.isNull())     if (!_superClassName.isNull())
     {     {
Line 247 
Line 244 
             // insert it (setting the propagated flag). Otherwise, change             // insert it (setting the propagated flag). Otherwise, change
             // the class-origin and propagated flag accordingly.             // the class-origin and propagated flag accordingly.
  
             Uint32 index = PEG_NOT_FOUND;              Uint32 index = findProperty(superClassProperty.getName());
             /* ATTN: KS move to simpler version of the find  
             for (Uint32 j = m, n = _properties.size(); j < n; j++)  
             {  
                 if (_properties[j].getName() == superClassProperty.getName())  
                 {  
                     index = j;  
                     break;  
                 }  
             }  
             */  
             index = findProperty(superClassProperty.getName());  
  
             // If property exists in super class but not in this one, then             // If property exists in super class but not in this one, then
             // clone and insert it. Otherwise, the properties class             // clone and insert it. Otherwise, the properties class
Line 280 
Line 266 
                 // but not on the subclass's, then add it to the subclass's                 // but not on the subclass's, then add it to the subclass's
                 // property's qualifier list.                 // property's qualifier list.
                 CIMProperty subproperty = _properties[index];                 CIMProperty subproperty = _properties[index];
                 for (Uint32 i = 0, n = superproperty.getQualifierCount();                  for (Uint32 j = 0, qc = superproperty.getQualifierCount();
                      i < n; i++)                       j < qc; j++)
                 {                 {
                     Uint32 index = PEG_NOT_FOUND;  
                     CIMQualifier superClassQualifier =                     CIMQualifier superClassQualifier =
                         superproperty.getQualifier(i);                          superproperty.getQualifier(j);
                     const CIMName name = superClassQualifier.getName();                     const CIMName name = superClassQualifier.getName();
                     /* ATTN KS This is replacement find function.                      if (subproperty.findQualifier(name) == PEG_NOT_FOUND)
                     if (Uint32 j = subproperty.findQualifier(q.getName()) ==  
                         PEG_NOT_FOUND)  
                     {                     {
                         subproperty.addQualifier(superClassQualifier);                         subproperty.addQualifier(superClassQualifier);
                     }                     }
                     */  
                     for (Uint32 j = 0, m = subproperty.getQualifierCount();  
                          j < m;  
                          j++)  
                     {  
                         CIMConstQualifier q = subproperty.getQualifier(j);  
                         if (name.equal(q.getName()))  
                         {  
                             index = j;  
                             break;  
                         }  
                     }  // end comparison of subclass property's qualifiers  
                     if (index == PEG_NOT_FOUND)  
                     {  
                         subproperty.addQualifier(superClassQualifier);  
                     }  
                     /*  
                     if ((index = subproperty.findQualifier(name)) ==  
                         PEG_NOT_FOUND)  
                     {  
                         subproperty.addQualifier(superClassQualifier);  
                     }  
                     */  
                 } // end iteration over superclass property's qualifiers                 } // end iteration over superclass property's qualifiers
             }             }
         }         }


Legend:
Removed from v.1.86  
changed lines
  Added in v.1.90

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2