/** * Check lib version satisfies lib version requirements * * @param versions e.g. <code>{"junit:junit": "4.12", "com.android.support:support-v4": "25.3.1"}</code> * @param requirements e.g. <code>{"junit:junit": "4.12", "com.android.support:support-v4": ">=25"}</code> * @return verify result * @see Result */ public static Result satisfies(Map<String, String> versions, Map<String, String> requirements) { for (Map.Entry<String, String> entry : requirements.entrySet()) { final String lib = entry.getKey(); final String requirement = entry.getValue(); final String version = versions.get(lib); if (version == null) { // lib not exist return Result.createFailResult(lib, String.format(Locale.ENGLISH, "required lib [%s] not exist", lib)); } if (!new Version(version).satisfies(requirement)) { // lib version requirement not satisfied return Result.createFailResult(lib, String.format(Locale.ENGLISH, "required lib [%s:%s] not satisfies [%s:%s]", lib, version, lib, requirement)); } } return Result.createSuccessResult(); }
/** * Check lib version satisfies lib version requirements * * @param versions e.g. <code>{"junit:junit": "4.12", "com.android.support:support-v4": "25.3.1"}</code> * @param requirements e.g. <code>{"junit:junit": "4.12", "com.android.support:support-v4": ">=25"}</code> * @return verify result * @see Result */ public static Result satisfies(Map<String, String> versions, Map<String, String> requirements) { for (Map.Entry<String, String> entry : requirements.entrySet()) { final String lib = entry.getKey(); final String requirement = entry.getValue(); final String version = versions.get(lib); if (version == null) { // lib not exist return Result.createFailResult(lib, String.format(Locale.ENGLISH, "required lib [%s] not exist", lib)); } if (!new Version(version).satisfies(requirement)) { // lib version requirement not satisfied return Result.createFailResult(lib, String.format(Locale.ENGLISH, "required lib [%s:%s] not satisfies [%s:%s]", lib, version, lib, requirement)); } } return Result.createSuccessResult(); }