/// <summary> /// Get the configuration description for the instance /// </summary> /// <param name="forInstance"></param> /// <returns></returns> public IConfigurationDescription GetConfigurationDescription(Guid forInstance) { IUserObject instance = GetInstance(forInstance); if (instance == null) { return(null); } // User creatable object use the parent to provide the description if (instance is IUserCreatableObject) { return(GetConfigurationDescription((instance as IUserCreatableObject).ParentUUID)); } // Look it up lock (m_configinfo) { // Use the fully qualified class name to get the config info string fqcn = instance.GetType().Namespace + "." + instance.GetType().Name; if (!m_configinfo.ContainsKey(fqcn)) { this.Log().Warn("Could not find configuration information for class '{0}'", fqcn); return(null); } return(m_configinfo[fqcn]); } }
/// <summary> /// Get the description for the instance /// </summary> /// <param name="forInstance"></param> /// <returns></returns> public IObjectDescription GetDescription(Guid forInstance) { IUserObject instance = GetInstance(forInstance); if (instance == null) { return(null); } lock (m_descriptions) { if (instance is IUserCreatableObject) { if (!m_descriptions.ContainsKey(instance.UUID.ToString())) { this.Log().Warn("Object '{0}' exists but has no description.", instance.UUID); return(null); } return(m_descriptions[instance.UUID.ToString()]); } // Use the fully qualified class name to get the description string fqcn = instance.GetType().Namespace + "." + instance.GetType().Name; if (!m_descriptions.ContainsKey(fqcn)) { this.Log().Warn("Expected to find description for class '{0}'.", fqcn); return(null); } return(m_descriptions[fqcn]); } }
/// <summary> /// Get information about an object. /// </summary> /// <param name="forInstance"></param> /// <param name="instance"></param> /// <param name="description"></param> /// <returns></returns> private bool GetObjectInformation(Guid forInstance, out IUserObject instance, out IConfigurationDescription description) { description = null; instance = GetInstance(forInstance); if (instance == null) { this.Log().Warn("Requested configuration for non-existant object '{0}'", forInstance); return(false); } IConfigurable configurable = instance as IConfigurable; if (configurable == null) { this.Log().Warn("Requested configuration for unconfigurable object '{0}' (Class {1}.{2})", forInstance, instance.GetType().Namespace, instance.GetType().Name); return(false); } description = GetConfigurationDescription(forInstance); if (description == null) { this.Log().Warn("No configuration description for object '{0}' (Class {1}.{2})", forInstance, instance.GetType().Namespace, instance.GetType().Name); return(false); } return(true); }