Imported Upstream version 16.3.2
[platform/upstream/libzypp.git] / zypp / Patch.cc
index a7d81dc..b15f14d 100644 (file)
@@ -44,7 +44,7 @@ namespace zypp
   ///////////////////////////////////////////////////////////////////
 
   std::string Patch::category() const
-  { return lookupStrAttribute( sat::SolvAttr::patchcategory ); }
+  { return str::toLower(lookupStrAttribute( sat::SolvAttr::patchcategory )); }
 
   Patch::Category Patch::categoryEnum() const
   { return categoryEnum( category() ); }
@@ -52,6 +52,9 @@ namespace zypp
   bool Patch::isCategory( const std::string & category_r ) const
   { return( str::compareCI( category_r, category() ) == 0 ); }
 
+  bool Patch::isCategory( Categories category_r ) const
+  { return category_r.testFlag( categoryEnum() ); }
+
   Patch::Category Patch::categoryEnum( const std::string & category_r )
   {
     switch ( category_r[0] )
@@ -107,13 +110,29 @@ namespace zypp
        break;
     }
     // default:
+    INT << "Unrecognized Patch::Category string '" << category_r << "'" << endl;
     return CAT_OTHER;
   }
 
+  std::string asString( const Patch::Category & obj )
+  {
+    switch ( obj )
+    {
+      case Patch::CAT_OTHER:           return std::string( "other" );          break;
+      case Patch::CAT_YAST:            return std::string( "yast" );           break;
+      case Patch::CAT_SECURITY:                return std::string( "security" );       break;
+      case Patch::CAT_RECOMMENDED:     return std::string( "recommended" );    break;
+      case Patch::CAT_OPTIONAL:                return std::string( "optional" );       break;
+      case Patch::CAT_DOCUMENT:                return std::string( "document" );       break;
+    }
+    // make gcc happy:
+    return std::string( "other" );
+  }
+
   ///////////////////////////////////////////////////////////////////
 
   std::string Patch::severity() const
-  { return lookupStrAttribute( sat::SolvAttr::severity ); }
+  { return str::toLower(lookupStrAttribute( sat::SolvAttr::severity )); }
 
   Patch::SeverityFlag Patch::severityFlag() const
   { return severityFlag( severity() ); }
@@ -121,6 +140,9 @@ namespace zypp
   bool Patch::isSeverity( const std::string & severity_r ) const
   { return( str::compareCI( severity_r, severity() ) == 0 ); }
 
+  bool Patch::isSeverity( SeverityFlags severity_r ) const
+  { return severity_r.testFlag( severityFlag() ); }
+
   Patch::SeverityFlag Patch::severityFlag( const std::string & severity_r )
   {
     switch ( severity_r[0] )
@@ -160,6 +182,7 @@ namespace zypp
        break;
     }
     // default:
+    INT << "Unrecognized Patch::Severity string '" << severity_r << "'" << endl;
     return SEV_OTHER;
   }
 
@@ -167,8 +190,8 @@ namespace zypp
   {
     switch ( obj )
     {
-      case Patch::SEV_NONE:    return std::string( "unspecified" );    break;
       case Patch::SEV_OTHER:   return std::string( "unknown" );        break;
+      case Patch::SEV_NONE:    return std::string( "unspecified" );    break;
       case Patch::SEV_LOW:     return std::string( "low" );            break;
       case Patch::SEV_MODERATE:        return std::string( "moderate" );       break;
       case Patch::SEV_IMPORTANT:return std::string( "important" );     break;
@@ -179,8 +202,8 @@ namespace zypp
   }
 
   ///////////////////////////////////////////////////////////////////
-
-  std::string Patch::message( const Locale & lang_r ) const
+  //
+std::string Patch::message( const Locale & lang_r ) const
   { return lookupStrAttribute( sat::SolvAttr::message, lang_r ); }
 
   bool Patch::rebootSuggested() const
@@ -233,6 +256,18 @@ namespace zypp
     return interactiveWhenIgnoring();
   }
 
+  std::string asString( const Patch::InteractiveFlag & obj )
+  {
+    switch ( obj )
+    {
+      case Patch::NoFlags:     return "";              break;
+      case Patch::Reboot:      return "reboot";        break;
+      case Patch::Message:     return "message";       break;
+      case Patch::License:     return "license";       break;
+    }
+    return str::hexstring(obj);
+  }
+
   Patch::Contents Patch::contents() const
   {
     Contents result;