1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/ResObject.cc
13 #include "zypp/ResObject.h"
14 #include "zypp/sat/SolvAttr.h"
15 #include "zypp/sat/Solvable.h"
16 #include "zypp/Repository.h"
17 #include "zypp/RepoInfo.h"
18 #include "zypp/IdString.h"
23 ///////////////////////////////////////////////////////////////////
25 { /////////////////////////////////////////////////////////////////
27 IMPL_PTR_TYPE(ResObject);
29 ///////////////////////////////////////////////////////////////////
31 // METHOD NAME : ResObject::ResObject
34 ResObject::ResObject( const sat::Solvable & solvable_r )
35 : Resolvable( solvable_r )
38 ///////////////////////////////////////////////////////////////////
40 // METHOD NAME : ResObject::~ResObject
43 ResObject::~ResObject()
46 ///////////////////////////////////////////////////////////////////
48 // METHOD NAME : ResObject::dumpOn
49 // METHOD TYPE : std::ostream &
51 std::ostream & ResObject::dumpOn( std::ostream & str ) const
53 return Resolvable::dumpOn( str );
56 ///////////////////////////////////////////////////////////////////
58 std::string ResObject::summary( const Locale & lang_r ) const
59 { return lookupStrAttribute( sat::SolvAttr::summary, lang_r ); }
61 std::string ResObject::description( const Locale & lang_r ) const
62 { return lookupStrAttribute( sat::SolvAttr::description, lang_r ); }
64 std::string ResObject::insnotify( const Locale & lang_r ) const
65 { return lookupStrAttribute( sat::SolvAttr::insnotify, lang_r ); }
67 std::string ResObject::delnotify( const Locale & lang_r ) const
68 { return lookupStrAttribute( sat::SolvAttr::delnotify, lang_r ); }
70 std::string ResObject::licenseToConfirm( const Locale & lang_r ) const
72 std::string ret = lookupStrAttribute( sat::SolvAttr::eula, lang_r );
73 if ( ret.empty() && isKind<Product>() )
74 return repoInfo().getLicense( lang_r );
78 bool ResObject::needToAcceptLicense() const
80 if ( isKind<Product>() )
81 return repoInfo().needToAcceptLicense( );
85 std::string ResObject::distribution() const
86 { return lookupStrAttribute( sat::SolvAttr::distribution ); }
88 std::string ResObject::cpeId() const
89 { return lookupStrAttribute( sat::SolvAttr::cpeid ); }
91 ByteCount ResObject::installSize() const
92 { return ByteCount( lookupNumAttribute( sat::SolvAttr::installsize ) ); }
94 ByteCount ResObject::downloadSize() const
95 { return ByteCount( lookupNumAttribute( sat::SolvAttr::downloadsize ) ); }
97 unsigned ResObject::mediaNr() const
98 { return lookupNumAttribute( sat::SolvAttr::medianr ); }
100 Date ResObject::buildtime() const
101 { return Date( lookupNumAttribute( sat::SolvAttr::buildtime ) ); }
103 Date ResObject::installtime() const
104 { return Date( lookupNumAttribute( sat::SolvAttr::installtime ) ); }
106 #warning DUMMY diskusage
107 const DiskUsage & ResObject::diskusage() const
109 static DiskUsage _du;
113 /////////////////////////////////////////////////////////////////
115 ///////////////////////////////////////////////////////////////////
117 #include "zypp/ResObjects.h"
119 ///////////////////////////////////////////////////////////////////
121 { /////////////////////////////////////////////////////////////////
123 ResObject::Ptr makeResObject( const sat::Solvable & solvable_r )
128 ResKind kind( solvable_r.kind() );
129 #define OUTS(X) if ( kind == ResTraits<X>::kind ) return make<X>( solvable_r );
136 // unknow => return a plain ResObject
137 return new ResObject( solvable_r );
140 /////////////////////////////////////////////////////////////////
142 ///////////////////////////////////////////////////////////////////