Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / zypp / ResObject.cc
index 3d7662a..5407b3a 100644 (file)
 */
 
 #include "zypp/ResObject.h"
+#include "zypp/sat/SolvAttr.h"
+#include "zypp/sat/Solvable.h"
+#include "zypp/Repository.h"
+#include "zypp/RepoInfo.h"
+#include "zypp/IdString.h"
+
+#include "zypp/ui/Selectable.h"
 
 using namespace zypp;
 using namespace std;
 
 ///////////////////////////////////////////////////////////////////
 namespace zypp
-{
+{ /////////////////////////////////////////////////////////////////
 
   IMPL_PTR_TYPE(ResObject);
 
+  ///////////////////////////////////////////////////////////////////
+  //
+  //   METHOD NAME : ResObject::ResObject
+  //   METHOD TYPE : Ctor
+  //
   ResObject::ResObject( const sat::Solvable & solvable_r )
   : Resolvable( solvable_r )
   {}
 
+  ///////////////////////////////////////////////////////////////////
+  //
+  //   METHOD NAME : ResObject::~ResObject
+  //   METHOD TYPE : Dtor
+  //
   ResObject::~ResObject()
   {}
 
+  ///////////////////////////////////////////////////////////////////
+  //
+  //   METHOD NAME : ResObject::dumpOn
+  //   METHOD TYPE : std::ostream &
+  //
   std::ostream & ResObject::dumpOn( std::ostream & str ) const
   {
     return Resolvable::dumpOn( str );
   }
 
+  ///////////////////////////////////////////////////////////////////
+
+  std::string ResObject::summary( const Locale & lang_r ) const
+  { return lookupStrAttribute( sat::SolvAttr::summary, lang_r ); }
+
+  std::string ResObject::description( const Locale & lang_r ) const
+  { return lookupStrAttribute( sat::SolvAttr::description, lang_r ); }
+
+  std::string ResObject::insnotify( const Locale & lang_r ) const
+  { return lookupStrAttribute( sat::SolvAttr::insnotify, lang_r ); }
+
+  std::string ResObject::delnotify( const Locale & lang_r ) const
+  { return lookupStrAttribute( sat::SolvAttr::delnotify, lang_r ); }
+
+  std::string ResObject::licenseToConfirm( const Locale & lang_r ) const
+  {
+    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 ResObject::downloadSize() const
+  { return ByteCount( lookupNumAttribute( sat::SolvAttr::downloadsize ) ); }
+
+  unsigned ResObject::mediaNr() const
+  { return lookupNumAttribute( sat::SolvAttr::medianr ); }
+
+  Date ResObject::buildtime() const
+  { return Date( lookupNumAttribute( sat::SolvAttr::buildtime ) ); }
+
+  Date ResObject::installtime() const
+  { return Date( lookupNumAttribute( sat::SolvAttr::installtime ) ); }
+
+   /////////////////////////////////////////////////////////////////
 } // namespace zypp
 ///////////////////////////////////////////////////////////////////
 
@@ -40,7 +117,8 @@ namespace zypp
 
 ///////////////////////////////////////////////////////////////////
 namespace zypp
-{
+{ /////////////////////////////////////////////////////////////////
+
   ResObject::Ptr makeResObject( const sat::Solvable & solvable_r )
   {
     if ( ! solvable_r )
@@ -58,5 +136,7 @@ namespace zypp
     // unknow => return a plain ResObject
     return new ResObject( solvable_r );
   }
+
+  /////////////////////////////////////////////////////////////////
 } // namespace zypp
 ///////////////////////////////////////////////////////////////////