@NotNull
  @Override
  public List<FoldingTransferableData> extractTransferableData(final @NotNull Transferable content) {
    DataFlavor flavor = FoldingData.getDataFlavor();
    if (flavor == null) {
      return Collections.emptyList();
    }

    Object data;
    try {
      data = content.getTransferData(flavor);
    }
    catch (UnsupportedFlavorException | IOException e) {
      //ignore exception
      return Collections.emptyList();
    }

    if (!(data instanceof FoldingTransferableData)) {
      LOG.error("Transferable content has returned invalid data\ncontent: " + content + "\ndata: " + data);
      return Collections.emptyList();
    }

    // copy to prevent changing of original by convertLineSeparators
    FoldingTransferableData foldingData = ((FoldingTransferableData)data).clone();
    return Collections.singletonList(foldingData);
  }
@NotNull
  @Override
  public List<FoldingTransferableData> extractTransferableData(final @NotNull Transferable content)