code: public Map getMap(String name, boolean create) {
          if (name == null)
              throw new IllegalStateException("name must not be null");
  
          if (_nameMap == null)
              return null;
  
          TrackingObject to = (TrackingObject) _nameMap.get(name);
  
          // The object wasn't found
          if (to == null)
              return null;
  
          // If the object has been reclaimed, then we remove the named object from the map.
          WeakReference wr = to.getWeakINameable();
          INameable o = (INameable) wr.get();
          if (o == null) {
              synchronized (_nameMap) { _nameMap.remove(name); }
              return null;
          }
          if (create)
              return to;
  
          return to.isMapCreated() ? to : null;
      }
docs: This method will return the state map associated with the Nameable object if the
  object has been stored in the <code>NameService</code> and something has been stored
  into the <code>Map</code>.  Otherwise this will return null indicating that the map
  is empty.  If the <code>create</code> parameter is true, we will always return the
  <code>Map</code> object.
  @param name The name of the object to return the named object.  This must not be null.
  @param create This will create the map if necessary.
  @return A Map Object for the named object.  This will return null if nothing has been stored in
  the map and <code>create</code> is false.