From 1edd8d0888790b6daf711377308784ce4669314b Mon Sep 17 00:00:00 2001 From: ehennestad Date: Fri, 24 Oct 2025 10:16:41 +0200 Subject: [PATCH] Handle empty and scalar cases in string conversion Fixed string conversion for empty objects to return empty string Add extra step in ControlledTerm to ensure scalar string "" is treated as empty --- code/internal/+openminds/+abstract/ControlledTerm.m | 4 ++++ .../+openminds/+internal/+mixin/CustomInstanceDisplay.m | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/code/internal/+openminds/+abstract/ControlledTerm.m b/code/internal/+openminds/+abstract/ControlledTerm.m index db04f46b..fce42393 100644 --- a/code/internal/+openminds/+abstract/ControlledTerm.m +++ b/code/internal/+openminds/+abstract/ControlledTerm.m @@ -50,6 +50,10 @@ propValues.id (1,1) string end + if isstring(instanceSpec) && isscalar(instanceSpec) && instanceSpec == "" + instanceSpec = string.empty; + end + if ~isempty(instanceSpec) if ischar(instanceSpec) instanceSpec = string(instanceSpec); diff --git a/code/internal/+openminds/+internal/+mixin/CustomInstanceDisplay.m b/code/internal/+openminds/+internal/+mixin/CustomInstanceDisplay.m index 7d3ec9e9..a4791b5f 100644 --- a/code/internal/+openminds/+internal/+mixin/CustomInstanceDisplay.m +++ b/code/internal/+openminds/+internal/+mixin/CustomInstanceDisplay.m @@ -30,10 +30,12 @@ end function str = string(obj) - if numel(obj) > 1 - str = strjoin( arrayfun(@(x) string(x.DisplayString), obj ), '; '); - else + if isempty(obj) + str = string.empty; + elseif isscalar(obj) str = string( obj.DisplayString ); + else + str = strjoin( arrayfun(@(x) string(x.DisplayString), obj ), '; '); end end