From a44e4d010db336ccb0e5ea14d6a9cedd2ee8ed1a Mon Sep 17 00:00:00 2001 From: Ralph Gasser Date: Thu, 5 Dec 2024 15:22:09 +0100 Subject: [PATCH 1/4] Fixes a bug in fulltext queries for scalar attributes. Signed-off-by: Ralph Gasser --- .../pgvector/descriptor/scalar/ScalarDescriptorReader.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vitrivr-engine-module-pgvector/src/main/kotlin/org/vitrivr/engine/database/pgvector/descriptor/scalar/ScalarDescriptorReader.kt b/vitrivr-engine-module-pgvector/src/main/kotlin/org/vitrivr/engine/database/pgvector/descriptor/scalar/ScalarDescriptorReader.kt index a077e61b..650cf1ca 100644 --- a/vitrivr-engine-module-pgvector/src/main/kotlin/org/vitrivr/engine/database/pgvector/descriptor/scalar/ScalarDescriptorReader.kt +++ b/vitrivr-engine-module-pgvector/src/main/kotlin/org/vitrivr/engine/database/pgvector/descriptor/scalar/ScalarDescriptorReader.kt @@ -65,7 +65,7 @@ class ScalarDescriptorReader(field: Schema.Field<*, ScalarDescriptor<*, *>>, con */ private fun queryFulltext(query: SimpleFulltextQuery): Sequence> { val queryString = query.value.value.split(" ").map { "$it:*" }.joinToString(" | ") { it } - val statement = "SELECT * FROM \"${tableName.lowercase()}\" WHERE ${query.attributeName} @@ to_tsquery(?)" + val statement = "SELECT * FROM \"${tableName.lowercase()}\" WHERE $VALUE_ATTRIBUTE_NAME @@ to_tsquery(?)" return sequence { this@ScalarDescriptorReader.connection.jdbc.prepareStatement(statement).use { stmt -> stmt.setString(1, queryString) From 6c9784014571d8a942ef0dfaad73a9816cb42d8f Mon Sep 17 00:00:00 2001 From: Ralph Gasser Date: Tue, 10 Dec 2024 08:51:55 +0100 Subject: [PATCH 2/4] Fixes #126. Signed-off-by: Ralph Gasser --- vitrivr-engine-server/doc/oas.json | 104 +++++++++++++++--- .../api/rest/handlers/FetchExportData.kt | 8 +- 2 files changed, 95 insertions(+), 17 deletions(-) diff --git a/vitrivr-engine-server/doc/oas.json b/vitrivr-engine-server/doc/oas.json index f447d04e..be789a24 100644 --- a/vitrivr-engine-server/doc/oas.json +++ b/vitrivr-engine-server/doc/oas.json @@ -2,8 +2,8 @@ "openapi" : "3.0.3", "info" : { "title" : "vitrivr engine API", - "version" : "1.0.0", - "description" : "API for the vitrivr engine." + "version": "0.1.0", + "description": "Rest API for the vitrivr engine project. Provides query (runtime) and extraction (ingestion) endpoints" }, "paths" : { "/api/schema/list" : { @@ -18,10 +18,7 @@ "content" : { "application/json" : { "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } + "$ref": "#/components/schemas/SchemaList" } } } @@ -46,7 +43,41 @@ "tags" : [ "Content" ], "summary" : "Fetch previously exported data.", "operationId" : "getPreview", - "parameters" : [ ], + "parameters": [ + { + "name": "schema", + "in": "path", + "description": "The schema this operation is for.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + } + }, + { + "name": "exporter", + "in": "path", + "description": "The exporter of the schema to use.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + } + }, + { + "name": "retrievableId", + "in": "path", + "description": "The ID of the retrievable.", + "required": true, + "deprecated": false, + "allowEmptyValue": false, + "schema": { + "type": "string" + } + } + ], "responses" : { "200" : { "description" : "OK", @@ -114,8 +145,8 @@ "/api/{schema}/index/{jobId}" : { "get" : { "tags" : [ "Ingest" ], - "summary" : "Indexes an item, adding it to the defined schema.", - "operationId" : "postExecuteIngest", + "summary": "Queries the status of a given ingest job.", + "operationId": "getIngestStatus", "parameters" : [ { "name" : "schema", "in" : "path", @@ -129,7 +160,7 @@ }, { "name" : "jobId", "in" : "path", - "description" : "The id querying the state.", + "description": "The id of the job to query the status for.", "required" : true, "deprecated" : false, "allowEmptyValue" : false, @@ -226,10 +257,30 @@ "type" : "object", "additionalProperties" : false, "properties" : { - "property" : { + "propertyOrDefault": { "type" : "string" + }, + "local": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "global": { + "type": "object", + "additionalProperties": { + "type": "string" + } } - } + }, + "required": [ + "propertyOrDefault", + "local", + "global" + ] }, "InformationNeedDescription" : { "type" : "object", @@ -262,13 +313,25 @@ "properties" : { "type" : { "$ref" : "#/components/schemas/InputType" + }, + "comparison": { + "type": "string", + "nullable": true } }, "required" : [ "type" ] }, "InputType" : { "type" : "string", - "enum" : [ "TEXT", "IMAGE", "VECTOR", "ID" ] + "enum": [ + "TEXT", + "IMAGE", + "VECTOR", + "ID", + "BOOLEAN", + "NUMERIC", + "DATE" + ] }, "OperatorDescription" : { "type" : "object", @@ -326,6 +389,21 @@ }, "required" : [ "id", "score", "type", "parts", "properties" ] }, + "SchemaList": { + "type": "object", + "additionalProperties": false, + "properties": { + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "schemas" + ] + }, "ErrorStatus" : { "type" : "object", "additionalProperties" : false, diff --git a/vitrivr-engine-server/src/main/kotlin/org/vitrivr/engine/server/api/rest/handlers/FetchExportData.kt b/vitrivr-engine-server/src/main/kotlin/org/vitrivr/engine/server/api/rest/handlers/FetchExportData.kt index c44de7ab..1e58f7ea 100644 --- a/vitrivr-engine-server/src/main/kotlin/org/vitrivr/engine/server/api/rest/handlers/FetchExportData.kt +++ b/vitrivr-engine-server/src/main/kotlin/org/vitrivr/engine/server/api/rest/handlers/FetchExportData.kt @@ -17,10 +17,10 @@ const val FETCH_ROUTE_FROM_SCHEMA = "fetch/{exporter}/{retrievableId}" operationId = "getPreview", tags = ["Content"], pathParams = [ - OpenApiParam("schema", String::class, "The schema this operation is for."), - OpenApiParam("exporter", String::class, "The exporter of the schema to use."), - OpenApiParam("retrievableId", String::class, "The ID of the retrievable.") - ], + OpenApiParam("schema", type = String::class, description = "The schema this operation is for.", required = true), + OpenApiParam("exporter", type = String::class, description = "The exporter of the schema to use.", required = true), + OpenApiParam("retrievableId", type = String::class, description = "The ID of the retrievable.", required = true) + ], responses = [ OpenApiResponse("200", [OpenApiContent(type = "image/jpeg")]), OpenApiResponse("400", [OpenApiContent(ErrorStatus::class)]) From 5751a040ec9076d074ea0cee2e171ef7a1706284 Mon Sep 17 00:00:00 2001 From: Ralph Gasser Date: Tue, 10 Dec 2024 09:26:24 +0100 Subject: [PATCH 3/4] Fixes issue with InputData subtypes not being exposed properly in API. Signed-off-by: Ralph Gasser --- vitrivr-engine-query/build.gradle | 3 + .../engine/query/model/api/input/InputData.kt | 15 + vitrivr-engine-server/doc/oas.json | 2200 ++++++++++++++++- 3 files changed, 2216 insertions(+), 2 deletions(-) diff --git a/vitrivr-engine-query/build.gradle b/vitrivr-engine-query/build.gradle index 30137632..ddde1890 100644 --- a/vitrivr-engine-query/build.gradle +++ b/vitrivr-engine-query/build.gradle @@ -6,6 +6,9 @@ plugins { dependencies { api project(':vitrivr-engine-core') + + /* Open API annotations. */ + implementation group: 'io.javalin.community.openapi', name: 'javalin-openapi-plugin', version: version_javalin } /* Publication of vitrivr engine query to Maven Central. */ diff --git a/vitrivr-engine-query/src/main/kotlin/org/vitrivr/engine/query/model/api/input/InputData.kt b/vitrivr-engine-query/src/main/kotlin/org/vitrivr/engine/query/model/api/input/InputData.kt index 342f9625..bf7bbe43 100644 --- a/vitrivr-engine-query/src/main/kotlin/org/vitrivr/engine/query/model/api/input/InputData.kt +++ b/vitrivr-engine-query/src/main/kotlin/org/vitrivr/engine/query/model/api/input/InputData.kt @@ -1,5 +1,8 @@ package org.vitrivr.engine.query.model.api.input +import io.javalin.openapi.Discriminator +import io.javalin.openapi.DiscriminatorProperty +import io.javalin.openapi.OneOf import kotlinx.serialization.Serializable import org.vitrivr.engine.core.model.content.element.ContentElement import org.vitrivr.engine.core.model.content.element.ImageContent @@ -15,6 +18,18 @@ import java.util.* * The abstract [InputData], essentially a query's input value. */ @Serializable(with = InputDataSerializer::class) +@OneOf( + discriminator = Discriminator(DiscriminatorProperty("type", type = InputType::class)), + value = [ + TextInputData::class, + ImageInputData::class, + VectorInputData::class, + RetrievableIdInputData::class, + BooleanInputData::class, + NumericInputData::class, + DateInputData::class + ] +) sealed class InputData() { /** * The [InputType] of this [InputType]. Required for polymorphic deserialisation. diff --git a/vitrivr-engine-server/doc/oas.json b/vitrivr-engine-server/doc/oas.json index be789a24..d38ddd4d 100644 --- a/vitrivr-engine-server/doc/oas.json +++ b/vitrivr-engine-server/doc/oas.json @@ -249,6 +249,1732 @@ }, "components" : { "schemas" : { + "Color": { + "type": "object", + "additionalProperties": false, + "properties": { + "red": { + "type": "integer", + "format": "int32" + }, + "green": { + "type": "integer", + "format": "int32" + }, + "blue": { + "type": "integer", + "format": "int32" + }, + "alpha": { + "type": "integer", + "format": "int32" + }, + "rGB": { + "type": "integer", + "format": "int32" + }, + "rGBComponents": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "rGBColorComponents": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "components": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "colorComponents": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "colorSpace": { + "$ref": "#/components/schemas/ColorSpace" + }, + "transparency": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "red", + "green", + "blue", + "alpha", + "rGB", + "transparency" + ] + }, + "Dimension": { + "type": "object", + "additionalProperties": false, + "properties": { + "width": { + "type": "number", + "format": "double" + }, + "height": { + "type": "number", + "format": "double" + }, + "size": { + "$ref": "#/components/schemas/Dimension" + } + }, + "required": [ + "width", + "height" + ] + }, + "Font": { + "type": "object", + "additionalProperties": false, + "properties": { + "fontPeer": { + "$ref": "#/components/schemas/FontPeer" + }, + "attributeValues": { + "$ref": "#/components/schemas/AttributeValues" + }, + "font2D": { + "$ref": "#/components/schemas/Font2D" + }, + "transform": { + "$ref": "#/components/schemas/AffineTransform" + }, + "family": { + "type": "string" + }, + "family_NoClientCode": { + "type": "string" + }, + "pSName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "fontName": { + "type": "string" + }, + "style": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "size2D": { + "type": "number", + "format": "float" + }, + "plain": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + }, + "transformed": { + "type": "boolean" + }, + "numGlyphs": { + "type": "integer", + "format": "int32" + }, + "missingGlyphCode": { + "type": "integer", + "format": "int32" + }, + "baselineFor": { + "type": "integer", + "format": "int32" + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "availableAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Attribute" + } + }, + "italicAngle": { + "type": "number", + "format": "float" + }, + "lineMetrics": { + "$ref": "#/components/schemas/LineMetrics" + }, + "stringBounds": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "maxCharBounds": { + "$ref": "#/components/schemas/Rectangle2D" + } + }, + "required": [ + "style", + "size", + "size2D", + "plain", + "bold", + "italic", + "transformed", + "numGlyphs", + "missingGlyphCode", + "baselineFor", + "italicAngle", + "italicAngle" + ] + }, + "FontMetrics": { + "type": "object", + "additionalProperties": false, + "properties": { + "font": { + "$ref": "#/components/schemas/Font" + }, + "fontRenderContext": { + "$ref": "#/components/schemas/FontRenderContext" + }, + "leading": { + "type": "integer", + "format": "int32" + }, + "ascent": { + "type": "integer", + "format": "int32" + }, + "descent": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "maxAscent": { + "type": "integer", + "format": "int32" + }, + "maxDescent": { + "type": "integer", + "format": "int32" + }, + "maxDecent": { + "type": "integer", + "format": "int32" + }, + "maxAdvance": { + "type": "integer", + "format": "int32" + }, + "widths": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "lineMetrics": { + "$ref": "#/components/schemas/LineMetrics" + }, + "stringBounds": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "maxCharBounds": { + "$ref": "#/components/schemas/Rectangle2D" + } + }, + "required": [ + "leading", + "ascent", + "descent", + "height", + "maxAscent", + "maxDescent", + "maxDecent", + "maxAdvance" + ] + }, + "Graphics": { + "type": "object", + "additionalProperties": false, + "properties": { + "color": { + "$ref": "#/components/schemas/Color" + }, + "font": { + "$ref": "#/components/schemas/Font" + }, + "fontMetrics": { + "$ref": "#/components/schemas/FontMetrics" + }, + "clipBounds": { + "$ref": "#/components/schemas/Rectangle" + }, + "clip": { + "$ref": "#/components/schemas/Shape" + }, + "clipRect": { + "$ref": "#/components/schemas/Rectangle" + } + } + }, + "Image": { + "type": "object", + "additionalProperties": false, + "properties": { + "width": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "source": { + "$ref": "#/components/schemas/ImageProducer" + }, + "graphics": { + "$ref": "#/components/schemas/Graphics" + }, + "property": { + "type": "object" + }, + "scaledInstance": { + "$ref": "#/components/schemas/Image" + }, + "capabilities": { + "$ref": "#/components/schemas/ImageCapabilities" + }, + "accelerationPriority": { + "type": "number", + "format": "float" + } + }, + "required": [ + "width", + "height", + "accelerationPriority" + ] + }, + "ImageCapabilities": { + "type": "object", + "additionalProperties": false, + "properties": { + "accelerated": { + "type": "boolean" + }, + "trueVolatile": { + "type": "boolean" + } + }, + "required": [ + "accelerated", + "trueVolatile" + ] + }, + "Paint": { + "type": "object", + "additionalProperties": false, + "properties": { + "transparency": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "transparency" + ] + }, + "Point": { + "type": "object", + "additionalProperties": false, + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "location": { + "$ref": "#/components/schemas/Point" + } + }, + "required": [ + "x", + "y" + ] + }, + "Rectangle": { + "type": "object", + "additionalProperties": false, + "properties": { + "minX": { + "type": "number", + "format": "double" + }, + "minY": { + "type": "number", + "format": "double" + }, + "maxX": { + "type": "number", + "format": "double" + }, + "maxY": { + "type": "number", + "format": "double" + }, + "centerX": { + "type": "number", + "format": "double" + }, + "centerY": { + "type": "number", + "format": "double" + }, + "frame": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "pathIterator": { + "$ref": "#/components/schemas/PathIterator" + }, + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "width": { + "type": "number", + "format": "double" + }, + "height": { + "type": "number", + "format": "double" + }, + "bounds": { + "$ref": "#/components/schemas/Rectangle" + }, + "bounds2D": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "location": { + "$ref": "#/components/schemas/Point" + }, + "size": { + "$ref": "#/components/schemas/Dimension" + }, + "empty": { + "type": "boolean" + } + }, + "required": [ + "minX", + "minY", + "maxX", + "maxY", + "centerX", + "centerY", + "x", + "y", + "width", + "height", + "empty" + ] + }, + "Shape": { + "type": "object", + "additionalProperties": false, + "properties": { + "bounds": { + "$ref": "#/components/schemas/Rectangle" + }, + "bounds2D": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "pathIterator": { + "$ref": "#/components/schemas/PathIterator" + } + } + }, + "ColorSpace": { + "type": "object", + "additionalProperties": false, + "properties": { + "cS_sRGB": { + "type": "boolean" + }, + "type": { + "type": "integer", + "format": "int32" + }, + "numComponents": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "minValue": { + "type": "number", + "format": "float" + }, + "maxValue": { + "type": "number", + "format": "float" + } + }, + "required": [ + "cS_sRGB", + "type", + "numComponents", + "minValue", + "maxValue" + ] + }, + "FontRenderContext": { + "type": "object", + "additionalProperties": false, + "properties": { + "transformed": { + "type": "boolean" + }, + "transformType": { + "type": "integer", + "format": "int32" + }, + "transform": { + "$ref": "#/components/schemas/AffineTransform" + }, + "antiAliased": { + "type": "boolean" + }, + "antiAliasingHint": { + "type": "object" + }, + "fractionalMetricsHint": { + "type": "object" + } + }, + "required": [ + "transformed", + "transformType", + "antiAliased" + ] + }, + "GlyphJustificationInfo": { + "type": "object", + "additionalProperties": false, + "properties": {} + }, + "GraphicAttribute": { + "type": "object", + "additionalProperties": false, + "properties": { + "ascent": { + "type": "number", + "format": "float" + }, + "descent": { + "type": "number", + "format": "float" + }, + "advance": { + "type": "number", + "format": "float" + }, + "bounds": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "outline": { + "$ref": "#/components/schemas/Shape" + }, + "alignment": { + "type": "integer", + "format": "int32" + }, + "justificationInfo": { + "$ref": "#/components/schemas/GlyphJustificationInfo" + } + }, + "required": [ + "ascent", + "descent", + "advance", + "alignment" + ] + }, + "LineMetrics": { + "type": "object", + "additionalProperties": false, + "properties": { + "numChars": { + "type": "integer", + "format": "int32" + }, + "ascent": { + "type": "number", + "format": "float" + }, + "descent": { + "type": "number", + "format": "float" + }, + "leading": { + "type": "number", + "format": "float" + }, + "height": { + "type": "number", + "format": "float" + }, + "baselineIndex": { + "type": "integer", + "format": "int32" + }, + "baselineOffsets": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "strikethroughOffset": { + "type": "number", + "format": "float" + }, + "strikethroughThickness": { + "type": "number", + "format": "float" + }, + "underlineOffset": { + "type": "number", + "format": "float" + }, + "underlineThickness": { + "type": "number", + "format": "float" + } + }, + "required": [ + "numChars", + "ascent", + "descent", + "leading", + "height", + "baselineIndex", + "strikethroughOffset", + "strikethroughThickness", + "underlineOffset", + "underlineThickness" + ] + }, + "NumericShaper": { + "type": "object", + "additionalProperties": false, + "properties": { + "strongDirectional": { + "type": "boolean" + }, + "contextual": { + "type": "boolean" + }, + "ranges": { + "type": "integer", + "format": "int32" + }, + "rangeSet": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Range" + } + } + }, + "required": [ + "strongDirectional", + "contextual", + "ranges" + ] + }, + "Range": { + "type": "string", + "enum": [ + "EUROPEAN", + "ARABIC", + "EASTERN_ARABIC", + "DEVANAGARI", + "BENGALI", + "GURMUKHI", + "GUJARATI", + "ORIYA", + "TAMIL", + "TELUGU", + "KANNADA", + "MALAYALAM", + "THAI", + "LAO", + "TIBETAN", + "MYANMAR", + "ETHIOPIC", + "KHMER", + "MONGOLIAN", + "NKO", + "MYANMAR_SHAN", + "LIMBU", + "NEW_TAI_LUE", + "BALINESE", + "SUNDANESE", + "LEPCHA", + "OL_CHIKI", + "VAI", + "SAURASHTRA", + "KAYAH_LI", + "CHAM", + "TAI_THAM_HORA", + "TAI_THAM_THAM", + "JAVANESE", + "MEETEI_MAYEK", + "SINHALA", + "MYANMAR_TAI_LAING" + ] + }, + "AffineTransform": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "type": "integer", + "format": "int32" + }, + "determinant": { + "type": "number", + "format": "double" + }, + "matrix": { + "type": "object" + }, + "scaleX": { + "type": "number", + "format": "double" + }, + "scaleY": { + "type": "number", + "format": "double" + }, + "shearX": { + "type": "number", + "format": "double" + }, + "shearY": { + "type": "number", + "format": "double" + }, + "translateX": { + "type": "number", + "format": "double" + }, + "translateY": { + "type": "number", + "format": "double" + }, + "identity": { + "type": "boolean" + } + }, + "required": [ + "type", + "determinant", + "scaleX", + "scaleY", + "shearX", + "shearY", + "translateX", + "translateY", + "identity" + ] + }, + "GeneralPath": { + "type": "object", + "additionalProperties": false, + "properties": { + "windingRule": { + "type": "integer", + "format": "int32" + }, + "currentPoint": { + "$ref": "#/components/schemas/Point2D" + }, + "bounds": { + "$ref": "#/components/schemas/Rectangle" + }, + "pathIterator": { + "$ref": "#/components/schemas/PathIterator" + }, + "point": { + "$ref": "#/components/schemas/Point2D" + }, + "bounds2D": { + "$ref": "#/components/schemas/Rectangle2D" + } + }, + "required": [ + "windingRule" + ] + }, + "PathIterator": { + "type": "object", + "additionalProperties": false, + "properties": { + "windingRule": { + "type": "integer", + "format": "int32" + }, + "done": { + "type": "boolean" + } + }, + "required": [ + "windingRule", + "done" + ] + }, + "Point2D": { + "type": "object", + "additionalProperties": false, + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + } + }, + "required": [ + "x", + "y" + ] + }, + "Float": { + "type": "object", + "additionalProperties": false, + "properties": { + "minX": { + "type": "number", + "format": "double" + }, + "minY": { + "type": "number", + "format": "double" + }, + "maxX": { + "type": "number", + "format": "double" + }, + "maxY": { + "type": "number", + "format": "double" + }, + "centerX": { + "type": "number", + "format": "double" + }, + "centerY": { + "type": "number", + "format": "double" + }, + "frame": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "bounds": { + "$ref": "#/components/schemas/Rectangle" + }, + "pathIterator": { + "$ref": "#/components/schemas/PathIterator" + }, + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "width": { + "type": "number", + "format": "double" + }, + "height": { + "type": "number", + "format": "double" + }, + "empty": { + "type": "boolean" + }, + "bounds2D": { + "$ref": "#/components/schemas/Rectangle2D" + } + }, + "required": [ + "minX", + "minY", + "maxX", + "maxY", + "centerX", + "centerY", + "x", + "y", + "width", + "height", + "empty" + ] + }, + "Rectangle2D": { + "type": "object", + "additionalProperties": false, + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "width": { + "type": "number", + "format": "double" + }, + "height": { + "type": "number", + "format": "double" + }, + "minX": { + "type": "number", + "format": "double" + }, + "minY": { + "type": "number", + "format": "double" + }, + "maxX": { + "type": "number", + "format": "double" + }, + "maxY": { + "type": "number", + "format": "double" + }, + "centerX": { + "type": "number", + "format": "double" + }, + "centerY": { + "type": "number", + "format": "double" + }, + "frame": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "empty": { + "type": "boolean" + }, + "bounds": { + "$ref": "#/components/schemas/Rectangle" + }, + "bounds2D": { + "$ref": "#/components/schemas/Rectangle2D" + }, + "pathIterator": { + "$ref": "#/components/schemas/PathIterator" + } + }, + "required": [ + "x", + "y", + "width", + "height", + "minX", + "minY", + "maxX", + "maxY", + "centerX", + "centerY", + "empty" + ] + }, + "BufferedImage": { + "type": "object", + "additionalProperties": false, + "properties": { + "scaledInstance": { + "$ref": "#/components/schemas/Image" + }, + "capabilities": { + "$ref": "#/components/schemas/ImageCapabilities" + }, + "accelerationPriority": { + "type": "number", + "format": "float" + }, + "type": { + "type": "integer", + "format": "int32" + }, + "colorModel": { + "$ref": "#/components/schemas/ColorModel" + }, + "raster": { + "$ref": "#/components/schemas/WritableRaster" + }, + "alphaRaster": { + "$ref": "#/components/schemas/WritableRaster" + }, + "rGB": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "width": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "source": { + "$ref": "#/components/schemas/ImageProducer" + }, + "property": { + "type": "object" + }, + "graphics": { + "$ref": "#/components/schemas/Graphics" + }, + "subimage": { + "$ref": "#/components/schemas/BufferedImage" + }, + "alphaPremultiplied": { + "type": "boolean" + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RenderedImage" + } + }, + "propertyNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "minX": { + "type": "integer", + "format": "int32" + }, + "minY": { + "type": "integer", + "format": "int32" + }, + "sampleModel": { + "$ref": "#/components/schemas/SampleModel" + }, + "numXTiles": { + "type": "integer", + "format": "int32" + }, + "numYTiles": { + "type": "integer", + "format": "int32" + }, + "minTileX": { + "type": "integer", + "format": "int32" + }, + "minTileY": { + "type": "integer", + "format": "int32" + }, + "tileWidth": { + "type": "integer", + "format": "int32" + }, + "tileHeight": { + "type": "integer", + "format": "int32" + }, + "tileGridXOffset": { + "type": "integer", + "format": "int32" + }, + "tileGridYOffset": { + "type": "integer", + "format": "int32" + }, + "tile": { + "$ref": "#/components/schemas/Raster" + }, + "data": { + "$ref": "#/components/schemas/Raster" + }, + "tileWritable": { + "type": "boolean" + }, + "writableTileIndices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Point" + } + }, + "writableTile": { + "$ref": "#/components/schemas/WritableRaster" + }, + "transparency": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "accelerationPriority", + "type", + "rGB", + "width", + "height", + "width", + "height", + "alphaPremultiplied", + "minX", + "minY", + "numXTiles", + "numYTiles", + "minTileX", + "minTileY", + "tileWidth", + "tileHeight", + "tileGridXOffset", + "tileGridYOffset", + "tileWritable", + "transparency" + ] + }, + "ColorModel": { + "type": "object", + "additionalProperties": false, + "properties": { + "alphaPremultiplied": { + "type": "boolean" + }, + "transferType": { + "type": "integer", + "format": "int32" + }, + "pixelSize": { + "type": "integer", + "format": "int32" + }, + "componentSize": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "transparency": { + "type": "integer", + "format": "int32" + }, + "numComponents": { + "type": "integer", + "format": "int32" + }, + "numColorComponents": { + "type": "integer", + "format": "int32" + }, + "red": { + "type": "integer", + "format": "int32" + }, + "green": { + "type": "integer", + "format": "int32" + }, + "blue": { + "type": "integer", + "format": "int32" + }, + "alpha": { + "type": "integer", + "format": "int32" + }, + "rGB": { + "type": "integer", + "format": "int32" + }, + "dataElements": { + "type": "object" + }, + "components": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "unnormalizedComponents": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "normalizedComponents": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "dataElement": { + "type": "integer", + "format": "int32" + }, + "colorSpace": { + "$ref": "#/components/schemas/ColorSpace" + }, + "compatibleRaster": { + "type": "boolean" + }, + "compatibleSampleModel": { + "type": "boolean" + }, + "alphaRaster": { + "$ref": "#/components/schemas/WritableRaster" + } + }, + "required": [ + "alphaPremultiplied", + "transferType", + "pixelSize", + "componentSize", + "transparency", + "numComponents", + "numColorComponents", + "red", + "green", + "blue", + "alpha", + "rGB", + "red", + "green", + "blue", + "alpha", + "rGB", + "dataElement", + "dataElement", + "compatibleRaster", + "compatibleSampleModel" + ] + }, + "DataBuffer": { + "type": "object", + "additionalProperties": false, + "properties": { + "dataType": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "offset": { + "type": "integer", + "format": "int32" + }, + "offsets": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "numBanks": { + "type": "integer", + "format": "int32" + }, + "elem": { + "type": "integer", + "format": "int32" + }, + "elemFloat": { + "type": "number", + "format": "float" + }, + "elemDouble": { + "type": "number", + "format": "double" + } + }, + "required": [ + "dataType", + "size", + "offset", + "numBanks", + "elem", + "elem", + "elemFloat", + "elemFloat", + "elemDouble", + "elemDouble" + ] + }, + "ImageProducer": { + "type": "object", + "additionalProperties": false, + "properties": { + "consumer": { + "type": "boolean" + } + }, + "required": [ + "consumer" + ] + }, + "Raster": { + "type": "object", + "additionalProperties": false, + "properties": { + "parent": { + "$ref": "#/components/schemas/Raster" + }, + "sampleModelTranslateX": { + "type": "integer", + "format": "int32" + }, + "sampleModelTranslateY": { + "type": "integer", + "format": "int32" + }, + "bounds": { + "$ref": "#/components/schemas/Rectangle" + }, + "minX": { + "type": "integer", + "format": "int32" + }, + "minY": { + "type": "integer", + "format": "int32" + }, + "width": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "numBands": { + "type": "integer", + "format": "int32" + }, + "numDataElements": { + "type": "integer", + "format": "int32" + }, + "transferType": { + "type": "integer", + "format": "int32" + }, + "dataBuffer": { + "$ref": "#/components/schemas/DataBuffer" + }, + "sampleModel": { + "$ref": "#/components/schemas/SampleModel" + }, + "dataElements": { + "type": "object" + }, + "pixel": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "pixels": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "sample": { + "type": "integer", + "format": "int32" + }, + "sampleFloat": { + "type": "number", + "format": "float" + }, + "sampleDouble": { + "type": "number", + "format": "double" + }, + "samples": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "required": [ + "sampleModelTranslateX", + "sampleModelTranslateY", + "minX", + "minY", + "width", + "height", + "numBands", + "numDataElements", + "transferType", + "sample", + "sampleFloat", + "sampleDouble" + ] + }, + "RenderedImage": { + "type": "object", + "additionalProperties": false, + "properties": { + "sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RenderedImage" + } + }, + "property": { + "type": "object" + }, + "propertyNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "colorModel": { + "$ref": "#/components/schemas/ColorModel" + }, + "sampleModel": { + "$ref": "#/components/schemas/SampleModel" + }, + "width": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "minX": { + "type": "integer", + "format": "int32" + }, + "minY": { + "type": "integer", + "format": "int32" + }, + "numXTiles": { + "type": "integer", + "format": "int32" + }, + "numYTiles": { + "type": "integer", + "format": "int32" + }, + "minTileX": { + "type": "integer", + "format": "int32" + }, + "minTileY": { + "type": "integer", + "format": "int32" + }, + "tileWidth": { + "type": "integer", + "format": "int32" + }, + "tileHeight": { + "type": "integer", + "format": "int32" + }, + "tileGridXOffset": { + "type": "integer", + "format": "int32" + }, + "tileGridYOffset": { + "type": "integer", + "format": "int32" + }, + "tile": { + "$ref": "#/components/schemas/Raster" + }, + "data": { + "$ref": "#/components/schemas/Raster" + } + }, + "required": [ + "width", + "height", + "minX", + "minY", + "numXTiles", + "numYTiles", + "minTileX", + "minTileY", + "tileWidth", + "tileHeight", + "tileGridXOffset", + "tileGridYOffset" + ] + }, + "SampleModel": { + "type": "object", + "additionalProperties": false, + "properties": { + "width": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "numBands": { + "type": "integer", + "format": "int32" + }, + "numDataElements": { + "type": "integer", + "format": "int32" + }, + "dataType": { + "type": "integer", + "format": "int32" + }, + "transferType": { + "type": "integer", + "format": "int32" + }, + "pixel": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "dataElements": { + "type": "object" + }, + "pixels": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "sample": { + "type": "integer", + "format": "int32" + }, + "sampleFloat": { + "type": "number", + "format": "float" + }, + "sampleDouble": { + "type": "number", + "format": "double" + }, + "samples": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "sampleSize": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "width", + "height", + "numBands", + "numDataElements", + "dataType", + "transferType", + "sample", + "sampleFloat", + "sampleDouble", + "sampleSize" + ] + }, + "WritableRaster": { + "type": "object", + "additionalProperties": false, + "properties": { + "parent": { + "$ref": "#/components/schemas/Raster" + }, + "sampleModelTranslateX": { + "type": "integer", + "format": "int32" + }, + "sampleModelTranslateY": { + "type": "integer", + "format": "int32" + }, + "bounds": { + "$ref": "#/components/schemas/Rectangle" + }, + "minX": { + "type": "integer", + "format": "int32" + }, + "minY": { + "type": "integer", + "format": "int32" + }, + "width": { + "type": "integer", + "format": "int32" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "numBands": { + "type": "integer", + "format": "int32" + }, + "numDataElements": { + "type": "integer", + "format": "int32" + }, + "transferType": { + "type": "integer", + "format": "int32" + }, + "dataBuffer": { + "$ref": "#/components/schemas/DataBuffer" + }, + "sampleModel": { + "$ref": "#/components/schemas/SampleModel" + }, + "dataElements": { + "type": "object" + }, + "pixel": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "pixels": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "sample": { + "type": "integer", + "format": "int32" + }, + "sampleFloat": { + "type": "number", + "format": "float" + }, + "sampleDouble": { + "type": "number", + "format": "double" + }, + "samples": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "writableParent": { + "$ref": "#/components/schemas/WritableRaster" + } + }, + "required": [ + "sampleModelTranslateX", + "sampleModelTranslateY", + "minX", + "minY", + "width", + "height", + "numBands", + "numDataElements", + "transferType", + "sample", + "sampleFloat", + "sampleDouble" + ] + }, + "FontPeer": { + "type": "object", + "additionalProperties": false, + "properties": {} + }, + "Attribute": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + } + } + }, "ExecutionStatus" : { "type" : "string", "enum" : [ "UNKNOWN", "RUNNING", "FAILED", "COMPLETED" ] @@ -307,19 +2033,96 @@ }, "required" : [ "inputs", "operations", "output", "context" ] }, - "InputData" : { + "BooleanInputData": { "type" : "object", "additionalProperties" : false, "properties" : { + "data": { + "type": "boolean" + }, + "comparison": { + "type": "string", + "nullable": true + }, "type" : { "$ref" : "#/components/schemas/InputType" + } + }, + "required": [ + "data", + "type" + ] + }, + "DateInputData": { + "type": "object", + "additionalProperties": false, + "properties": { + "data": { + "type": "string" }, "comparison": { "type": "string", "nullable": true + }, + "type": { + "$ref": "#/components/schemas/InputType" } }, - "required" : [ "type" ] + "required": [ + "data", + "type" + ] + }, + "ImageInputData": { + "type": "object", + "additionalProperties": false, + "properties": { + "data": { + "type": "string" + }, + "comparison": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/InputType" + }, + "image": { + "$ref": "#/components/schemas/BufferedImage" + } + }, + "required": [ + "data", + "type" + ] + }, + "InputData": { + "oneOf": [ + { + "$ref": "#/components/schemas/TextInputData" + }, + { + "$ref": "#/components/schemas/ImageInputData" + }, + { + "$ref": "#/components/schemas/VectorInputData" + }, + { + "$ref": "#/components/schemas/RetrievableIdInputData" + }, + { + "$ref": "#/components/schemas/BooleanInputData" + }, + { + "$ref": "#/components/schemas/NumericInputData" + }, + { + "$ref": "#/components/schemas/DateInputData" + } + ], + "discriminator": { + "propertyName": "type" + } }, "InputType" : { "type" : "string", @@ -333,6 +2136,91 @@ "DATE" ] }, + "NumericInputData": { + "type": "object", + "additionalProperties": false, + "properties": { + "data": { + "type": "number", + "format": "double" + }, + "comparison": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/InputType" + } + }, + "required": [ + "data", + "type" + ] + }, + "RetrievableIdInputData": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "comparison": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/InputType" + } + }, + "required": [ + "id", + "type" + ] + }, + "TextInputData": { + "type": "object", + "additionalProperties": false, + "properties": { + "data": { + "type": "string" + }, + "comparison": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/InputType" + } + }, + "required": [ + "data", + "type" + ] + }, + "VectorInputData": { + "type": "object", + "additionalProperties": false, + "properties": { + "data": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "comparison": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/InputType" + } + }, + "required": [ + "data", + "type" + ] + }, "OperatorDescription" : { "type" : "object", "additionalProperties" : false, @@ -430,6 +2318,314 @@ } }, "required" : [ "jobId", "executionStatus", "timestamp" ] + }, + "AttributeValues": { + "type": "object", + "additionalProperties": false, + "properties": { + "family": { + "type": "string" + }, + "weight": { + "type": "number", + "format": "float" + }, + "width": { + "type": "number", + "format": "float" + }, + "posture": { + "type": "number", + "format": "float" + }, + "size": { + "type": "number", + "format": "float" + }, + "transform": { + "$ref": "#/components/schemas/AffineTransform" + }, + "superscript": { + "type": "integer", + "format": "int32" + }, + "font": { + "$ref": "#/components/schemas/Font" + }, + "charReplacement": { + "$ref": "#/components/schemas/GraphicAttribute" + }, + "foreground": { + "$ref": "#/components/schemas/Paint" + }, + "background": { + "$ref": "#/components/schemas/Paint" + }, + "underline": { + "type": "integer", + "format": "int32" + }, + "strikethrough": { + "type": "boolean" + }, + "runDirection": { + "type": "integer", + "format": "int32" + }, + "bidiEmbedding": { + "type": "integer", + "format": "int32" + }, + "justification": { + "type": "number", + "format": "float" + }, + "inputMethodHighlight": { + "type": "object" + }, + "inputMethodUnderline": { + "type": "integer", + "format": "int32" + }, + "swapColors": { + "type": "boolean" + }, + "numericShaping": { + "$ref": "#/components/schemas/NumericShaper" + }, + "kerning": { + "type": "integer", + "format": "int32" + }, + "tracking": { + "type": "number", + "format": "float" + }, + "ligatures": { + "type": "integer", + "format": "int32" + }, + "baselineTransform": { + "$ref": "#/components/schemas/AffineTransform" + }, + "charTransform": { + "$ref": "#/components/schemas/AffineTransform" + }, + "defined": { + "type": "boolean" + }, + "nonDefault": { + "type": "boolean" + }, + "": { + "type": "object" + } + }, + "required": [ + "weight", + "width", + "posture", + "size", + "superscript", + "underline", + "strikethrough", + "runDirection", + "bidiEmbedding", + "justification", + "inputMethodUnderline", + "swapColors", + "kerning", + "tracking", + "ligatures", + "defined", + "nonDefault" + ] + }, + "CharToGlyphMapper": { + "type": "object", + "additionalProperties": false, + "properties": { + "missingGlyphCode": { + "type": "integer", + "format": "int32" + }, + "numGlyphs": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "missingGlyphCode", + "numGlyphs" + ] + }, + "Font2D": { + "type": "object", + "additionalProperties": false, + "properties": { + "style": { + "type": "integer", + "format": "int32" + }, + "width": { + "type": "integer", + "format": "int32" + }, + "weight": { + "type": "integer", + "format": "int32" + }, + "rank": { + "type": "integer", + "format": "int32" + }, + "mapper": { + "$ref": "#/components/schemas/CharToGlyphMapper" + }, + "validatedGlyphCode": { + "type": "integer", + "format": "int32" + }, + "strike": { + "$ref": "#/components/schemas/FontStrike" + }, + "fontMetrics": { + "type": "object" + }, + "styleMetrics": { + "type": "object" + }, + "tableBytes": { + "type": "string", + "format": "binary" + }, + "platformNativeFontPtr": { + "type": "integer", + "format": "int64" + }, + "unitsPerEm": { + "type": "integer", + "format": "int64" + }, + "postscriptName": { + "type": "string" + }, + "fontName": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "numGlyphs": { + "type": "integer", + "format": "int32" + }, + "missingGlyphCode": { + "type": "integer", + "format": "int32" + }, + "baselineFor": { + "type": "integer", + "format": "int32" + }, + "italicAngle": { + "type": "number", + "format": "float" + } + }, + "required": [ + "style", + "width", + "weight", + "rank", + "validatedGlyphCode", + "platformNativeFontPtr", + "unitsPerEm", + "numGlyphs", + "missingGlyphCode", + "baselineFor", + "italicAngle" + ] + }, + "FontStrike": { + "type": "object", + "additionalProperties": false, + "properties": { + "numGlyphs": { + "type": "integer", + "format": "int32" + }, + "fontMetrics": { + "$ref": "#/components/schemas/StrikeMetrics" + }, + "glyphImagePtrs": { + "type": "object" + }, + "glyphImagePtr": { + "type": "integer", + "format": "int64" + }, + "glyphImageBounds": { + "type": "object" + }, + "glyphMetrics": { + "$ref": "#/components/schemas/Float" + }, + "charMetrics": { + "$ref": "#/components/schemas/Float" + }, + "glyphAdvance": { + "type": "number", + "format": "float" + }, + "codePointAdvance": { + "type": "number", + "format": "float" + }, + "glyphOutlineBounds": { + "$ref": "#/components/schemas/Float" + }, + "glyphOutline": { + "$ref": "#/components/schemas/GeneralPath" + }, + "glyphVectorOutline": { + "$ref": "#/components/schemas/GeneralPath" + } + }, + "required": [ + "numGlyphs", + "glyphImagePtr", + "glyphAdvance", + "codePointAdvance" + ] + }, + "StrikeMetrics": { + "type": "object", + "additionalProperties": false, + "properties": { + "ascent": { + "type": "number", + "format": "float" + }, + "descent": { + "type": "number", + "format": "float" + }, + "leading": { + "type": "number", + "format": "float" + }, + "maxAdvance": { + "type": "number", + "format": "float" + } + }, + "required": [ + "ascent", + "descent", + "leading", + "maxAdvance" + ] } }, "securitySchemes" : { From 05332987e5fa9b73cee0488cb66f9d226e0102fc Mon Sep 17 00:00:00 2001 From: Ralph Gasser Date: Tue, 10 Dec 2024 09:54:42 +0100 Subject: [PATCH 4/4] Removes delegate property. Signed-off-by: Ralph Gasser --- .../engine/query/model/api/input/InputData.kt | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/vitrivr-engine-query/src/main/kotlin/org/vitrivr/engine/query/model/api/input/InputData.kt b/vitrivr-engine-query/src/main/kotlin/org/vitrivr/engine/query/model/api/input/InputData.kt index bf7bbe43..7828431f 100644 --- a/vitrivr-engine-query/src/main/kotlin/org/vitrivr/engine/query/model/api/input/InputData.kt +++ b/vitrivr-engine-query/src/main/kotlin/org/vitrivr/engine/query/model/api/input/InputData.kt @@ -10,7 +10,6 @@ import org.vitrivr.engine.core.model.content.element.TextContent import org.vitrivr.engine.core.model.content.impl.memory.InMemoryImageContent import org.vitrivr.engine.core.model.content.impl.memory.InMemoryTextContent import org.vitrivr.engine.core.util.extension.BufferedImage -import java.awt.image.BufferedImage import java.text.SimpleDateFormat import java.util.* @@ -65,7 +64,6 @@ sealed class InputData() { @Serializable data class TextInputData(val data: String, override val comparison: String? = "==") : InputData() { override val type = InputType.TEXT - override fun toContent(): TextContent = InMemoryTextContent(data) } @@ -76,11 +74,9 @@ data class TextInputData(val data: String, override val comparison: String? = "= @Serializable data class VectorInputData(val data: List, override val comparison: String? = "==") : InputData(){ override val type = InputType.VECTOR - override fun toContent(): ContentElement<*> { throw UnsupportedOperationException("Cannot derive content from VectorInputData") } - } /** @@ -90,13 +86,7 @@ data class VectorInputData(val data: List, override val comparison: Strin @Serializable data class ImageInputData(val data: String, override val comparison: String? = "==") : InputData() { override val type = InputType.VECTOR - override fun toContent(): ImageContent = InMemoryImageContent(image) - - /** - * [BufferedImage] representation of the base64 input. - */ - private val image: BufferedImage by lazy { BufferedImage(data) } - + override fun toContent(): ImageContent = InMemoryImageContent(BufferedImage(data)) } /** @@ -150,7 +140,7 @@ data class DateInputData(val data: String, override val comparison: String? = "= /** * Parses the input in YYYY-mm-dd format. */ - fun parseDate():Date{ + fun parseDate(): Date { val formatter = SimpleDateFormat("YYYY-mm-dd", Locale.ENGLISH) return formatter.parse(data) }