code: public void put(INameable object) {
          if (object == null)
              throw new IllegalStateException("object must not be null");
  
          reclaimSpace();
  
          String name = object.getObjectName();
          if (name == null)
              throw new IllegalStateException("object has not been named");
  
          TrackingObject to = new TrackingObject();
          to.setINameable(new WeakReference(object));
  
          synchronized (_nameMap) { _nameMap.put(name,to); }
  
          // fire the fact that we just added a nameable to be tracked
          if (_listeners != null)
              fireNamingObjectEvent(to);
      }
docs: This method will store an INameable object into the <code>NameService</code>.   The name
  is obtained from the INameable.  The object will be stored in the <code>NameService</code>
  with a <code>WeakReference</code> so the <code>NameService</code> will not keep an object alive.
  @param object The <code>INameable</code> to be stored in the name service.