/// <summary> /// Resolves a value to an instance of <see cref="Lazy{T}"/>, where the lazily-loaded /// object is an instance of <see cref="DataObject"/>. /// </summary> private static Object ResolveLazilyLoadedDataObject <T>(String value) where T : DataObject { var registry = DataObjectRegistries.Get <T>(); var reference = DataObjectRegistries.ResolveReference(value); return(new Lazy <T>(() => registry.GetObject(reference))); }
/// <summary> /// Translates the specified local identifier in this translation table /// into the corresponding local identifier within the current process. /// </summary> /// <typeparam name="T">The type of data object being evaluated.</typeparam> /// <param name="localID">The local identifier to translate.</param> /// <returns>The translated local identifier.</returns> public UInt16 Translate <T>(UInt16 localID) where T : DataObject { Guid globalID; if (!TryGetValue(localID, out globalID)) { return(0); } var registry = DataObjectRegistries.Get <T>(); var obj = registry.GetObject(globalID); return((obj == null) ? (ushort)0 : obj.LocalID); }
/// <summary> /// Gets a value indicating whether the specified local identifier in this translation /// table translates to an object that is valid within the current process. /// </summary> /// <typeparam name="T">The type of data object being evaluated.</typeparam> /// <param name="localID">The local identifier of the entry within the translation table to validate.</param> /// <returns><see langword="true"/> if the entry is valid; otherwise, <see langword="false"/>.</returns> public Boolean IsValid <T>(UInt16 localID) where T : DataObject { Guid globalID; if (!TryGetValue(localID, out globalID)) { return(false); } var registry = DataObjectRegistries.Get <T>(); var obj = registry.GetObject(globalID); return(obj != null); }