code: public synchronized FileEntry put( DirectoryEntry parent, String name, InputStream content )
          throws IOException
      {
          parent.getClass();
          parent = getNormalizedParent( parent );
          List<Entry> entries = getEntriesList( parent );
          for ( Iterator<Entry> i = entries.iterator(); i.hasNext(); )
          {
              Entry entry = (Entry) i.next();
              if ( name.equals( entry.getName() ) )
              {
                  if ( entry instanceof FileEntry )
                  {
                      i.remove();
                  }
                  else
                  {
                      return null;
                  }
              }
          }
          FileEntry entry = new MemoryFileEntry( this, parent, name, IOUtils.toByteArray( content ) );
          entries.add( entry );
          return entry;
      }
docs: {@inheritDoc}