public RCFileItem GetStringLineForName(string aStringResourceName, HeaderId aStringResourceID) { if (aStringResourceID.Value == Constants.kNotFoundID.Value) { foreach (var idx in StringTableContent.Keys) { foreach (var element in StringTableContent[idx]) { if (element.Name == aStringResourceName) { return(element); } } } } else { var stringTableIndex = StringTableIndexCalculator.CalculateIndex(aStringResourceID); if (!StringTableContent.ContainsKey(stringTableIndex)) { return(null); } foreach (var element in StringTableContent[stringTableIndex]) { if (element.Name == aStringResourceName) { return(element); } } } return(null); }
public static HeaderId NormalizeRecurrenceForID(HeaderId aID, HeaderContent aHeaderContent) { while (IDValidator.IsRecurrentCase(aID, aHeaderContent)) { aID.Value = aHeaderContent.NameToID[aID.Value].Value; } if (!IDValidator.IsValidWithoutRecurrenceCheck(aID)) { aID.Value = Constants.kInvalidID.Value; } return(aID); }
public static HeaderId NormalizeHexaID(HeaderId aID) { if (!IDValidator.IsInValidRange(aID)) { aID.Value = Constants.kInvalidID.Value; } if (IDValidator.IsHexaRepresentation(aID)) { aID.Value = Convert.ToInt32(aID.Value, 16).ToString(); } if (!IDValidator.IsValidInteger(aID)) { aID.Value = Constants.kInvalidID.Value; } return(aID); }
public int GetPosition(HeaderId aID, string aHeaderPath) { var searchedItem = new HeaderItem { ID = IDNormalizer.CopyNormalizeHexaID(aID) }; if (!SortedHeaderResults.ContainsKey(aHeaderPath)) { SortedHeaderResults.Add(aHeaderPath, new List <HeaderItem>()); } var foundIndex = SortedHeaderResults[aHeaderPath].BinarySearch(0, SortedHeaderResults[aHeaderPath].Count, searchedItem, new HeaderResultComparerByID()); if (foundIndex >= 0) { return(Constants.kDuplicateID); } else { return(~foundIndex); } }
public static bool IsValid(HeaderId aID, HeaderContent aHeaderContent) => IsValid(aID.Value, aHeaderContent);
public static bool IsHexaRepresentation(HeaderId aID) => IsHexaRepresentation(aID.Value);
public static bool IsRecurrentCase(HeaderId aID, HeaderContent aHeaderContent) => IsRecurrentCase(aID.Value, aHeaderContent);
public static bool IsInValidRange(HeaderId aID) => IsInValidRange(aID.Value);
public static bool IsValidInteger(HeaderId aID) => IsValidInteger(aID.Value);
public static bool IsEmpty(HeaderId aID) => IsEmpty(aID.Value);
public static bool IsValidWithoutRecurrenceCheck(HeaderId aID) => IsValidWithoutRecurrenceCheck(aID.Value);
public static HeaderId CopyNormalizeRecurrenceForID(HeaderId aID, HeaderContent aHeaderContent) => NormalizeRecurrenceForID(new HeaderId(aID), aHeaderContent);
public static HeaderId CopyNormalizeHexaID(HeaderId aID) => NormalizeHexaID(new HeaderId(aID));
public static int CalculateIndex(HeaderId aID) { return(Convert.ToInt32(IDNormalizer.CopyNormalizeHexaID(aID).Value) / Constants.kStringTableCapacity); }
public HeaderId(HeaderId aHeaderId) { Value = aHeaderId.Value; IsHexa = aHeaderId.IsHexa; }