From 3246a0e4497732d5369e1bf57f79d2a480997af5 Mon Sep 17 00:00:00 2001 From: Kushal Pisavadia Date: Wed, 13 Nov 2024 01:07:52 +0000 Subject: [PATCH] Convert `org.pkl.core.resource` POJOs to `record` classes (#748) --- .../java/org/pkl/core/resource/Resource.java | 21 ++++++++----------- .../org/pkl/core/runtime/ResourceManager.java | 2 +- .../pkl/core/stdlib/base/ResourceNodes.java | 8 +++---- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/pkl-core/src/main/java/org/pkl/core/resource/Resource.java b/pkl-core/src/main/java/org/pkl/core/resource/Resource.java index da1f1c10..43f7afb8 100644 --- a/pkl-core/src/main/java/org/pkl/core/resource/Resource.java +++ b/pkl-core/src/main/java/org/pkl/core/resource/Resource.java @@ -20,22 +20,19 @@ import java.nio.charset.StandardCharsets; import java.util.Base64; /** An external (file, HTTP, etc.) resource. */ -public final class Resource { - private final URI uri; - - private final byte[] bytes; - - /** Constructs a resource. */ - public Resource(URI uri, byte[] bytes) { - this.uri = uri; - this.bytes = bytes; - } - - /** Returns the URI of this resource. */ +public record Resource(URI uri, byte[] bytes) { + /** + * @deprecated As of 0.28.0, replaced by {@link #uri()} + */ + @Deprecated(forRemoval = true) public URI getUri() { return uri; } + /** + * @deprecated As of 0.28.0, replaced by {@link #bytes()} + */ + @Deprecated(forRemoval = true) public byte[] getBytes() { return bytes; } diff --git a/pkl-core/src/main/java/org/pkl/core/runtime/ResourceManager.java b/pkl-core/src/main/java/org/pkl/core/runtime/ResourceManager.java index 17f2cbdf..81974672 100644 --- a/pkl-core/src/main/java/org/pkl/core/runtime/ResourceManager.java +++ b/pkl-core/src/main/java/org/pkl/core/runtime/ResourceManager.java @@ -51,7 +51,7 @@ public final class ResourceManager { resourceFactory = new VmObjectFactory(BaseModule::getResourceClass) - .addProperty("uri", resource -> resource.getUri().toString()) + .addProperty("uri", resource -> resource.uri().toString()) .addProperty("text", Resource::getText) .addProperty("base64", Resource::getBase64); } diff --git a/pkl-core/src/main/java/org/pkl/core/stdlib/base/ResourceNodes.java b/pkl-core/src/main/java/org/pkl/core/stdlib/base/ResourceNodes.java index 25fea1ae..58ec5fbe 100644 --- a/pkl-core/src/main/java/org/pkl/core/stdlib/base/ResourceNodes.java +++ b/pkl-core/src/main/java/org/pkl/core/stdlib/base/ResourceNodes.java @@ -33,7 +33,7 @@ public final class ResourceNodes { @Specialization(guards = "self.hasExtraStorage()") protected String evalWithExtraStorage(VmTyped self) { var resource = (Resource) self.getExtraStorage(); - return ByteArrayUtils.md5(resource.getBytes()); + return ByteArrayUtils.md5(resource.bytes()); } @TruffleBoundary @@ -54,7 +54,7 @@ public final class ResourceNodes { @Specialization(guards = "self.hasExtraStorage()") protected String evalWithExtraStorage(VmTyped self) { var resource = (Resource) self.getExtraStorage(); - return ByteArrayUtils.sha1(resource.getBytes()); + return ByteArrayUtils.sha1(resource.bytes()); } @TruffleBoundary @@ -71,7 +71,7 @@ public final class ResourceNodes { @Specialization(guards = "self.hasExtraStorage()") protected String evalWithExtraStorage(VmTyped self) { var resource = (Resource) self.getExtraStorage(); - return ByteArrayUtils.sha256(resource.getBytes()); + return ByteArrayUtils.sha256(resource.bytes()); } @TruffleBoundary @@ -88,7 +88,7 @@ public final class ResourceNodes { @Specialization(guards = "self.hasExtraStorage()") protected long evalWithExtraStorage(VmTyped self) { var resource = (Resource) self.getExtraStorage(); - return ByteArrayUtils.sha256Int(resource.getBytes()); + return ByteArrayUtils.sha256Int(resource.bytes()); } @TruffleBoundary