code: public <T extends Serializable> void remove(StorageKey<T> key) {
      String data = storage.getItem(key.name());
      storage.removeItem(key.name());
      T value = cache.remove(key);
      fireEvent(StorageChangeEvent.ChangeType.REMOVE, key, null, value, null, data);
    }
docs: Removes the record for the specified key from this storage if present.
  
  <p>
  {@link StorageKeyFactory} is preferred to get a {@link StorageKey} instance for primitive types
  </p>
  
  @param key key whose mapping is to be removed from the map
  @param <T> the type of stored value