Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / zypp / ResObject.cc
index 0735439..5407b3a 100644 (file)
  *
 */
 
-#include <zypp/base/Logger.h>
 #include "zypp/ResObject.h"
 #include "zypp/sat/SolvAttr.h"
 #include "zypp/sat/Solvable.h"
 #include "zypp/Repository.h"
 #include "zypp/RepoInfo.h"
-#include "zypp/ProductInfo.h"
 #include "zypp/IdString.h"
 
+#include "zypp/ui/Selectable.h"
+
 using namespace zypp;
 using namespace std;
 
@@ -57,14 +57,6 @@ namespace zypp
 
   ///////////////////////////////////////////////////////////////////
 
-  bool ResObject::hasProductInfo() const
-  { return ProductInfo( *this ); } // this is basically one lookupIdAttribute call
-
-  ProductInfo ResObject::productInfo() const
-  { return ProductInfo( *this ); }
-
-  ///////////////////////////////////////////////////////////////////
-
   std::string ResObject::summary( const Locale & lang_r ) const
   { return lookupStrAttribute( sat::SolvAttr::summary, lang_r ); }
 
@@ -78,13 +70,35 @@ namespace zypp
   { return lookupStrAttribute( sat::SolvAttr::delnotify, lang_r ); }
 
   std::string ResObject::licenseToConfirm( const Locale & lang_r ) const
-  { return lookupStrAttribute( sat::SolvAttr::eula, lang_r ); }
+  {
+    std::string ret = lookupStrAttribute( sat::SolvAttr::eula, lang_r );
+    if ( ret.empty() && isKind<Product>() )
+    {
+      const RepoInfo & ri( repoInfo() );
+      if ( ri.needToAcceptLicense() || ! ui::Selectable::get( *this )->hasInstalledObj() )
+       ret = ri.getLicense( lang_r ); // bnc#908976: suppress informal license upon update
+    }
+    return ret;
+  }
+
+  bool ResObject::needToAcceptLicense() const
+  {
+    if ( isKind<Product>() )
+      return repoInfo().needToAcceptLicense( );
+    return true;
+  }
+
+  std::string ResObject::distribution() const
+  { return lookupStrAttribute( sat::SolvAttr::distribution ); }
+
+  CpeId ResObject::cpeId() const
+  { return CpeId( lookupStrAttribute( sat::SolvAttr::cpeid ), CpeId::noThrow ); }
 
   ByteCount ResObject::installSize() const
-  { return ByteCount( lookupNumAttribute( sat::SolvAttr::installsize ), ByteCount::K ); }
+  { return ByteCount( lookupNumAttribute( sat::SolvAttr::installsize ) ); }
 
   ByteCount ResObject::downloadSize() const
-  { return ByteCount( lookupNumAttribute( sat::SolvAttr::downloadsize ), ByteCount::K ); }
+  { return ByteCount( lookupNumAttribute( sat::SolvAttr::downloadsize ) ); }
 
   unsigned ResObject::mediaNr() const
   { return lookupNumAttribute( sat::SolvAttr::medianr ); }
@@ -95,13 +109,6 @@ namespace zypp
   Date ResObject::installtime() const
   { return Date( lookupNumAttribute( sat::SolvAttr::installtime ) ); }
 
-#warning DUMMY diskusage
-  const DiskUsage & ResObject::diskusage() const
-  {
-    static DiskUsage _du;
-    return _du;
-  }
-
    /////////////////////////////////////////////////////////////////
 } // namespace zypp
 ///////////////////////////////////////////////////////////////////
@@ -124,6 +131,7 @@ namespace zypp
     OUTS( Pattern );
     OUTS( Product );
     OUTS( SrcPackage );
+    OUTS( Application );
 #undef OUTS
     // unknow => return a plain ResObject
     return new ResObject( solvable_r );