Package dev.enola.common.io.resource
@NullMarked
package dev.enola.common.io.resource
Resource Framework.
The ResourceProviders implementation of ResourceProvider is the primary API for clients using this
framework.
TODO Further document the design...
-
ClassDescriptionChange Token ("Tag") for
ReadableResource.changeToken().ReadableResourceon Java Classpath; e.g.Closeable Resource.Resource I/O implementation for RFC 2397 data: URLs.Read-only resources which when read are always immediately EOF (like "data:,").Resource for "fd:0" (STDIN), "fd:1" (STDOUT), "fd:2" (STDERR) URIs.MarkdownResource is aMultipartResourcewhich separates "Front Matter" (asMarkdownResource.FRONTpart, typically YAML structured data) and Markdown content (asMarkdownResource.MARKDOWN) from the base resource.Resource I/O implementation based on a multibase: URLs (invented by Enola.dev; not standardized anywhere, yet).MultipartResources are "logical" resources which do have an URI, but are composed of multiple "parts" which are independent (sub)resources, each with their ownMediaTypeand content.Resource which ignores writes, and returns an infinite amount of bytes of value 0 on read.Resource implemented with OkHttp.Resources which "splits" a "base" resource into "parts", based on Regular Expression named capturing groups.ReadableResourcewhich replaces text.Resource.Resource Provider.Deprecated.Resource based on String with a given URI and MediaType.Resource implemented withURL.openStream().AWritableResourcewhich delegates to aWriter.