/// <summary>
 /// Sets the source for a types that has shared components defined.
 /// </summary>
 /// <remarks>
 /// Removes the entry from the table if the source is null.
 /// </remarks>
 public void SetTypeSource(NodeId typeId, BaseTypeSource source)
 {
     if (NodeId.IsNull(typeId))
     {
         throw new ArgumentNullException("typeId");
     }
     
     lock (m_lock)
     {
         if (source != null)
         {
             m_sources[typeId] = source;
         }
         else
         {
             m_sources.Remove(typeId);
         }
     }
 }