41 lines
1.4 KiB
Java
41 lines
1.4 KiB
Java
package p.studio.vfs;
|
|
|
|
import p.studio.vfs.messages.VfsDocumentAccessContext;
|
|
import p.studio.vfs.messages.VfsUnsupportedReason;
|
|
|
|
import java.nio.file.Path;
|
|
import java.util.Objects;
|
|
|
|
public sealed interface VfsDocumentOpenResult permits VfsDocumentOpenResult.VfsUnsupportedDocument, VfsDocumentOpenResult.VfsTextDocument {
|
|
Path path();
|
|
|
|
record VfsUnsupportedDocument(
|
|
Path path,
|
|
VfsUnsupportedReason reason) implements VfsDocumentOpenResult {
|
|
|
|
public VfsUnsupportedDocument {
|
|
path = Objects.requireNonNull(path, "path").toAbsolutePath().normalize();
|
|
Objects.requireNonNull(reason, "reason");
|
|
}
|
|
}
|
|
|
|
record VfsTextDocument(
|
|
Path path,
|
|
String documentName,
|
|
String typeId,
|
|
String content,
|
|
String lineSeparator,
|
|
boolean dirty,
|
|
VfsDocumentAccessContext accessContext) implements VfsDocumentOpenResult {
|
|
|
|
public VfsTextDocument {
|
|
path = Objects.requireNonNull(path, "path").toAbsolutePath().normalize();
|
|
Objects.requireNonNull(documentName, "documentName");
|
|
Objects.requireNonNull(typeId, "typeId");
|
|
Objects.requireNonNull(content, "content");
|
|
Objects.requireNonNull(lineSeparator, "lineSeparator");
|
|
Objects.requireNonNull(accessContext, "accessContext");
|
|
}
|
|
}
|
|
}
|