protected <T> T update(Supplier<? extends T> noStorageChange,
                         BiFunction<? super MutableEntityStorage, ? super PackagingElementEntity, T> changeOnBuilder) {
    if (myStorage == null) {
      return noStorageChange.get();
    }
    else {
      if (!(myStorage instanceof VersionedEntityStorageOnBuilder)) {
        noStorageChange.get();
        throw new RuntimeException();
      }
      else {
        noStorageChange.get();
        MutableEntityStorage builder = ((VersionedEntityStorageOnBuilder)myStorage).getBase();
        MutableExternalEntityMapping<PackagingElement<?>> mapping = builder.getMutableExternalMapping(PackagingExternalMapping.key);
        PackagingElementEntity entity = (PackagingElementEntity)mapping.getFirstEntity(this);
        if (entity == null) {
          throw new RuntimeException("Cannot find an entity");
        }
        return changeOnBuilder.apply(builder, entity);
      }
    }
  }
protected <T> T update(Supplier<? extends T> noStorageChange,
                         BiFunction<? super MutableEntityStorage, ? super PackagingElementEntity, T> changeOnBuilder)