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

Diff for /pegasus/src/Pegasus/Common/CIMQualifierList.h between version 1.27 and 1.42

version 1.27, 2002/08/20 17:39:37 version 1.42, 2008/12/01 17:49:50
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 //  
 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,  
 // The Open Group, Tivoli Systems  
 //  
 // Permission is hereby granted, free of charge, to any person obtaining a copy  
 // of this software and associated documentation files (the "Software"), to  
 // deal in the Software without restriction, including without limitation the  
 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  
 // sell copies of the Software, and to permit persons to whom the Software is  
 // furnished to do so, subject to the following conditions:  
 //  
 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN  
 // ALL COPIES OR SUBSTANTIAL PORTIONS OF 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.  
 // //
 //==============================================================================  // Licensed to The Open Group (TOG) under one or more contributor license
   // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
   // this work for additional information regarding copyright ownership.
   // Each contributor licenses this file to you under the OpenPegasus Open
   // Source License; you may not use this file except in compliance with the
   // License.
   //
   // Permission is hereby granted, free of charge, to any person obtaining a
   // copy of this software and associated documentation files (the "Software"),
   // to deal in the Software without restriction, including without limitation
   // the rights to use, copy, modify, merge, publish, distribute, sublicense,
   // and/or sell copies of the Software, and to permit persons to whom the
   // Software is furnished to do so, subject to the following conditions:
   //
   // The above copyright notice and this permission notice shall be included
   // in all copies or substantial portions of 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.
 // //
 // Author: Mike Brasher (mbrasher@bmc.com)  //////////////////////////////////////////////////////////////////////////
 //  
 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company  
 //                (carolann_graves@hp.com)  
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 33 
Line 34 
  
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
 #include <Pegasus/Common/Linkage.h> #include <Pegasus/Common/Linkage.h>
   #include <Pegasus/Common/Constants.h>
 #include <Pegasus/Common/CIMName.h> #include <Pegasus/Common/CIMName.h>
 #include <Pegasus/Common/CIMQualifier.h> #include <Pegasus/Common/CIMQualifier.h>
 #include <Pegasus/Common/CIMScope.h> #include <Pegasus/Common/CIMScope.h>
 #include <Pegasus/Common/Array.h> #include <Pegasus/Common/Array.h>
 #include <Pegasus/Common/Pair.h> #include <Pegasus/Common/Pair.h>
   #include <Pegasus/Common/Buffer.h>
   #include <Pegasus/Common/OrderedSet.h>
  
  
 /* ATTN: P2 KS 25 Mar 2002 - The function names are a mismash of local and taken  /*  ATTN: P2 KS 25 Mar 2002 - The function names are a mismash of local and
    from the class and instance functions.  Thus, we have getCount but getQualifier      taken from the class and instance functions.  Thus, we have getCount but
    This causes confusion with the functions in class and instance which are specifically      getQualifier.  This causes confusion with the functions in class and
    getQualifier.  We should clean up so the names here remove the Qualifier portion.      instance which are specifically getQualifier.  We should clean up so the
       names here remove the Qualifier portion.
 */ */
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 class DeclContext; class DeclContext;
  
   /* ATTN: KS P3 DEFER 1 May 2002.
 /* ATTN: KS P3 DEFER 1 May 2002. We have list processors (really array processors) for      We have list processors (really array processors) for
     qualifiers, properties, methods(???) but they are all slightly different.     qualifiers, properties, methods(???) but they are all slightly different.
     Should we create a common base??     Should we create a common base??
 */ */
Line 83 
Line 88 
         return _qualifiers.size();         return _qualifiers.size();
     }     }
  
     /** getQualifer - Gets the qaulifier defined at the position provided      /** getQualifer - Gets the qaulifier defined at the index provided
         in the Qualifier list.         in the Qualifier list.
         @param pos - The position in the qualifierlist containing the          @param index - The position in the qualifierlist containing the
         qualifier.         qualifier.
         @return CIMQualifier object.         @return CIMQualifier object.
         @exception - Throws OutofBounds exception of pso not within the         @exception - Throws OutofBounds exception of pso not within the
         qualifier list.         qualifier list.
         ATTN: P0 KS Mar 2002 Add the outofbounds exception.         ATTN: P0 KS Mar 2002 Add the outofbounds exception.
     */     */
     CIMQualifier& getQualifier(Uint32 pos);      CIMQualifier& getQualifier(Uint32 index);
  
     const CIMQualifier& getQualifier(Uint32 pos) const      const CIMQualifier& getQualifier(Uint32 index) const
     {     {
         return _qualifiers[pos];          return _qualifiers[index];
     }     }
  
     /** removeQualifier - Removes the Qualifier defined by     /** removeQualifier - Removes the Qualifier defined by
         the pos parameter          the index parameter
         @exception IndexOutOfBoundsException if pos not within          @exception IndexOutOfBoundsException if index not within
         range of current qualifiers.         range of current qualifiers.
     */     */
     void removeQualifier(Uint32 pos);      void removeQualifier(Uint32 index);
   
       /**
           Removes all the qualifiers from the list.
       */
       void clear();
  
     /** find - Searches for a qualifier with the specified `     /** find - Searches for a qualifier with the specified `
         input name if it exists in the class         input name if it exists in the class
Line 124 
Line 134 
  
     Boolean exists(const CIMName& name) const     Boolean exists(const CIMName& name) const
     {     {
         return (((find(name)) == PEG_NOT_FOUND)? false : true);          return (find(name) != PEG_NOT_FOUND);
     }     }
  
     /** isTrue - Determines if the qualifier defined by     /** isTrue - Determines if the qualifier defined by
Line 137 
Line 147 
     */     */
     Boolean isTrue(const CIMName& name) const;     Boolean isTrue(const CIMName& name) const;
  
     /// findReverse - See find      /** resolve - Resolves the qualifierList based on the information provided.
     Uint32 findReverse(const CIMName& name) const;          The resolved qualifiers are the result of validating and testing the
           qualifiers against the inherited qualifiers and qualifier declarations.
           The qualifier list contains the set of resolved qualifiers when the
           function is complete.
  
     /** resolve - Resolves the qualifierList based on the information provided. The resolved  
         qualifiers are the result of validating and testing the qualifiers against the  
         inherited qualifiers and qualifier declarations.  The qualifier list contains  
         the set of resolved qualifiers when the function is complete.  
         Resolution includes:         Resolution includes:
         1. Determining if the qualifier is declared (obtainable form declContext).          1. Determining if the qualifier is declared (obtainable form
              declContext).
         2. Qualifier is same type as declaration         2. Qualifier is same type as declaration
         3. Valid for the scope provided (Qualifier scope contains the provided scope).          3. Valid for the scope provided (Qualifier scope contains the provided
              scope).
         4. Whether qualifier can be overridden.         4. Whether qualifier can be overridden.
         5. Whether it should be propagated to subclass         5. Whether it should be propagated to subclass
         If a qualifier can be overridden it is put into the qualifiers array.         If a qualifier can be overridden it is put into the qualifiers array.
         @param declContext  Declaration context for this resolution (ex repository, simple)  
           @param declContext  Declaration context for this resolution (ex
           repository, simple)
         @param nameSpace Namespace in which to find the declaration.         @param nameSpace Namespace in which to find the declaration.
         @param scope - Scope of the entity doing the resolution (ex. Class, association, etc.)          @param scope - Scope of the entity doing the resolution (ex. Class,
           association, etc.)
         @param isInstancePart - TBD         @param isInstancePart - TBD
         @param inheritedQualifiers - CimQualifierList defining List of inherited qualifiers          @param inheritedQualifiers - CimQualifierList defining List of
                 @param propagateQualifiers Boolean indicator whether to propagate qualifiers.          inherited qualifiers
         @return          @param propagateQualifiers Boolean indicator whether to propagate
           qualifiers.
         @exception - There are a number of different         @exception - There are a number of different
     */     */
     void resolve(     void resolve(
         DeclContext* declContext,         DeclContext* declContext,
         const String& nameSpace,          const CIMNamespaceName & nameSpace,
         CIMScope scope,         CIMScope scope,
         Boolean isInstancePart,         Boolean isInstancePart,
         CIMQualifierList& inheritedQualifiers,         CIMQualifierList& inheritedQualifiers,
         Boolean propagateQualifiers);         Boolean propagateQualifiers);
  
     ///     ///
     void toXml(Array<Sint8>& out) const;  
   
     ///  
     void toMof(Array<Sint8>& out) const;  
   
     ///  
     void print(PEGASUS_STD(ostream) &o=PEGASUS_STD(cout)) const;     void print(PEGASUS_STD(ostream) &o=PEGASUS_STD(cout)) const;
  
     ///     ///
Line 183 
Line 192 
     ///     ///
     void cloneTo(CIMQualifierList& x) const;     void cloneTo(CIMQualifierList& x) const;
  
       Boolean isKey() const;
   
       /// Add qualifier without checking whether it already exists.
       CIMQualifierList& addUnchecked(const CIMQualifier& qualifier);
   
 private: private:
  
     Array<CIMQualifier> _qualifiers;      typedef OrderedSet<CIMQualifier,
                          CIMQualifierRep,
                          PEGASUS_QUALIFIER_ORDEREDSET_HASHSIZE> QualifierSet;
       QualifierSet _qualifiers;
   
       /** Index of key qualifier or the meaning is as follows:
              PEGASUS_ORDEREDSET_INDEX_NOTFOUND --
                  there is no key qualifier in the list.
              PEGASUS_ORDEREDSET_INDEX_UNKNOWN --
                  the index is unresolved.
       */
       Uint32 _keyIndex;
   
       friend class CIMPropertyInternal;
 }; };
  
   /**
       Applies a specified qualifier list to a specified object, using an
       addQualifier method which is expected to exist for the object type.
       @param qualifierList The CIMQualifierList to apply to the object.
       @param object The object to which to apply the qualifierList.
   */
   template <class T>
   void applyQualifierList(CIMQualifierList& qualifierList, T& object)
   {
       for (Uint32 i = 0; i < qualifierList.getCount(); i++)
       {
           object.addQualifier(qualifierList.getQualifier(i));
       }
       qualifierList.clear();
   }
   
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END
  
 #endif /* Pegasus_QualifierList_h */ #endif /* Pegasus_QualifierList_h */


Legend:
Removed from v.1.27  
changed lines
  Added in v.1.42

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2