@Override
  public PackagingElementEntity.Builder<? extends PackagingElementEntity> getOrAddEntityBuilder(@NotNull MutableEntityStorage diff,
                                                                                                @NotNull EntitySource source,
                                                                                                @NotNull Project project) {
    PackagingElementEntity existingEntity = (PackagingElementEntity)this.getExistingEntity(diff);
    if (existingEntity != null) return getBuilder(diff, existingEntity);

    String renamedOutputFileName = this.myRenamedOutputFileName;
    String filePath = this.myFilePath;
    Objects.requireNonNull(filePath, "filePath is not specified");
    FileCopyPackagingElementEntity addedEntity;
    VirtualFileUrlManager fileUrlManager = WorkspaceModel.getInstance(project).getVirtualFileUrlManager();
    VirtualFileUrl fileUrl = fileUrlManager.getOrCreateFromUrl(VfsUtilCore.pathToUrl(filePath));
    if (renamedOutputFileName != null) {
      addedEntity = diff.addEntity(FileCopyPackagingElementEntity.create(fileUrl, source, entityBuilder -> {
        entityBuilder.setRenamedOutputFileName(renamedOutputFileName);
        return Unit.INSTANCE;
      }));
    }
    else {
      addedEntity = diff.addEntity(FileCopyPackagingElementEntity.create(fileUrl, source));
    }
    diff.getMutableExternalMapping(PackagingExternalMapping.key).addMapping(addedEntity, this);
    return getBuilder(diff, addedEntity);
  }
@Override
  public PackagingElementEntity.Builder<? extends PackagingElementEntity> getOrAddEntityBuilder(@NotNull MutableEntityStorage diff,
                                                                                                @NotNull EntitySource source,
                                                                                                @NotNull Project project)