From 9d99b539bfaabe45a43948edf37e900401288f65 Mon Sep 17 00:00:00 2001 From: Petr Mrázek Date: Sun, 28 Jul 2013 08:40:15 +0200 Subject: Parsing the version files, part IV Also, start of big refactors. --- libmultimc/src/library.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'libmultimc/src/library.cpp') diff --git a/libmultimc/src/library.cpp b/libmultimc/src/library.cpp index 9d4cc6e3..691786e8 100644 --- a/libmultimc/src/library.cpp +++ b/libmultimc/src/library.cpp @@ -34,4 +34,48 @@ OpSys OpSys_fromString(QString name) return Os_OSX; return Os_Other; } + +void Library::finalize() +{ + QStringList parts = m_name.split ( ':' ); + QString relative = parts[0]; + relative.replace ( '.','/' ); + relative += '/' + parts[1] + '/' + parts[2] + '/' + parts[1] + '-' + parts[2]; + if ( !m_is_native ) + relative += ".jar"; + else + { + if ( m_native_suffixes.contains ( currentSystem ) ) + { + relative += "-" + m_native_suffixes[currentSystem] + ".jar"; + } + else + { + // really, bad. + relative += ".jar"; + } + } + m_storage_path = relative; + m_download_path = m_base_url + relative; + + if ( m_rules.empty() ) + { + m_is_active = true; + } + else + { + RuleAction result = Disallow; + for ( auto rule: m_rules ) + { + RuleAction temp = rule->apply ( this ); + if ( temp != Defer ) + result = temp; + } + m_is_active = ( result == Allow ); + } + if ( m_is_native ) + { + m_is_active = m_is_active && m_native_suffixes.contains ( currentSystem ); + } +} // default url for lib: -- cgit