Exemplo n.º 1
0
        /// <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]);
            }
        }
Exemplo n.º 2
0
        /// <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]);
            }
        }
Exemplo n.º 3
0
        /// <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);
        }