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

Diff for /pegasus/src/Pegasus/Common/CIMObjectPath.cpp between version 1.16 and 1.22

version 1.16, 2002/09/12 17:27:01 version 1.22, 2002/09/20 19:40:11
Line 32 
Line 32 
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
 #include <cctype> #include <cctype>
 #include <cstring> #include <cstring>
   #include <iostream>
 #include "HashTable.h" #include "HashTable.h"
 #include "CIMObjectPath.h" #include "CIMObjectPath.h"
 #include "Indentor.h" #include "Indentor.h"
Line 111 
Line 112 
     {     {
         for (Uint32 j = 0; j < n - 1; j++)         for (Uint32 j = 0; j < n - 1; j++)
         {         {
             if (String::compareNoCase(x[j].getName(), x[j+1].getName()) > 0)              if (String::compareNoCase(x[j].getName().getString(),
                                         x[j+1].getName().getString()) > 0)
             {             {
                 CIMKeyBinding t = x[j];                 CIMKeyBinding t = x[j];
                 x[j] = x[j+1];                 x[j] = x[j+1];
Line 183 
Line 185 
     _rep = new CIMKeyBindingRep(name, value, type);     _rep = new CIMKeyBindingRep(name, value, type);
 } }
  
   CIMKeyBinding::CIMKeyBinding(const CIMName& name, const CIMValue& value)
   {
       if (value.isArray())
       {
           throw TypeMismatchException();
       }
   
       String kbValue = value.toString();
       Type kbType;
   
       switch (value.getType())
       {
       case CIMTYPE_BOOLEAN:
           kbType = BOOLEAN;
           break;
       case CIMTYPE_CHAR16:
       case CIMTYPE_STRING:
       case CIMTYPE_DATETIME:
           kbType = STRING;
           break;
       case CIMTYPE_REFERENCE:
           kbType = REFERENCE;
           break;
       default:
           kbType = NUMERIC;
           break;
       }
   
       _rep = new CIMKeyBindingRep(name, kbValue, kbType);
   }
   
 CIMKeyBinding::~CIMKeyBinding() CIMKeyBinding::~CIMKeyBinding()
 { {
     delete _rep;     delete _rep;
Line 224 
Line 257 
     _rep->_type = type;     _rep->_type = type;
 } }
  
   Boolean CIMKeyBinding::equal(CIMValue value)
   {
       if (value.isArray())
       {
           return false;
       }
   
       CIMValue kbValue;
   
       try
       {
           switch (value.getType())
           {
           case CIMTYPE_CHAR16:
               if (getType() != STRING) return false;
               kbValue.set(getValue()[0]);
               break;
           case CIMTYPE_DATETIME:
               if (getType() != STRING) return false;
               kbValue.set(CIMDateTime(getValue()));
               break;
           case CIMTYPE_STRING:
               if (getType() != STRING) return false;
               kbValue.set(getValue());
               break;
           case CIMTYPE_REFERENCE:
               if (getType() != REFERENCE) return false;
               kbValue.set(CIMObjectPath(getValue()));
               break;
           case CIMTYPE_BOOLEAN:
               if (getType() != BOOLEAN) return false;
               kbValue = XmlReader::stringToValue(0, getValue().getCString(),
                                                  value.getType());
               break;
           default:  // Numerics
               if (getType() != NUMERIC) return false;
               kbValue = XmlReader::stringToValue(0, getValue().getCString(),
                                                  value.getType());
               break;
           }
       }
       catch (Exception&)
       {
           return false;
       }
   
       return value.equal(kbValue);
   }
   
 Boolean operator==(const CIMKeyBinding& x, const CIMKeyBinding& y) Boolean operator==(const CIMKeyBinding& x, const CIMKeyBinding& y)
 { {
     return     return
Line 352 
Line 434 
    setKeyBindings(keyBindings);    setKeyBindings(keyBindings);
 } }
  
 Boolean CIMObjectPath::_parseHostElement(  Boolean _parseHostElement(
     const String& objectName,     const String& objectName,
     char*& p,     char*& p,
     String& host)     String& host)
Line 423 
Line 505 
     return true;     return true;
 } }
  
 Boolean CIMObjectPath::_parseNamespaceElement(  Boolean _parseNamespaceElement(
     const String& objectName,     const String& objectName,
     char*& p,     char*& p,
     CIMNamespaceName& nameSpace)     CIMNamespaceName& nameSpace)
Line 510 
Line 592 
     operation of retrieving the class definition to determine     operation of retrieving the class definition to determine
     the key property types.     the key property types.
 */ */
 void CIMObjectPath::_parseKeyBindingPairs(  void _parseKeyBindingPairs(
     const String& objectName,     const String& objectName,
     char*& p,     char*& p,
     Array<CIMKeyBinding>& keyBindings)     Array<CIMKeyBinding>& keyBindings)
Line 528 
Line 610 
         }         }
  
         *equalsign = 0;         *equalsign = 0;
         CIMName keyString(p);  
  
         if (!CIMName::legal(keyString))          if (!CIMName::legal(p))
             throw MalformedObjectNameException(objectName);             throw MalformedObjectNameException(objectName);
  
           CIMName keyName (p);
   
         // Get the value part:         // Get the value part:
  
         String valueString;         String valueString;
Line 637 
Line 720 
             p = p + n;             p = p + n;
         }         }
  
         keyBindings.append(CIMKeyBinding(keyString, valueString, type));          keyBindings.append(CIMKeyBinding(keyName.getString (), valueString,
               type));
  
         if (*p)         if (*p)
         {         {
Line 691 
Line 775 
         // ATTN: remove this later: a reference should only be able to hold         // ATTN: remove this later: a reference should only be able to hold
         // an instance name.         // an instance name.
  
         _rep->_className = p;          _rep->_className = CIMName (p);
         return;         return;
     }     }
  
Line 773 
Line 857 
  
     if (!_rep->_nameSpace.isNull() || _rep->_host.size())     if (!_rep->_nameSpace.isNull() || _rep->_host.size())
     {     {
         objectName.append(_rep->_nameSpace);          objectName.append(_rep->_nameSpace.getString ());
         objectName.append(":");         objectName.append(":");
     }     }
  
     // Get the class name:     // Get the class name:
  
     objectName.append(getClassName());      objectName.append(getClassName().getString ());
  
     //     //
     //  ATTN-CAKG-P2-20020726:  The following condition does not correctly     //  ATTN-CAKG-P2-20020726:  The following condition does not correctly
Line 797 
Line 881 
  
         for (Uint32 i = 0, n = keyBindings.size(); i < n; i++)         for (Uint32 i = 0, n = keyBindings.size(); i < n; i++)
         {         {
             objectName.append(keyBindings[i].getName());              objectName.append(keyBindings[i].getName().getString ());
             objectName.append('=');             objectName.append('=');
  
             const String& value = _escapeSpecialCharacters(             const String& value = _escapeSpecialCharacters(
Line 830 
Line 914 
  
     // ATTN-RK-P2-20020510: Need to make hostname and namespace lower case?     // ATTN-RK-P2-20020510: Need to make hostname and namespace lower case?
  
     String classNameLower = ref._rep->_className;      String classNameLower = ref._rep->_className.getString ();
     classNameLower.toLower();     classNameLower.toLower();
     ref._rep->_className = classNameLower;     ref._rep->_className = classNameLower;
  
     for (Uint32 i = 0, n = ref._rep->_keyBindings.size(); i < n; i++)     for (Uint32 i = 0, n = ref._rep->_keyBindings.size(); i < n; i++)
     {     {
         String keyBindingNameLower = ref._rep->_keyBindings[i]._rep->_name;          String keyBindingNameLower =
               ref._rep->_keyBindings[i]._rep->_name.getString ();
         keyBindingNameLower.toLower();         keyBindingNameLower.toLower();
         ref._rep->_keyBindings[i]._rep->_name = keyBindingNameLower;         ref._rep->_keyBindings[i]._rep->_name = keyBindingNameLower;
     }     }
Line 870 
Line 955 
     return !operator==(x, y);     return !operator==(x, y);
 } }
  
   #ifndef PEGASUS_REMOVE_DEPRECATED
 PEGASUS_STD(ostream)& operator<<( PEGASUS_STD(ostream)& operator<<(
     PEGASUS_STD(ostream)& os,     PEGASUS_STD(ostream)& os,
     const CIMObjectPath& x)     const CIMObjectPath& x)
 { {
     return os << x.toString();     return os << x.toString();
 } }
   #endif
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.16  
changed lines
  Added in v.1.22

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2