LongText
using Relativity.DataExchange.Export.VolumeManagerV2.Download;
using System.IO;
using System.Text;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Text
{
public abstract class LongText
{
protected string LongTextValue { get; set; }
public LongTextExportRequest ExportRequest { get; set; }
public bool TransferCompleted { get; set; }
public string Location { get; set; }
public bool RequireDeletion { get; set; }
public int ArtifactId { get; set; }
public int FieldArtifactId { get; set; }
public Encoding SourceEncoding { get; set; }
public Encoding DestinationEncoding { get; set; }
public long Length { get; set; }
public abstract TextReader GetLongText();
public static LongText CreateFromMissingFile(int artifactId, int fieldArtifactId, LongTextExportRequest exportRequest, Encoding sourceEncoding, Encoding destinationEncoding, long length)
{
return new LongTextInFile {
ArtifactId = artifactId,
FieldArtifactId = fieldArtifactId,
Location = exportRequest.DestinationLocation,
ExportRequest = exportRequest,
RequireDeletion = false,
SourceEncoding = sourceEncoding,
DestinationEncoding = destinationEncoding,
TransferCompleted = false,
Length = length
};
}
public static LongText CreateFromMissingValue(int artifactId, int fieldArtifactId, LongTextExportRequest exportRequest, Encoding encoding, long length)
{
return new LongTextInFile {
ArtifactId = artifactId,
FieldArtifactId = fieldArtifactId,
Location = exportRequest.DestinationLocation,
ExportRequest = exportRequest,
RequireDeletion = true,
SourceEncoding = encoding,
DestinationEncoding = encoding,
TransferCompleted = false,
Length = length
};
}
public static LongText CreateFromExistingFile(int artifactId, int fieldArtifactId, string location, Encoding encoding, long length)
{
return new LongTextInFile {
ArtifactId = artifactId,
FieldArtifactId = fieldArtifactId,
Location = location,
RequireDeletion = false,
SourceEncoding = encoding,
DestinationEncoding = encoding,
TransferCompleted = true,
Length = length
};
}
public static LongText CreateFromExistingValue(int artifactId, int fieldArtifactId, string text)
{
return new LongTextInMemory {
ArtifactId = artifactId,
FieldArtifactId = fieldArtifactId,
LongTextValue = text,
RequireDeletion = false,
SourceEncoding = Encoding.Default,
DestinationEncoding = Encoding.Default,
TransferCompleted = true,
Length = (text?.Length ?? 0)
};
}
}
}