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");
}
}
}