public static bool TestFlavors(PackagesAPI.PackageFlavors flavor, string value1, string value2) { if (flavor == PackagesAPI.PackageFlavors.Version) { //examine versions return(RangedIntegerMatch(value1, value2)); } else if (flavor == PackagesAPI.PackageFlavors.Platform) { //examine platforms return(value1 == value2); } else if (flavor == PackagesAPI.PackageFlavors.Architecture) { //examine architectures return(value1 == value2); } else if (flavor == PackagesAPI.PackageFlavors.Unkown) { DebugEx.Assert("Unkown flavor detected"); return(true); } else { DebugEx.Assert("Unkown flavor " + flavor); return(value1 == value2); //simple string match in unkown cases } }
//------------------------------------------------------------------------------------------------------------------------ public static string GetPackageFlavorValue(string Component, PackagesAPI.PackageFlavors flavor, string Default = "") { if (Component.IndexOf(PackagesAPI.PackageFlavorSeparator) == -1) { return(Default); } //split var splits = GetPackageRawFlavors(Component); if (splits.Length <= 0) { return(Default); } //find flavor var flavorkey = PackagesAPI.PackageFlavorKey[flavor]; for (int n = 0; n < splits.Length; n++) { if (splits[n].StartsWith(flavorkey, false)) { return(splits[n].Substring(flavorkey.Length)); } } return(Default); }
//------------------------------------------------------------------------------------------------------------------------ public static string AppendPackageFlavorValue(string Component, PackagesAPI.PackageFlavors flavor, string value) { if (Validators.ValidatePackageFlavor(value)) { DebugEx.Assert("Invalid flavor value"); } return(Component + PackagesAPI.PackageFlavorSeparator + PackagesAPI.PackageFlavorKey[flavor] + value); }