/**
  * Checks if a class is compatible with one or more components. If a specific component for the
  * actual class is not found (either in this or a containing level) this checks for components
  * that handle subclasses or implementations of the class.
  *
  * @param clas information for target class
  * @return <code>true</code> if compatible type, <code>false</code> if not
  */
 public boolean isCompatibleType(IClass clas) {
   if (m_compatibleTypeSet.contains(clas.getName())) {
     return true;
   } else if (m_outerContext != null) {
     return m_outerContext.isCompatibleType(clas);
   } else {
     return false;
   }
 }
 /**
  * Get named binding component definition. Finds the component with the supplied name, checking
  * the containing definitions if the component is not found at this level.
  *
  * @param name component name to be found
  * @return binding component with name, or <code>null</code> if not found
  */
 public ElementBase getNamedComponent(String name) {
   ElementBase comp = null;
   if (m_nameToComponentMap != null) {
     comp = (ElementBase) m_nameToComponentMap.get(name);
   }
   if (comp == null && m_outerContext != null) {
     comp = m_outerContext.getNamedComponent(name);
   }
   return comp;
 }