From 0d488fac088ae82a0b3d2dc275265e294fc96a40 Mon Sep 17 00:00:00 2001 From: Damien Goutte-Gattat Date: Fri, 18 Sep 2026 13:34:54 +0100 Subject: [PATCH 1/6] Support looking up type converters by type URI. Looking up object converters by the Java class representing the object to convert should always be fine, because any LinkML class should only ever be represented by a single Java class (I cannot imagine a scenario where that would not be the case). However, looking up _type_ converters is another matter, because it may very well happen that different LinkML types are rendered by the same Java type. That is in fact already the case for example with the `linkml:String` and `linkml:Uriorcurie` types, which are both rendered as `java.lang.String`. So far, we have been dealing with that scenario by annotating Uriorcurie-typed slot with a `Converter` annotation allowing to directly specify the converter to use (so that those slots would be converted by the appropriate CurieConverter, instead of the StringConverter). But a more generic solution is needed. This commit implements such a solution. It (1) defines a new `TypeURI` annotation that can be used on a field to explicitly indicate the LinkML type of the slot (identified by its URI); (2) add a `getURI` method to the `IConverter` interface, by which a converter can explicitly indicate the LinkML type it is intended to convert; (3) amend the `ConverterContext` class to allow looking up slot converters by the URI of the slot (if available, i.e. if the slot has been annotated with the new `TypeURI` annotation) before looking up by Java type. --- .../incenp/linkml/core/ConverterContext.java | 20 ++++++- .../incenp/linkml/core/CurieConverter.java | 7 +++ .../org/incenp/linkml/core/IConverter.java | 13 +++++ .../java/org/incenp/linkml/core/Slot.java | 21 ++++++++ .../linkml/core/annotations/TypeURI.java | 54 +++++++++++++++++++ 5 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java diff --git a/core/src/main/java/org/incenp/linkml/core/ConverterContext.java b/core/src/main/java/org/incenp/linkml/core/ConverterContext.java index 1ba40b7..a028e80 100644 --- a/core/src/main/java/org/incenp/linkml/core/ConverterContext.java +++ b/core/src/main/java/org/incenp/linkml/core/ConverterContext.java @@ -139,6 +139,7 @@ public class ConverterContext { private Map, IConverter> converters = new HashMap<>(); private Map slotConverters = new HashMap<>(); + private Map uriConverters = new HashMap<>(); private ObjectCache objectCache = new ObjectCache(); private List delayedAssignments = new ArrayList<>(); private Map prefixMap = new HashMap<>(); @@ -168,6 +169,9 @@ public ConverterContext() { // whose range is set to the linkml:Any class). converters.put(Object.class, new TransparentConverter()); + // Converters that are looked up by type URIs. + addConverter(new CurieConverter()); + objectConverterProvider = (t) -> new ObjectConverter(t); typeResolver = new DefaultTypeDesignatorResolver(); } @@ -234,7 +238,12 @@ public void addConverter(Class type) { * @param converter The converter to register. */ public void addConverter(IConverter converter) { - converters.put(converter.getType(), converter); + String uri = converter.getURI(); + if ( uri != null ) { + uriConverters.put(uri, converter); + } else { + converters.put(converter.getType(), converter); + } } /** @@ -300,7 +309,14 @@ public IConverter getConverter(Slot slot) throws LinkMLRuntimeException { if ( type != null ) { conv = getCustomConverter(type, slot.getInnerType()); } else { - conv = getConverter(slot.getInnerType()); + String typeUri = slot.getTypeURI(); + if ( typeUri != null ) { + conv = uriConverters.get(typeUri); + } + + if ( conv == null ) { + conv = getConverter(slot.getInnerType()); + } } slotConverters.put(slot, conv); } diff --git a/core/src/main/java/org/incenp/linkml/core/CurieConverter.java b/core/src/main/java/org/incenp/linkml/core/CurieConverter.java index 3f6cdf8..af9d61b 100644 --- a/core/src/main/java/org/incenp/linkml/core/CurieConverter.java +++ b/core/src/main/java/org/incenp/linkml/core/CurieConverter.java @@ -52,6 +52,13 @@ */ public class CurieConverter extends StringConverter { + public static final String URIORCURIE_TYPE_URI = "https://w3id.org/linkml/Uriorcurie"; + + @Override + public String getURI() { + return URIORCURIE_TYPE_URI; + } + @Override protected Object convertImpl(Object raw, ConverterContext ctx) throws LinkMLRuntimeException { if ( raw instanceof String ) { diff --git a/core/src/main/java/org/incenp/linkml/core/IConverter.java b/core/src/main/java/org/incenp/linkml/core/IConverter.java index ba91e21..5af1805 100644 --- a/core/src/main/java/org/incenp/linkml/core/IConverter.java +++ b/core/src/main/java/org/incenp/linkml/core/IConverter.java @@ -53,6 +53,19 @@ public interface IConverter { */ public Class getType(); + /** + * Gets the URI identifying the LinkML type this converter is intended for. + *

+ * This is intended to provide another way to look up converter objects, if + * looking up by the Java type (using {@link #getType()}) is not enough + * (typically, when several LinkML types are rendered using the same Java type). + * + * @return The LinkML type URI. May be {@code null}. + */ + default public String getURI() { + return null; + } + /** * Converts a raw object into a LinkML object. *

diff --git a/core/src/main/java/org/incenp/linkml/core/Slot.java b/core/src/main/java/org/incenp/linkml/core/Slot.java index 1e0e4fd..b26edff 100644 --- a/core/src/main/java/org/incenp/linkml/core/Slot.java +++ b/core/src/main/java/org/incenp/linkml/core/Slot.java @@ -52,6 +52,7 @@ import org.incenp.linkml.core.annotations.Required; import org.incenp.linkml.core.annotations.SlotName; import org.incenp.linkml.core.annotations.TypeDesignator; +import org.incenp.linkml.core.annotations.TypeURI; /** * Represents a “slot” (that is, a field) on a specific LinkML object. @@ -197,6 +198,23 @@ public String getLinkedURI() { return annot != null ? annot.value() : null; } + /** + * Gets the URI that identifies the type of the slot. + *

+ * A field representing a LinkML slot may be annotated with a {@link TypeURI} + * annotation indicating the URI for the type of the slot’s range. This is + * useful if several LinkML types are rendered using the same Java type, to + * distinguish what was the original LinkML type. + * + * @return The URI for the type set as the slot’s range. May be {@code null} if + * the field has not been explicitly annotated. + */ + public String getTypeURI() { + TypeURI annot = field.getAnnotation(TypeURI.class); + return annot != null ? annot.value() : null; + + } + /** * Indicates whether the slot is expected to hold multiple values. * @@ -214,6 +232,9 @@ public boolean isMultivalued() { * false. */ public boolean isCurieTyped() { + if ( CurieConverter.URIORCURIE_TYPE_URI.equals(getTypeURI()) ) { + return true; + } Class customConverter = getCustomConverter(); return customConverter != null && customConverter.equals(CurieConverter.class); } diff --git a/core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java b/core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java new file mode 100644 index 0000000..16b02a6 --- /dev/null +++ b/core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java @@ -0,0 +1,54 @@ +/* + * LinkML-Java - LinkML library for Java + * Copyright © 2026 Damien Goutte-Gattat + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * (1) Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * (2) Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * (3) Neither the name of the copyright holder nor the names its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +package org.incenp.linkml.core.annotations; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * An annotation to indicate the URI associated with the LinkML type of a field. + *

+ * When this annotation is present, it can be used to determine how the field + * should be (de)serialized, instead of determining that solely from the field’s + * Java type. + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface TypeURI { + String value(); +} From 100f04c5214947124d2f9ada66b8b70f7372b1a4 Mon Sep 17 00:00:00 2001 From: Damien Goutte-Gattat Date: Sat, 19 Sep 2026 10:05:37 +0100 Subject: [PATCH 2/6] Update code generation script. Now that we have a TypeURI annotation, the Java generator script needs to ensure that this annotation is added to all fields that require it. The way we do this is by introducing a concept of "custom type map", which is found in the same directory as the code templates. The map is a simple file where each line is of the form: where is the URI of a LinkML type and is the Java type to use to represent the LinkML type in Java code. This map serves two related purposes: (i) it allows to override the default type mappings set forth in LinkML-Py's code generator, and (ii) when a field has a type set by this map, this indicates the field should be annotated with a TypeURI annotation. --- core/src/test/linkml/scripts/javagen.py | 47 ++- core/src/test/linkml/templates/_types.map | 1 + .../templates/class-org.incenp.linkml.jinja2 | 351 ++++++++++++++++++ ext/src/main/linkml/scripts/javagen.py | 49 ++- 4 files changed, 439 insertions(+), 9 deletions(-) create mode 100644 core/src/test/linkml/templates/_types.map create mode 100644 core/src/test/linkml/templates/class-org.incenp.linkml.jinja2 diff --git a/core/src/test/linkml/scripts/javagen.py b/core/src/test/linkml/scripts/javagen.py index 23ab158..410f954 100644 --- a/core/src/test/linkml/scripts/javagen.py +++ b/core/src/test/linkml/scripts/javagen.py @@ -12,6 +12,44 @@ def cleanup_dir(directory: Path) -> None: directory.rmdir() +class CustomGenerator(JavaGenerator): + + custom_type_map_read: bool = False + custom_type_map = {} + + def lookup_custom_map_type(self, t): + if not self.custom_type_map_read: + mapfile = self.template_dir / "_types.map" + if mapfile.exists(): + with mapfile.open("r") as f: + for line in f: + line = line.strip() + if line.startswith("#"): + continue + items = line.split() + if len(items) == 2: + self.custom_type_map[items[0]] = items[1] + self.custom_type_map_read = True + return self.custom_type_map.get(t, None) + + def map_type(self, t, required=False): + uri = self.get_type_uri(t.name) + if uri is not None: + custom_type = self.lookup_custom_map_type(uri) + if custom_type is not None: + return custom_type + return super().map_type(t, required) + + def get_type_uri(self, name, custom_only=False): + if name in self.schemaview.all_types(): + uri = self.schemaview.get_uri(name, expand=True, native=True) + if not uri.startswith("https://w3id.org/linkml/"): + uri = self.schemaview.get_uri(name, expand=True, native=False) + if not custom_only or self.lookup_custom_map_type(uri) is not None: + return uri + return None + + @click.option("--output-directory", type=click.Path(dir_okay=True, file_okay=False, path_type=Path), default=Path("core/src/test/java")) @@ -31,10 +69,11 @@ def cli(output_directory: Path, schema_directory: Path) -> None: cleaned_up_dirs[output_dir] = 1 package_name = package_dir.as_posix().replace("/", ".") - gen = JavaGenerator(schema, - true_enums=True, - use_aliases=True, - package=package_name) + gen = CustomGenerator(schema, + true_enums=True, + use_aliases=True, + package=package_name, + template_dir=Path("core/src/test/linkml/templates")) gen.serialize(output_dir, template_variant="org.incenp.linkml") diff --git a/core/src/test/linkml/templates/_types.map b/core/src/test/linkml/templates/_types.map new file mode 100644 index 0000000..2f293cd --- /dev/null +++ b/core/src/test/linkml/templates/_types.map @@ -0,0 +1 @@ +https://w3id.org/linkml/Uriorcurie String diff --git a/core/src/test/linkml/templates/class-org.incenp.linkml.jinja2 b/core/src/test/linkml/templates/class-org.incenp.linkml.jinja2 new file mode 100644 index 0000000..dd4ba2c --- /dev/null +++ b/core/src/test/linkml/templates/class-org.incenp.linkml.jinja2 @@ -0,0 +1,351 @@ +{# + Jinja2 template for a Java class intended to be used with the + LinkML-Java runtime. +-#} +package {{ doc.package }}; + +{# The types that may be required by the slots. -#} +import java.net.URI; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZonedDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +{# The annotations required by the LinkML-Java runtime -#} +import org.incenp.linkml.core.annotations.Converter; +import org.incenp.linkml.core.annotations.ExtensionHolder; +import org.incenp.linkml.core.annotations.Identifier; +import org.incenp.linkml.core.annotations.Inlined; +import org.incenp.linkml.core.annotations.LinkURI; +import org.incenp.linkml.core.annotations.Required; +import org.incenp.linkml.core.annotations.SlotName; +import org.incenp.linkml.core.annotations.TypeDesignator; +import org.incenp.linkml.core.annotations.TypeURI; + +@LinkURI("{{ cls.class_uri }}") +public{%if cls.abstract %} abstract{% endif %} class {{ cls.name }}{% if cls.is_a %} extends {{ cls.is_a }}{% endif %} { +{# The fields representing the slots. -#} +{%- for f in cls.fields %} +{%- if f.source_slot.multivalued and gen.get_refined_ranges(f.source_slot.name, cls.source_class.name)|length %} +{%- set real_range = "List extraSlots; +{% endif -%} + +{#- The public accessors. #} +{%- for f in cls.fields %} +{%- if f.source_slot.multivalued and gen.get_refined_ranges(f.source_slot.name, cls.source_class.name)|length %} +{%- set real_range = "List(); +{%- else %} + this.{{ f.name }} = new ArrayList<>(); +{%- endif %} + } + return this.{{ f.name }}; + } +{%- if gen.get_refined_ranges(f.source_slot.name, cls.source_class.name)|length %} +{#- This is a multivalued slot whose range is refined in at least one subclass. + We provide two additional convenience accessors: + + - one to easily return a list with a fully captured type; + - and one that additionally allows to initializes the list if needed. #} + + @SuppressWarnings("unchecked") + public List {{ gen.get_read_accessor_name(f.source_slot) }}(Class t) { + return (List) this.{{ f.name }}; + } + + @SuppressWarnings("unchecked") + public List {{ gen.get_read_accessor_name(f.source_slot) }}(Class t, boolean create) { + if ( this.{{ f.name }} == null && create ) { + this.{{ f.name }} = new ArrayList(); + } + return (List) this.{{ f.name }}; + } +{%- endif %} +{%- endif %} +{% endfor %} + +{#- The public accessors for the refined inherited slots. #} +{%- for f in cls.all_fields %} +{%- if f.refined_ranges %} +{%- if not f.source_slot.multivalued %} +{#- Simple case: A single-valued slot. + + We need: + + - one read accessor that overrides the inherited read accessor to + change the return type to the refined range; + - one write accessor that overloads the inherited write accessor to + accept an argument of the refined type; + - one write accessor that overrides the inherited write accessor to + add a runtime type check; there must be one such accessor for every + refinement that occurred in the "history" of the slot. #} + @Override + public {{ f.range }} {{ gen.get_read_accessor_name(f.source_slot) }}() { + return ({{ f.range }}) super.{{ gen.get_read_accessor_name(f.source_slot) }}(); + } + + public void {{ gen.get_write_accessor_name(f.source_slot) }}({{ f.range }} value) { + super.{{ gen.get_write_accessor_name(f.source_slot) }}(value); + } + +{%- for refined_range in f.refined_ranges %} + + @Override + public void {{ gen.get_write_accessor_name(f.source_slot) }}({{ refined_range }} value) { + if ( !(value instanceof {{ f.range }}) ) { + throw new IllegalArgumentException("Invalid {{ f.name }} value"); + } + super.{{ gen.get_write_accessor_name(f.source_slot) }}(value); + } +{%- endfor %} +{# #} +{%- else %} +{#- Multivalued refined inherited slots are inherently more complex, due + to the fact that they are represented using Java generics, and that + with Java generics, List is _not_ a subtype of List even if G + is a subtype of F. This restricts what we can override from the + parent class(es). + + So we do the following: + + (1) We override the basic `getX()` read accessor so that it returns + a list of the refined type. The exact return type will depend on + whether the slot is further refined in a subclass or not: if it is + further refined, we must return `List`, so + that derived classes can further override the accessor and refine the + return type; if there are no further refinement down the class tree, + then we can return `List` directly. + + (2) We likewise override the `getX(boolean)` convenience accessor + (the one that creates the list as needed) in a similar fashion. + + (3) We override the parameterized `getX(Class)` + accessor (provided in the base class and intended to allow client + code to easily obtain a list of the exact required type without + having to do an explicit cast) to add a runtime check that the + required type is compatible with the refined type in this class. + + (4) We likewise override the `getX(Class, boolean)` + convenience accessor (which combines the functionalities of the two + previous accessors). + + (5) Lastly, we override the basic `setX()` write accessor to add + a runtime check that all items in the provided list are compatible + with the refined type in this class. + #} +{%- set real_range = f.range[5:-1] %} +{%- set base_range = f.refined_ranges[-1][5:-1] %} +{%- set refined_further = gen.get_refined_ranges(f.source_slot.name, cls.source_class.name)|length %} + @Override + @SuppressWarnings("unchecked") + public List<{% if refined_further %}? extends {% endif %}{{ real_range }}> {{ gen.get_read_accessor_name(f.source_slot) }}() { + return (List<{{ real_range }}>) super.{{ gen.get_read_accessor_name(f.source_slot) }}(); + } + + @Override + public List<{% if refined_further %}? extends {% endif %}{{ real_range }}> {{ gen.get_read_accessor_name(f.source_slot) }}(boolean create) { + return super.{{ gen.get_read_accessor_name(f.source_slot) }}({{ real_range }}.class, create); + } + + @Override + public List {{ gen.get_read_accessor_name(f.source_slot) }}(Class t) { + if ( !{{ real_range }}.class.isAssignableFrom(t) ) { + throw new IllegalArgumentException("Invalid type parameter"); + } + return super.{{ gen.get_read_accessor_name(f.source_slot) }}(t); + } + + @Override + public List {{ gen.get_read_accessor_name(f.source_slot) }}(Class t, boolean create) { + if ( !{{ real_range }}.class.isAssignableFrom(t) ) { + throw new IllegalArgumentException("Invalid type parameter"); + } + return super.{{ gen.get_read_accessor_name(f.source_slot) }}(t, create); + } + + @Override + public void {{ gen.get_write_accessor_name(f.source_slot) }}(List value) { + if ( value != null ) { + for ( {{ base_range }} item : value ) { + if ( !(item instanceof {{ real_range }}) ) { + throw new IllegalArgumentException("Invalid {{ f.name }} value"); + } + } + } + super.{{ gen.get_write_accessor_name(f.source_slot) }}(value); + } +{# #} +{%- endif %} +{%- endif %} +{%- endfor %} + +{%- if gen.needs_extra_slots(cls.source_class) %} + public void setExtraSlots(Map extraSlots) { + this.extraSlots = extraSlots; + } + + public Map getExtraSlots() { + return this.extraSlots; + } + + public Map getExtraSlots(boolean set) { + if ( this.extraSlots == null && set ) { + this.extraSlots = new HashMap<>(); + } + return this.extraSlots; + } +{% endif -%} + +{#- Visitors? #} +{%- for visitor in visitors %} +{%- if cls.source_class.name == visitor or gen.has_ancestor(cls.source_class, visitor) %} + public void accept(I{{ gen.get_class_name(visitor) }}Visitor v) { + v.visit(this); + } +{# #} +{%- endif %} +{%- endfor %} + +{#- The overridden methods from Object. #} + @Override + public String toString() { +{%- set identifier_slot = gen.schemaview.get_identifier_slot(cls.source_class.name, use_key=True) %} +{%- if identifier_slot %} + return "{{ cls.name }}({{ identifier_slot.alias|default(identifier_slot.name, true) }}=" + this.{{ gen.get_read_accessor_name(identifier_slot) }}() + ")"; +{%- else %} + StringBuilder sb = new StringBuilder(); + Object o; + sb.append("{{ cls.name }}("); +{%- for slot in gen.schemaview.class_induced_slots(cls.source_class.name) %} + if ( (o = this.{{ gen.get_read_accessor_name(slot) }}()) != null ) { + sb.append("{{ slot.alias|default(slot.name, true) }}="); + sb.append(o); + sb.append(","); + } +{%- endfor %} + sb.append(")"); + return sb.toString(); +{%- endif %} + } + + @Override + public boolean equals(final Object o) { + if ( o == this ) return true; + if ( !(o instanceof {{ cls.name }}) ) return false; + final {{ cls.name }} other = ({{ cls.name }}) o; + if ( !other.canEqual((Object) this)) return false; +{#- No need to call the parent's method if we are directly derived from Object. #} +{%- if cls.is_a %} + if ( !super.equals(o) ) return false; +{% endif %} +{#- Now compare every slots. #} +{%- for f in cls.fields %} + final Object this${{ f.name }} = this.{{ gen.get_read_accessor_name(f.source_slot) }}(); + final Object other${{ f.name }} = other.{{ gen.get_read_accessor_name(f.source_slot) }}(); +{%- if f.range in ["int", "float", "double", "boolean"] %} + if ( this${{ f.name }} != other${{ f.name }} ) return false; +{%- else %} + if ( this${{ f.name }} == null ? other${{ f.name }} != null : !this${{ f.name }}.equals(other${{ f.name }}) ) return false; + {%- endif %} +{%- endfor %} +{%- if gen.needs_extra_slots(cls.source_class) %} + if ( this.extraSlots == null ? other.extraSlots != null : !this.extraSlots.equals(other.extraSlots) ) return false; +{%- endif %} + return true; + } + + protected boolean canEqual(final Object other) { + return other instanceof {{ cls.name }}; + } + + @Override + public int hashCode() { + final int PRIME = 59; + int result = {% if cls.is_a %}super.hashCode(){% else %}1{% endif %}; +{%- for f in cls.fields %} +{%- if f.range == "int" %} + result = result * PRIME + this.{{ gen.get_read_accessor_name(f.source_slot) }}(); +{%- elif f.range == "float" %} + result = result * PRIME + Float.floatToIntBits(this.{{ gen.get_read_accessor_name(f.source_slot) }}()); +{%- elif f.range == "double" %} + final long ${{ f.name }} = Double.doubleToLongBits(this.{{ gen.get_read_accessor_name(f.source_slot) }}()); + result = result * PRIME + (int) (${{ f.name }} >>> 32 ^ ${{ f.name }}); +{%- elif f.range == "boolean" %} + result = result * PRIME + (this.{{ gen.get_read_accessor_name(f.source_slot) }}() ? 79 : 97); +{%- else %} + final Object ${{ f.name }} = this.{{ gen.get_read_accessor_name(f.source_slot) }}(); + result = result * PRIME + (${{ f.name }} == null ? 43 : ${{ f.name }}.hashCode()); +{%- endif %} +{%- endfor %} +{%- if gen.needs_extra_slots(cls.source_class) %} + result = result * PRIME + (this.extraSlots == null ? 43 : this.extraSlots.hashCode()); +{%- endif %} + return result; + } +} diff --git a/ext/src/main/linkml/scripts/javagen.py b/ext/src/main/linkml/scripts/javagen.py index e3312e6..3a6001d 100644 --- a/ext/src/main/linkml/scripts/javagen.py +++ b/ext/src/main/linkml/scripts/javagen.py @@ -12,6 +12,44 @@ def cleanup_dir(directory: Path) -> None: directory.rmdir() +class CustomGenerator(JavaGenerator): + + custom_type_map_read: bool = False + custom_type_map = {} + + def lookup_custom_map_type(self, t): + if not self.custom_type_map_read: + mapfile = self.template_dir / "_types.map" + if mapfile.exists(): + with mapfile.open("r") as f: + for line in f: + line = line.strip() + if line.startswith("#"): + continue + items = line.split() + if len(items) == 2: + self.custom_type_map[items[0]] = items[1] + self.custom_type_map_read = True + return self.custom_type_map.get(t, None) + + def map_type(self, t, required=False): + uri = self.get_type_uri(t.name) + if uri is not None: + custom_type = self.lookup_custom_map_type(uri) + if custom_type is not None: + return custom_type + return super().map_type(t, required) + + def get_type_uri(self, name, custom_only=False): + if name in self.schemaview.all_types(): + uri = self.schemaview.get_uri(name, expand=True, native=True) + if not uri.startswith("https://w3id.org/linkml/"): + uri = self.schemaview.get_uri(name, expand=True, native=False) + if not custom_only or self.lookup_custom_map_type(uri) is not None: + return uri + return None + + @click.option("--output-directory", type=click.Path(dir_okay=True, file_okay=False, path_type=Path), default=Path("ext/src/main/java")) @@ -34,11 +72,12 @@ def cli(output_directory: Path, schema_directory: Path, linkml_directory: Path) cleaned_up_dirs[output_dir] = 1 package_name = package_dir.as_posix().replace("/", ".") - gen = JavaGenerator(schema, - importmap={"linkml:": linkml_directory.absolute().as_posix()}, - true_enums=True, - use_aliases=True, - package=package_name) + gen = CustomGenerator(schema, + importmap={"linkml:": linkml_directory.absolute().as_posix()}, + true_enums=True, + use_aliases=True, + package=package_name, + template_dir=Path("core/src/test/linkml/templates")) gen.serialize(output_dir, template_variant="org.incenp.linkml") From 54ac8c8d464edce0ab05bfb065738d0ce3c54c04 Mon Sep 17 00:00:00 2001 From: Damien Goutte-Gattat Date: Sat, 19 Sep 2026 12:13:29 +0100 Subject: [PATCH 3/6] Add support for hex- and base64-encoded binary blobs. Add a `BinaryBlob` class to represent arbitrary binary blobs of data. The class is merely a thin wrapper around an array of bytes, providing support for encoding/decoding to/from Base64 and Base16 encodings and ensuring that binary blobs can be compared by values rather than by references. Add two converters to support (de)serialising BinaryBlob objects encoded as Base16- or Base64- encoded strings. The converters are automatically used whenever a slot has a range set to a type whose type URI is either `xsd:base64Binary` or `xsd:hexBinary` (provided the slot is correctly annotated with the type URI). --- .../linkml/core/Base16BlobConverter.java | 74 +++++ .../linkml/core/Base64BlobConverter.java | 74 +++++ .../incenp/linkml/core/ConverterContext.java | 2 + .../incenp/linkml/core/types/BinaryBlob.java | 259 ++++++++++++++++++ .../linkml/core/ObjectConverterTest.java | 15 + .../linkml/core/types/BinaryBlobTest.java | 117 ++++++++ .../linkml/core/samples/base/samples.yaml | 28 ++ 7 files changed, 569 insertions(+) create mode 100644 core/src/main/java/org/incenp/linkml/core/Base16BlobConverter.java create mode 100644 core/src/main/java/org/incenp/linkml/core/Base64BlobConverter.java create mode 100644 core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java create mode 100644 core/src/test/java/org/incenp/linkml/core/types/BinaryBlobTest.java diff --git a/core/src/main/java/org/incenp/linkml/core/Base16BlobConverter.java b/core/src/main/java/org/incenp/linkml/core/Base16BlobConverter.java new file mode 100644 index 0000000..4233c29 --- /dev/null +++ b/core/src/main/java/org/incenp/linkml/core/Base16BlobConverter.java @@ -0,0 +1,74 @@ +/* + * LinkML-Java - LinkML library for Java + * Copyright © 2026 Damien Goutte-Gattat + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * (1) Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * (2) Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * (3) Neither the name of the copyright holder nor the names its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +package org.incenp.linkml.core; + +import org.incenp.linkml.core.types.BinaryBlob; +import org.incenp.linkml.core.types.BinaryBlob.BinaryEncoding; + +/** + * A converter for slots typed as xsd:hexBinary. + *

+ * Such slots are represented in this runtime as {@link BinaryBlob} fields. + */ +public class Base16BlobConverter extends ScalarConverterBase { + + @Override + public Class getType() { + return BinaryBlob.class; + } + + @Override + public String getURI() { + return "http://www.w3.org/2001/XMLSchema#hexBinary"; + } + + @Override + protected Object convertImpl(Object raw, ConverterContext ctx) throws LinkMLRuntimeException { + try { + return new BinaryBlob(raw.toString(), BinaryEncoding.BASE16); + } catch ( IllegalArgumentException e ) { + throw new LinkMLValueError("Invalid value, hex-encoded binary blob expected", e); + } + } + + @Override + public Object serialise(Object object, ConverterContext ctx) throws LinkMLRuntimeException { + if ( getType().isInstance(object) ) { + return ((BinaryBlob) object).getValue(BinaryEncoding.BASE16); + } else { + throw new LinkMLInternalError("Invalid value"); + } + } +} diff --git a/core/src/main/java/org/incenp/linkml/core/Base64BlobConverter.java b/core/src/main/java/org/incenp/linkml/core/Base64BlobConverter.java new file mode 100644 index 0000000..6fbfc69 --- /dev/null +++ b/core/src/main/java/org/incenp/linkml/core/Base64BlobConverter.java @@ -0,0 +1,74 @@ +/* + * LinkML-Java - LinkML library for Java + * Copyright © 2026 Damien Goutte-Gattat + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * (1) Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * (2) Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * (3) Neither the name of the copyright holder nor the names its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +package org.incenp.linkml.core; + +import org.incenp.linkml.core.types.BinaryBlob; +import org.incenp.linkml.core.types.BinaryBlob.BinaryEncoding; + +/** + * A converter for slots typed as xsd:base64Binary. + *

+ * Such slots are represented in this runtime as {@link BinaryBlob} fields. + */ +public class Base64BlobConverter extends ScalarConverterBase { + + @Override + public Class getType() { + return BinaryBlob.class; + } + + @Override + public String getURI() { + return "http://www.w3.org/2001/XMLSchema#base64Binary"; + } + + @Override + protected Object convertImpl(Object raw, ConverterContext ctx) throws LinkMLRuntimeException { + try { + return new BinaryBlob(raw.toString(), BinaryEncoding.BASE64); + } catch ( IllegalArgumentException e ) { + throw new LinkMLValueError("Invalid value, Base64-encoded binary blob expected", e); + } + } + + @Override + public Object serialise(Object object, ConverterContext ctx) throws LinkMLRuntimeException { + if ( getType().isInstance(object) ) { + return ((BinaryBlob) object).getValue(BinaryEncoding.BASE64); + } else { + throw new LinkMLInternalError("Invalid value"); + } + } +} diff --git a/core/src/main/java/org/incenp/linkml/core/ConverterContext.java b/core/src/main/java/org/incenp/linkml/core/ConverterContext.java index a028e80..be09c72 100644 --- a/core/src/main/java/org/incenp/linkml/core/ConverterContext.java +++ b/core/src/main/java/org/incenp/linkml/core/ConverterContext.java @@ -171,6 +171,8 @@ public ConverterContext() { // Converters that are looked up by type URIs. addConverter(new CurieConverter()); + addConverter(new Base64BlobConverter()); + addConverter(new Base16BlobConverter()); objectConverterProvider = (t) -> new ObjectConverter(t); typeResolver = new DefaultTypeDesignatorResolver(); diff --git a/core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java b/core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java new file mode 100644 index 0000000..4896629 --- /dev/null +++ b/core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java @@ -0,0 +1,259 @@ +/* + * LinkML-Java - LinkML library for Java + * Copyright © 2026 Damien Goutte-Gattat + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * (1) Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * (2) Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * (3) Neither the name of the copyright holder nor the names its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +package org.incenp.linkml.core.types; + +import java.util.Arrays; +import java.util.Base64; + +/** + * This class represents a type intended to store arbitrary blobs of binary + * data. + *

+ * This is merely a wrapper around an array of bytes (byte[]). The + * wrapper makes it easier to provide the appropriate equals() and + * hashCode() behaviours. + */ +public class BinaryBlob { + + private byte[] value; + + /** + * Creates a new empty value. + */ + public BinaryBlob() { + value = new byte[] {}; + } + + /** + * Creates a new value with the specified array of bytes. + * + * @param value The initial content of the binary blob. + */ + public BinaryBlob(byte[] value) { + this.value = value; + } + + /** + * Creates a new value from an encoded string. + * + * @param value The initial content of the binary blob, encoded into a + * string. + * @param encoding How the initial value is encoded. + * @throws IllegalArgumentException If the string does not contain a valid value + * for the specified encoding. + */ + public BinaryBlob(String value, BinaryEncoding encoding) throws IllegalArgumentException { + switch ( encoding ) { + case BASE16: + this.value = BinaryBlob.decodeFromBase16(value); + break; + + case BASE64: + default: + this.value = BinaryBlob.decodeFromBase64(value); + break; + } + } + + /** + * Gets the value of this binary blob. + * + * @return The array of bytes representing the binary blob. + */ + public byte[] getValue() { + return value; + } + + /** + * Gets the value of this binary blob as an encoded string. + * + * @param encoding How to encode the value into a string. + * @return A string representation of the binary blob. + */ + public String getValue(BinaryEncoding encoding) { + switch ( encoding ) { + case BASE16: + return BinaryBlob.encodeToBase16(value); + + case BASE64: + default: + return BinaryBlob.encodeToBase64(value); + } + } + + /** + * Sets the value of this binary blob. + * + * @param value The array of bytes that is to be the new value of this blob. + */ + public void setValue(byte[] value) { + this.value = value; + } + + /** + * Sets the value of this binary blob from an encoded string. + * + * @param value The new value of the binary blob, encoded into a string. + * @param encoding How the value is encoded. + * @throws IllegalArgumentException If the string does not contain a valid value + * for the specified encoding + */ + public void setValue(String value, BinaryEncoding encoding) throws IllegalArgumentException { + switch ( encoding ) { + case BASE16: + this.value = BinaryBlob.decodeFromBase16(value); + break; + + case BASE64: + default: + this.value = BinaryBlob.decodeFromBase64(value); + break; + } + } + + @Override + public boolean equals(Object object) { + if ( object == null || !(object instanceof BinaryBlob) ) { + return false; + } + return Arrays.equals(value, ((BinaryBlob) object).value); + } + + @Override + public int hashCode() { + return Arrays.hashCode(value); + } + + /** + * Helper method to decode a Base64-encoded string into an array of bytes. + * + * @param value The string to decode. + * @return The decoded array of bytes. + * @throws IllegalArgumentException If the string does not contain valid Base64. + */ + public static byte[] decodeFromBase64(String value) throws IllegalArgumentException { + return Base64.getDecoder().decode(value); + } + + /** + * Helper method to encode an array of bytes into a Base64 string. + * + * @param value The array to encode. + * @return The Base64 representation of the array. + */ + public static String encodeToBase64(byte[] value) { + return Base64.getEncoder().encodeToString(value); + } + + /** + * Helper method to decode a Base16- (i.e., hexadecimal-) encoded string into an + * array of bytes. + * + * @param value The string to decode. + * @return The decoded array of bytes. + */ + public static byte[] decodeFromBase16(String value) { + int len = value.length(); + int dlen = 0; + byte[] tmp = new byte[len / 2]; + boolean high = true; + int val; + + for ( int i = 0; i < len; i++ ) { + char c = value.charAt(i); + + if ( c >= '0' && c <= '9' ) { + val = (c - '0'); + } else if ( c >= 'A' && c <= 'F' ) { + val = (c - 'A' + 10); + } else if ( c >= 'a' && c <= 'f' ) { + val = (c - 'a' + 10); + } else { + continue; + } + + if ( high ) { + tmp[dlen] = (byte) (val << 4); + high = false; + } else { + tmp[dlen++] |= (byte) (val & 0x0F); + high = true; + } + } + + return Arrays.copyOf(tmp, dlen); + } + + /** + * Helper method to encode an array of bytes into a Base16 (i.e., hexadecimal) + * string. + * + * @param value The array to encode. + * @return The Base16 representation of the array. + */ + public static String encodeToBase16(byte[] value) { + StringBuilder sb = new StringBuilder(); + + for ( int i = 0; i < value.length; i++ ) { + byte hi, lo; + + hi = (byte) ((value[i] & 0xF0) >> 4); + lo = (byte) (value[i] & 0x0F); + + sb.appendCodePoint(hi >= 10 ? hi - 10 + 'A' : hi + '0'); + sb.appendCodePoint(lo >= 10 ? lo - 10 + 'A' : lo + '0'); + } + + return sb.toString(); + } + + /** + * Supported string encodings for binary data. + */ + public enum BinaryEncoding { + /** + * Base64 encoding, as per + * RFC-4648 §4. + */ + BASE64, + + /** + * Base16 (or hexadecimal) encoding, as per + * RFC-4648 + * §8. + */ + BASE16 + } +} diff --git a/core/src/test/java/org/incenp/linkml/core/ObjectConverterTest.java b/core/src/test/java/org/incenp/linkml/core/ObjectConverterTest.java index 147784d..50cc06b 100644 --- a/core/src/test/java/org/incenp/linkml/core/ObjectConverterTest.java +++ b/core/src/test/java/org/incenp/linkml/core/ObjectConverterTest.java @@ -52,6 +52,7 @@ import org.incenp.linkml.core.samples.base.BaseURISelfDesignatedClass; import org.incenp.linkml.core.samples.base.ClassWithCustomConverter; import org.incenp.linkml.core.samples.base.ContainerOfAny; +import org.incenp.linkml.core.samples.base.ContainerOfBinaryData; import org.incenp.linkml.core.samples.base.ContainerOfBooleanValues; import org.incenp.linkml.core.samples.base.ContainerOfIRIIdentifiableObjects; import org.incenp.linkml.core.samples.base.ContainerOfIdentifiedSelfDesignatedObjects; @@ -773,6 +774,20 @@ void testParsingWithRefinedInheritedSlots() throws IOException { Assertions.assertEquals(2, tdf.getBars().get(0).getLength()); } + @Test + void testParsingBinaryBlobs() throws IOException { + ContainerOfBinaryData cobd = parseString("signature: aGVsbG8=\nsignatures:\n - d29ybGQ=\n" + + "checksum: 68656C6C6F\nchecksums:\n - 776F726C64\n", + ContainerOfBinaryData.class); + + Assertions.assertEquals("hello", new String(cobd.getSignature().getValue())); + Assertions.assertEquals("world", new String(cobd.getSignatures().get(0).getValue())); + Assertions.assertEquals("hello", new String(cobd.getChecksum().getValue())); + Assertions.assertEquals("world", new String(cobd.getChecksums().get(0).getValue())); + + roundtrip(cobd); + } + private T parse(String file, Class target) throws IOException { ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); FileInputStream stream = new FileInputStream(new File("src/test/resources/core/samples/", file)); diff --git a/core/src/test/java/org/incenp/linkml/core/types/BinaryBlobTest.java b/core/src/test/java/org/incenp/linkml/core/types/BinaryBlobTest.java new file mode 100644 index 0000000..dea875d --- /dev/null +++ b/core/src/test/java/org/incenp/linkml/core/types/BinaryBlobTest.java @@ -0,0 +1,117 @@ +/* + * LinkML-Java - LinkML library for Java + * Copyright © 2026 Damien Goutte-Gattat + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * (1) Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * (2) Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * (3) Neither the name of the copyright holder nor the names its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +package org.incenp.linkml.core.types; + +import org.incenp.linkml.core.types.BinaryBlob.BinaryEncoding; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class BinaryBlobTest { + + @Test + void testBase64Decoding() { + byte[] decoded = BinaryBlob.decodeFromBase64("SGVsbG8sIFdvcmxkIQ=="); + Assertions.assertEquals("Hello, World!", new String(decoded)); + } + + @Test + void testBase64Encoding() { + String encoded = BinaryBlob.encodeToBase64("Hello, World!".getBytes()); + Assertions.assertEquals("SGVsbG8sIFdvcmxkIQ==", encoded); + } + + @Test + void testBase16Decoding() { + byte[] decoded = BinaryBlob.decodeFromBase16("48656C6C6F2C20576F726C6421"); + Assertions.assertEquals("Hello, World!", new String(decoded)); + + decoded = BinaryBlob.decodeFromBase16("48656c6c6f2c20576f726c6421"); + Assertions.assertEquals("Hello, World!", new String(decoded)); + + decoded = BinaryBlob.decodeFromBase16("48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21"); + Assertions.assertEquals("Hello, World!", new String(decoded)); + } + + @Test + void testBase16Encoding() { + String encoded = BinaryBlob.encodeToBase16("Hello, World!".getBytes()); + Assertions.assertEquals("48656C6C6F2C20576F726C6421", encoded); + } + + @Test + void testConstructor() { + BinaryBlob blob = new BinaryBlob("SGVsbG8sIFdvcmxkIQ==", BinaryEncoding.BASE64); + Assertions.assertEquals("Hello, World!", new String(blob.getValue())); + + blob = new BinaryBlob("48656C6C6F2C20576F726C6421", BinaryEncoding.BASE16); + Assertions.assertEquals("Hello, World!", new String(blob.getValue())); + } + + @Test + void testEmpty() { + BinaryBlob blob = new BinaryBlob("", BinaryEncoding.BASE64); + Assertions.assertTrue(blob.getValue().length == 0); + + blob = new BinaryBlob("", BinaryEncoding.BASE16); + Assertions.assertTrue(blob.getValue().length == 0); + } + + @Test + void testSetter() { + BinaryBlob blob = new BinaryBlob(); + blob.setValue("SGVsbG8=", BinaryEncoding.BASE64); + Assertions.assertEquals("Hello", new String(blob.getValue())); + + blob.setValue("576F726C64", BinaryEncoding.BASE16); + Assertions.assertEquals("World", new String(blob.getValue())); + } + + @Test + void testGetter() { + BinaryBlob blob = new BinaryBlob("SGVsbG8sIFdvcmxkIQ==", BinaryEncoding.BASE64); + Assertions.assertEquals("48656C6C6F2C20576F726C6421", blob.getValue(BinaryEncoding.BASE16)); + } + + @Test + void testEqualsAndHashcode() { + BinaryBlob b1 = new BinaryBlob("SGVsbG8sIFdvcmxkIQ==", BinaryEncoding.BASE64); + BinaryBlob b2 = new BinaryBlob("48656C6C6F2C20576F726C6421", BinaryEncoding.BASE16); + + Assertions.assertFalse(b1 == b2); + Assertions.assertTrue(b1.equals(b2)); + Assertions.assertEquals(b1, b2); + Assertions.assertEquals(b1.hashCode(), b2.hashCode()); + } +} diff --git a/core/src/test/linkml/schemas/org/incenp/linkml/core/samples/base/samples.yaml b/core/src/test/linkml/schemas/org/incenp/linkml/core/samples/base/samples.yaml index e9a74fa..711ad30 100644 --- a/core/src/test/linkml/schemas/org/incenp/linkml/core/samples/base/samples.yaml +++ b/core/src/test/linkml/schemas/org/incenp/linkml/core/samples/base/samples.yaml @@ -10,6 +10,7 @@ license: https://spdx.org/licenses/BSD-3-Clause.html prefixes: linkml: https://w3id.org/linkml/ rt: https://incenp.org/dvlpt/linkml-java/tests/samples# + xsd: http://www.w3.org/2001/XMLSchema# default_prefix: rt default_range: string @@ -17,6 +18,18 @@ default_range: string imports: - linkml:types +types: + + base64blob: + uri: xsd:base64Binary + base: string + description: A Base64-encoded array of bytes. + + hexblob: + uri: xsd:hexBinary + base: string + description: A hexadecimal-encoded array of bytes. + classes: SimpleClass: @@ -482,6 +495,21 @@ classes: inlined: true inlined_as_list: false + ContainerOfBinaryData: + description: >- + A class with slots expecting binary blobs. + attributes: + checksum: + range: hexblob + checksums: + range: hexblob + multivalued: true + signature: + range: base64blob + signatures: + range: base64blob + multivalued: true + enums: From 656f31e0be32fb4af3f70297eeb914a0ef089127 Mon Sep 17 00:00:00 2001 From: Damien Goutte-Gattat Date: Sat, 19 Sep 2026 12:17:47 +0100 Subject: [PATCH 4/6] Update LinkML Java templates. Update the custom type map to map xsd:base64Binary and xsd:hexBinary to the newly added BinaryBlob type. Also simplify the templates to import everything under `org.incenp.linkml.core.annotations.*`, instead of importing every annotation separately. --- core/src/test/linkml/templates/_types.map | 2 ++ .../linkml/templates/class-org.incenp.linkml.jinja2 | 13 +++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/core/src/test/linkml/templates/_types.map b/core/src/test/linkml/templates/_types.map index 2f293cd..24269bc 100644 --- a/core/src/test/linkml/templates/_types.map +++ b/core/src/test/linkml/templates/_types.map @@ -1 +1,3 @@ https://w3id.org/linkml/Uriorcurie String +http://www.w3.org/2001/XMLSchema#base64Binary BinaryBlob +http://www.w3.org/2001/XMLSchema#hexBinary BinaryBlob diff --git a/core/src/test/linkml/templates/class-org.incenp.linkml.jinja2 b/core/src/test/linkml/templates/class-org.incenp.linkml.jinja2 index dd4ba2c..24cd927 100644 --- a/core/src/test/linkml/templates/class-org.incenp.linkml.jinja2 +++ b/core/src/test/linkml/templates/class-org.incenp.linkml.jinja2 @@ -14,16 +14,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -{# The annotations required by the LinkML-Java runtime -#} -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.annotations.TypeURI; +{# The annotations and types required by the LinkML-Java runtime -#} +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("{{ cls.class_uri }}") public{%if cls.abstract %} abstract{% endif %} class {{ cls.name }}{% if cls.is_a %} extends {{ cls.is_a }}{% endif %} { From 2d1072c84d4e0ca8764f6d8dbc100e01ec740aaa Mon Sep 17 00:00:00 2001 From: Damien Goutte-Gattat Date: Sat, 19 Sep 2026 12:32:51 +0100 Subject: [PATCH 5/6] Re-generate LinkML-derived code. --- .../base/BaseCurieSelfDesignatedClass.java | 13 +- .../base/BaseMultiSelfDesignatedClass.java | 11 +- .../samples/base/BaseSelfDesignatedClass.java | 11 +- .../base/BaseURISelfDesignatedClass.java | 11 +- .../base/ClassWithCustomConverter.java | 15 +- .../core/samples/base/ContainerOfAny.java | 11 +- .../samples/base/ContainerOfBinaryData.java | 148 ++++++++++++++++++ .../base/ContainerOfBooleanValues.java | 11 +- .../ContainerOfIRIIdentifiableObjects.java | 11 +- ...inerOfIdentifiedSelfDesignatedObjects.java | 11 +- .../base/ContainerOfInlinedObjects.java | 11 +- .../base/ContainerOfIntegerValues.java | 11 +- ...ContainerOfKeyedSelfDesignatedObjects.java | 11 +- .../samples/base/ContainerOfReferences.java | 11 +- .../ContainerOfSelfDesignatedObjects.java | 11 +- .../samples/base/ContainerOfSimpleDicts.java | 11 +- .../base/ContainerOfSimpleObjects.java | 11 +- ...tainerOfURIKeyedSelfDesignatedObjects.java | 11 +- .../base/DerivedCurieSelfDesignatedClass.java | 11 +- .../DerivedIdentifiedSelfDesignatedClass.java | 11 +- .../base/DerivedKeyedSelfDesignatedClass.java | 11 +- .../base/DerivedMultiSelfDesignatedClass.java | 11 +- .../base/DerivedSelfDesignatedClass.java | 11 +- .../DerivedURIKeyedSelfDesignatedClass.java | 11 +- .../base/DerivedURISelfDesignatedClass.java | 11 +- .../base/ExtendedIdentifiableClass.java | 11 +- .../samples/base/ExtensibleSimpleClass.java | 11 +- .../core/samples/base/ExtraSimpleDict.java | 11 +- .../base/IRISimpleIdentifiableClass.java | 13 +- .../base/IdentifiedSelfDesignatedClass.java | 13 +- .../base/KeyedSelfDesignatedClass.java | 11 +- .../samples/base/MultivaluedSimpleDict.java | 11 +- .../core/samples/base/PrefixDeclaration.java | 11 +- .../samples/base/PrefixDeclarationHolder.java | 11 +- .../SecondDerivedSelfDesignatedClass.java | 11 +- ...SecondLevelDerivedSelfDesignatedClass.java | 11 +- .../linkml/core/samples/base/SimpleClass.java | 11 +- .../linkml/core/samples/base/SimpleDict.java | 11 +- .../samples/base/SimpleIdentifiableClass.java | 11 +- .../core/samples/base/SimpleKeyableClass.java | 11 +- .../base/URIKeyedSelfDesignatedClass.java | 11 +- .../linkml/core/samples/refinhslot/Bar.java | 11 +- .../samples/refinhslot/FirstDerivedBar.java | 11 +- .../samples/refinhslot/FirstDerivedFoo.java | 11 +- .../linkml/core/samples/refinhslot/Foo.java | 11 +- .../samples/refinhslot/SecondDerivedBar.java | 11 +- .../samples/refinhslot/SecondDerivedFoo.java | 11 +- .../samples/refinhslot/ThirdDerivedFoo.java | 11 +- .../linkml/schema/model/AltDescription.java | 11 +- .../linkml/schema/model/Annotatable.java | 11 +- .../linkml/schema/model/Annotation.java | 11 +- .../model/AnonymousClassExpression.java | 11 +- .../schema/model/AnonymousEnumExpression.java | 15 +- .../schema/model/AnonymousExpression.java | 41 ++--- .../schema/model/AnonymousSlotExpression.java | 11 +- .../schema/model/AnonymousTypeExpression.java | 11 +- .../linkml/schema/model/ArrayExpression.java | 41 ++--- .../linkml/schema/model/ClassDefinition.java | 15 +- .../linkml/schema/model/ClassExpression.java | 11 +- .../linkml/schema/model/ClassLevelRule.java | 11 +- .../incenp/linkml/schema/model/ClassRule.java | 41 ++--- .../linkml/schema/model/CommonMetadata.java | 41 ++--- .../linkml/schema/model/Definition.java | 13 +- .../schema/model/DimensionExpression.java | 41 ++--- .../incenp/linkml/schema/model/Element.java | 47 +++--- .../linkml/schema/model/EnumBinding.java | 41 ++--- .../linkml/schema/model/EnumDefinition.java | 17 +- .../linkml/schema/model/EnumExpression.java | 15 +- .../incenp/linkml/schema/model/Example.java | 11 +- .../linkml/schema/model/Expression.java | 11 +- .../linkml/schema/model/Extensible.java | 11 +- .../incenp/linkml/schema/model/Extension.java | 13 +- .../schema/model/ExtraSlotsExpression.java | 11 +- .../linkml/schema/model/ImportExpression.java | 43 +++-- .../incenp/linkml/schema/model/LocalName.java | 11 +- .../linkml/schema/model/MatchQuery.java | 13 +- .../linkml/schema/model/PathExpression.java | 41 ++--- .../schema/model/PatternExpression.java | 41 ++--- .../linkml/schema/model/PermissibleValue.java | 47 +++--- .../incenp/linkml/schema/model/Prefix.java | 11 +- .../schema/model/ReachabilityQuery.java | 17 +- .../linkml/schema/model/SchemaDefinition.java | 13 +- .../incenp/linkml/schema/model/Setting.java | 11 +- .../linkml/schema/model/SlotDefinition.java | 13 +- .../linkml/schema/model/SlotExpression.java | 11 +- .../linkml/schema/model/StructuredAlias.java | 41 ++--- .../linkml/schema/model/SubsetDefinition.java | 11 +- .../linkml/schema/model/TypeDefinition.java | 13 +- .../linkml/schema/model/TypeExpression.java | 11 +- .../linkml/schema/model/TypeMapping.java | 41 ++--- .../incenp/linkml/schema/model/UniqueKey.java | 41 ++--- .../linkml/schema/model/UnitOfMeasure.java | 15 +- 92 files changed, 572 insertions(+), 1061 deletions(-) create mode 100644 core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfBinaryData.java diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/BaseCurieSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/BaseCurieSelfDesignatedClass.java index 4b2b9e1..92a6887 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/BaseCurieSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/BaseCurieSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#BaseCurieSelfDesignatedClass") public class BaseCurieSelfDesignatedClass { @@ -26,7 +19,7 @@ public class BaseCurieSelfDesignatedClass { private String foo; @TypeDesignator - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#type") private String type; diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/BaseMultiSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/BaseMultiSelfDesignatedClass.java index c34ec60..582cff7 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/BaseMultiSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/BaseMultiSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#BaseMultiSelfDesignatedClass") public class BaseMultiSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/BaseSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/BaseSelfDesignatedClass.java index 97d1beb..2018448 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/BaseSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/BaseSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#BaseSelfDesignatedClass") public class BaseSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/BaseURISelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/BaseURISelfDesignatedClass.java index e72a189..129bdcc 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/BaseURISelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/BaseURISelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#BaseURISelfDesignatedClass") public class BaseURISelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ClassWithCustomConverter.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ClassWithCustomConverter.java index 3200bb2..c75e21a 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ClassWithCustomConverter.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ClassWithCustomConverter.java @@ -9,24 +9,17 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ClassWithCustomConverter") public class ClassWithCustomConverter { - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#uri") private String uri; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#uris") private List uris; diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfAny.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfAny.java index 5c3a464..7790b4f 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfAny.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfAny.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfAny") public class ContainerOfAny { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfBinaryData.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfBinaryData.java new file mode 100644 index 0000000..d1e3d0f --- /dev/null +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfBinaryData.java @@ -0,0 +1,148 @@ +package org.incenp.linkml.core.samples.base; + +import java.net.URI; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZonedDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; + +@LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfBinaryData") +public class ContainerOfBinaryData { + + @TypeURI("http://www.w3.org/2001/XMLSchema#hexBinary") + @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#checksum") + private BinaryBlob checksum; + + @TypeURI("http://www.w3.org/2001/XMLSchema#hexBinary") + @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#checksums") + private List checksums; + + @TypeURI("http://www.w3.org/2001/XMLSchema#base64Binary") + @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#signature") + private BinaryBlob signature; + + @TypeURI("http://www.w3.org/2001/XMLSchema#base64Binary") + @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#signatures") + private List signatures; + + public void setChecksum(BinaryBlob checksum) { + this.checksum = checksum; + } + + public BinaryBlob getChecksum() { + return this.checksum; + } + + public void setChecksums(List checksums) { + this.checksums = checksums; + } + + public List getChecksums() { + return this.checksums; + } + + public List getChecksums(boolean set) { + if ( this.checksums == null && set ) { + this.checksums = new ArrayList<>(); + } + return this.checksums; + } + + public void setSignature(BinaryBlob signature) { + this.signature = signature; + } + + public BinaryBlob getSignature() { + return this.signature; + } + + public void setSignatures(List signatures) { + this.signatures = signatures; + } + + public List getSignatures() { + return this.signatures; + } + + public List getSignatures(boolean set) { + if ( this.signatures == null && set ) { + this.signatures = new ArrayList<>(); + } + return this.signatures; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + Object o; + sb.append("ContainerOfBinaryData("); + if ( (o = this.getChecksum()) != null ) { + sb.append("checksum="); + sb.append(o); + sb.append(","); + } + if ( (o = this.getChecksums()) != null ) { + sb.append("checksums="); + sb.append(o); + sb.append(","); + } + if ( (o = this.getSignature()) != null ) { + sb.append("signature="); + sb.append(o); + sb.append(","); + } + if ( (o = this.getSignatures()) != null ) { + sb.append("signatures="); + sb.append(o); + sb.append(","); + } + sb.append(")"); + return sb.toString(); + } + + @Override + public boolean equals(final Object o) { + if ( o == this ) return true; + if ( !(o instanceof ContainerOfBinaryData) ) return false; + final ContainerOfBinaryData other = (ContainerOfBinaryData) o; + if ( !other.canEqual((Object) this)) return false; + final Object this$checksum = this.getChecksum(); + final Object other$checksum = other.getChecksum(); + if ( this$checksum == null ? other$checksum != null : !this$checksum.equals(other$checksum) ) return false; + final Object this$checksums = this.getChecksums(); + final Object other$checksums = other.getChecksums(); + if ( this$checksums == null ? other$checksums != null : !this$checksums.equals(other$checksums) ) return false; + final Object this$signature = this.getSignature(); + final Object other$signature = other.getSignature(); + if ( this$signature == null ? other$signature != null : !this$signature.equals(other$signature) ) return false; + final Object this$signatures = this.getSignatures(); + final Object other$signatures = other.getSignatures(); + if ( this$signatures == null ? other$signatures != null : !this$signatures.equals(other$signatures) ) return false; + return true; + } + + protected boolean canEqual(final Object other) { + return other instanceof ContainerOfBinaryData; + } + + @Override + public int hashCode() { + final int PRIME = 59; + int result = 1; + final Object $checksum = this.getChecksum(); + result = result * PRIME + ($checksum == null ? 43 : $checksum.hashCode()); + final Object $checksums = this.getChecksums(); + result = result * PRIME + ($checksums == null ? 43 : $checksums.hashCode()); + final Object $signature = this.getSignature(); + result = result * PRIME + ($signature == null ? 43 : $signature.hashCode()); + final Object $signatures = this.getSignatures(); + result = result * PRIME + ($signatures == null ? 43 : $signatures.hashCode()); + return result; + } +} \ No newline at end of file diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfBooleanValues.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfBooleanValues.java index 46cb51b..9a698a9 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfBooleanValues.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfBooleanValues.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfBooleanValues") public class ContainerOfBooleanValues { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIRIIdentifiableObjects.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIRIIdentifiableObjects.java index a724845..d938ab8 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIRIIdentifiableObjects.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIRIIdentifiableObjects.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfIRIIdentifiableObjects") public class ContainerOfIRIIdentifiableObjects { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIdentifiedSelfDesignatedObjects.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIdentifiedSelfDesignatedObjects.java index a16bea0..484f65e 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIdentifiedSelfDesignatedObjects.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIdentifiedSelfDesignatedObjects.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfIdentifiedSelfDesignatedObjects") public class ContainerOfIdentifiedSelfDesignatedObjects { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfInlinedObjects.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfInlinedObjects.java index 917d521..7ee475a 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfInlinedObjects.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfInlinedObjects.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfInlinedObjects") public class ContainerOfInlinedObjects { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIntegerValues.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIntegerValues.java index 4c38eba..de6421d 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIntegerValues.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfIntegerValues.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfIntegerValues") public class ContainerOfIntegerValues { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfKeyedSelfDesignatedObjects.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfKeyedSelfDesignatedObjects.java index 95581ee..9440f07 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfKeyedSelfDesignatedObjects.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfKeyedSelfDesignatedObjects.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfKeyedSelfDesignatedObjects") public class ContainerOfKeyedSelfDesignatedObjects { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfReferences.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfReferences.java index 18290e8..dc6f3c6 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfReferences.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfReferences.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfReferences") public class ContainerOfReferences { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSelfDesignatedObjects.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSelfDesignatedObjects.java index 5500569..5e15656 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSelfDesignatedObjects.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSelfDesignatedObjects.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfSelfDesignatedObjects") public class ContainerOfSelfDesignatedObjects { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSimpleDicts.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSimpleDicts.java index d2316d7..da93599 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSimpleDicts.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSimpleDicts.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfSimpleDicts") public class ContainerOfSimpleDicts { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSimpleObjects.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSimpleObjects.java index 5c742a3..774f6e3 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSimpleObjects.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfSimpleObjects.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfSimpleObjects") public class ContainerOfSimpleObjects { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfURIKeyedSelfDesignatedObjects.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfURIKeyedSelfDesignatedObjects.java index 40ebae6..62b5191 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfURIKeyedSelfDesignatedObjects.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ContainerOfURIKeyedSelfDesignatedObjects.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ContainerOfURIKeyedSelfDesignatedObjects") public class ContainerOfURIKeyedSelfDesignatedObjects { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedCurieSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedCurieSelfDesignatedClass.java index bb10ac9..1273000 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedCurieSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedCurieSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#DerivedCurieSelfDesignatedClass") public class DerivedCurieSelfDesignatedClass extends BaseCurieSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedIdentifiedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedIdentifiedSelfDesignatedClass.java index 0ee8a2e..ad01388 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedIdentifiedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedIdentifiedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#DerivedIdentifiedSelfDesignatedClass") public class DerivedIdentifiedSelfDesignatedClass extends IdentifiedSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedKeyedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedKeyedSelfDesignatedClass.java index 153fdaa..d2e294d 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedKeyedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedKeyedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#DerivedKeyedSelfDesignatedClass") public class DerivedKeyedSelfDesignatedClass extends KeyedSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedMultiSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedMultiSelfDesignatedClass.java index 1271dcb..aa830f6 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedMultiSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedMultiSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#DerivedMultiSelfDesignatedClass") public class DerivedMultiSelfDesignatedClass extends BaseMultiSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedSelfDesignatedClass.java index 6ff9fed..7829bfc 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#DerivedSelfDesignatedClass") public class DerivedSelfDesignatedClass extends BaseSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedURIKeyedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedURIKeyedSelfDesignatedClass.java index f957ea5..9e99504 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedURIKeyedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedURIKeyedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#DerivedURIKeyedSelfDesignatedClass") public class DerivedURIKeyedSelfDesignatedClass extends URIKeyedSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedURISelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedURISelfDesignatedClass.java index 1b7ceed..2369b02 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedURISelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/DerivedURISelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#DerivedURISelfDesignatedClass") public class DerivedURISelfDesignatedClass extends BaseURISelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ExtendedIdentifiableClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ExtendedIdentifiableClass.java index 792b362..2a0ba09 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ExtendedIdentifiableClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ExtendedIdentifiableClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ExtendedIdentifiableClass") public class ExtendedIdentifiableClass extends SimpleIdentifiableClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ExtensibleSimpleClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ExtensibleSimpleClass.java index c1ed732..dd3a3ab 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ExtensibleSimpleClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ExtensibleSimpleClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ExtensibleSimpleClass") public class ExtensibleSimpleClass extends SimpleClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/ExtraSimpleDict.java b/core/src/test/java/org/incenp/linkml/core/samples/base/ExtraSimpleDict.java index 1f675fc..a8311e4 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/ExtraSimpleDict.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/ExtraSimpleDict.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#ExtraSimpleDict") public class ExtraSimpleDict { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/IRISimpleIdentifiableClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/IRISimpleIdentifiableClass.java index a7c14f5..08cb3df 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/IRISimpleIdentifiableClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/IRISimpleIdentifiableClass.java @@ -9,22 +9,15 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#IRISimpleIdentifiableClass") public class IRISimpleIdentifiableClass extends SimpleClass { @Identifier @Required - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#id") private String id; diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/IdentifiedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/IdentifiedSelfDesignatedClass.java index 1776720..aa90527 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/IdentifiedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/IdentifiedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#IdentifiedSelfDesignatedClass") public class IdentifiedSelfDesignatedClass { @@ -25,7 +18,7 @@ public class IdentifiedSelfDesignatedClass { @Identifier @TypeDesignator @Required - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#type") private String type; diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/KeyedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/KeyedSelfDesignatedClass.java index 351d281..8fc769e 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/KeyedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/KeyedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#KeyedSelfDesignatedClass") public class KeyedSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/MultivaluedSimpleDict.java b/core/src/test/java/org/incenp/linkml/core/samples/base/MultivaluedSimpleDict.java index 2655679..5a831aa 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/MultivaluedSimpleDict.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/MultivaluedSimpleDict.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#MultivaluedSimpleDict") public class MultivaluedSimpleDict { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/PrefixDeclaration.java b/core/src/test/java/org/incenp/linkml/core/samples/base/PrefixDeclaration.java index d80550a..cbac80b 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/PrefixDeclaration.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/PrefixDeclaration.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#PrefixDeclaration") public class PrefixDeclaration { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/PrefixDeclarationHolder.java b/core/src/test/java/org/incenp/linkml/core/samples/base/PrefixDeclarationHolder.java index f1c9e3f..19b3465 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/PrefixDeclarationHolder.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/PrefixDeclarationHolder.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#PrefixDeclarationHolder") public class PrefixDeclarationHolder { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/SecondDerivedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/SecondDerivedSelfDesignatedClass.java index 1fc30d7..842829e 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/SecondDerivedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/SecondDerivedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#SecondDerivedSelfDesignatedClass") public class SecondDerivedSelfDesignatedClass extends BaseSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/SecondLevelDerivedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/SecondLevelDerivedSelfDesignatedClass.java index 67ca66d..d39d988 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/SecondLevelDerivedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/SecondLevelDerivedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#SecondLevelDerivedSelfDesignatedClass") public class SecondLevelDerivedSelfDesignatedClass extends SecondDerivedSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleClass.java index e911b17..0b1b881 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#SimpleClass") public class SimpleClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleDict.java b/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleDict.java index 92519c9..bfd1cac 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleDict.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleDict.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#SimpleDict") public class SimpleDict { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleIdentifiableClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleIdentifiableClass.java index 0a85e62..678d20c 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleIdentifiableClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleIdentifiableClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#SimpleIdentifiableClass") public class SimpleIdentifiableClass extends SimpleClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleKeyableClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleKeyableClass.java index 5b578a4..408d3cf 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleKeyableClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/SimpleKeyableClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#SimpleKeyableClass") public class SimpleKeyableClass extends SimpleClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/base/URIKeyedSelfDesignatedClass.java b/core/src/test/java/org/incenp/linkml/core/samples/base/URIKeyedSelfDesignatedClass.java index daf0b25..daa423e 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/base/URIKeyedSelfDesignatedClass.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/base/URIKeyedSelfDesignatedClass.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://incenp.org/dvlpt/linkml-java/tests/samples#URIKeyedSelfDesignatedClass") public class URIKeyedSelfDesignatedClass { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/Bar.java b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/Bar.java index 3ca494d..941331a 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/Bar.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/Bar.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/tests/refined_derived_slots/Bar") public class Bar { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/FirstDerivedBar.java b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/FirstDerivedBar.java index a58e1f2..717dc66 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/FirstDerivedBar.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/FirstDerivedBar.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/tests/refined_derived_slots/FirstDerivedBar") public class FirstDerivedBar extends Bar { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/FirstDerivedFoo.java b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/FirstDerivedFoo.java index 8f403cf..8440358 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/FirstDerivedFoo.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/FirstDerivedFoo.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/tests/refined_derived_slots/FirstDerivedFoo") public class FirstDerivedFoo extends Foo { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/Foo.java b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/Foo.java index d44a03d..8ff4ef4 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/Foo.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/Foo.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/tests/refined_derived_slots/Foo") public class Foo { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/SecondDerivedBar.java b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/SecondDerivedBar.java index ac0de20..1e60910 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/SecondDerivedBar.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/SecondDerivedBar.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/tests/refined_derived_slots/SecondDerivedBar") public class SecondDerivedBar extends FirstDerivedBar { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/SecondDerivedFoo.java b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/SecondDerivedFoo.java index 67266b0..19413a3 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/SecondDerivedFoo.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/SecondDerivedFoo.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/tests/refined_derived_slots/SecondDerivedFoo") public class SecondDerivedFoo extends FirstDerivedFoo { diff --git a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/ThirdDerivedFoo.java b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/ThirdDerivedFoo.java index 89c3f52..98d8a01 100644 --- a/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/ThirdDerivedFoo.java +++ b/core/src/test/java/org/incenp/linkml/core/samples/refinhslot/ThirdDerivedFoo.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/tests/refined_derived_slots/ThirdDerivedFoo") public class ThirdDerivedFoo extends SecondDerivedFoo { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AltDescription.java b/ext/src/main/java/org/incenp/linkml/schema/model/AltDescription.java index 7db5aac..86cd035 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AltDescription.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AltDescription.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AltDescription") public class AltDescription { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Annotatable.java b/ext/src/main/java/org/incenp/linkml/schema/model/Annotatable.java index 1b67a5f..8186677 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Annotatable.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Annotatable.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Annotatable") public class Annotatable { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Annotation.java b/ext/src/main/java/org/incenp/linkml/schema/model/Annotation.java index 3410599..e3acb44 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Annotation.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Annotation.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Annotation") public class Annotation extends Extension { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousClassExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousClassExpression.java index 6e6aeb0..850882b 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousClassExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousClassExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousClassExpression") public class AnonymousClassExpression extends AnonymousExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousEnumExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousEnumExpression.java index 94262f8..fea582a 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousEnumExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousEnumExpression.java @@ -9,21 +9,14 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousEnumExpression") public class AnonymousEnumExpression { @SlotName("code_set") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/code_set") private String codeSet; @@ -60,7 +53,7 @@ public class AnonymousEnumExpression { @LinkURI("https://w3id.org/linkml/matches") private MatchQuery matches; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/concepts") private List concepts; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousExpression.java index d48d88f..5626cf8 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousExpression") public abstract class AnonymousExpression { @@ -70,7 +63,7 @@ public abstract class AnonymousExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -79,17 +72,17 @@ public abstract class AnonymousExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -101,41 +94,41 @@ public abstract class AnonymousExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -148,18 +141,18 @@ public abstract class AnonymousExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousSlotExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousSlotExpression.java index 596518d..07bc4b2 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousSlotExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousSlotExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousSlotExpression") public class AnonymousSlotExpression extends AnonymousExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousTypeExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousTypeExpression.java index 7ed6469..17af06b 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousTypeExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousTypeExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousTypeExpression") public class AnonymousTypeExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ArrayExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/ArrayExpression.java index 5b446d7..975f299 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ArrayExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ArrayExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ArrayExpression") public class ArrayExpression { @@ -85,7 +78,7 @@ public class ArrayExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class ArrayExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class ArrayExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class ArrayExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ClassDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/ClassDefinition.java index 9b40467..4830fa0 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ClassDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ClassDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ClassDefinition") public class ClassDefinition extends Definition { @@ -35,12 +28,12 @@ public class ClassDefinition extends Definition { private List attributes; @SlotName("class_uri") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/class_uri") private String classUri; @SlotName("subclass_of") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/subclass_of") private String subclassOf; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ClassExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/ClassExpression.java index 1bb9588..4ff4365 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ClassExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ClassExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ClassExpression") public class ClassExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ClassLevelRule.java b/ext/src/main/java/org/incenp/linkml/schema/model/ClassLevelRule.java index b1dcc5b..ac49e7c 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ClassLevelRule.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ClassLevelRule.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ClassLevelRule") public abstract class ClassLevelRule { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ClassRule.java b/ext/src/main/java/org/incenp/linkml/schema/model/ClassRule.java index 03d9c19..edbc03f 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ClassRule.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ClassRule.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ClassRule") public class ClassRule extends ClassLevelRule { @@ -95,7 +88,7 @@ public class ClassRule extends ClassLevelRule { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -104,17 +97,17 @@ public class ClassRule extends ClassLevelRule { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -126,41 +119,41 @@ public class ClassRule extends ClassLevelRule { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -173,15 +166,15 @@ public class ClassRule extends ClassLevelRule { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/CommonMetadata.java b/ext/src/main/java/org/incenp/linkml/schema/model/CommonMetadata.java index 022950f..260a797 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/CommonMetadata.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/CommonMetadata.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/CommonMetadata") public class CommonMetadata { @@ -62,7 +55,7 @@ public class CommonMetadata { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -71,17 +64,17 @@ public class CommonMetadata { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -93,41 +86,41 @@ public class CommonMetadata { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -140,18 +133,18 @@ public class CommonMetadata { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Definition.java b/ext/src/main/java/org/incenp/linkml/schema/model/Definition.java index c9b94b1..a44b786 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Definition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Definition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Definition") public abstract class Definition extends Element { @@ -41,7 +34,7 @@ public abstract class Definition extends Element { private List applyTo; @SlotName("values_from") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/values_from") private List valuesFrom; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/DimensionExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/DimensionExpression.java index b737fa7..1537310 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/DimensionExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/DimensionExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/DimensionExpression") public class DimensionExpression { @@ -85,7 +78,7 @@ public class DimensionExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class DimensionExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class DimensionExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class DimensionExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Element.java b/ext/src/main/java/org/incenp/linkml/schema/model/Element.java index 6275ad6..1f2960b 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Element.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Element.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Element") public abstract class Element { @@ -36,7 +29,7 @@ public abstract class Element { private Boolean idPrefixesAreClosed; @SlotName("definition_uri") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/definition_uri") private String definitionUri; @@ -50,11 +43,11 @@ public abstract class Element { private String conformsTo; @SlotName("implements") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/implements") private List implements_; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/instantiates") private List instantiates; @@ -106,7 +99,7 @@ public abstract class Element { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -115,17 +108,17 @@ public abstract class Element { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -137,41 +130,41 @@ public abstract class Element { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -184,18 +177,18 @@ public abstract class Element { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/EnumBinding.java b/ext/src/main/java/org/incenp/linkml/schema/model/EnumBinding.java index 45da2d5..32b6104 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/EnumBinding.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/EnumBinding.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/EnumBinding") public class EnumBinding { @@ -85,7 +78,7 @@ public class EnumBinding { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class EnumBinding { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class EnumBinding { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class EnumBinding { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/EnumDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/EnumDefinition.java index 38c8c78..619b266 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/EnumDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/EnumDefinition.java @@ -9,26 +9,19 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/EnumDefinition") public class EnumDefinition extends Definition { @SlotName("enum_uri") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/enum_uri") private String enumUri; @SlotName("code_set") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/code_set") private String codeSet; @@ -65,7 +58,7 @@ public class EnumDefinition extends Definition { @LinkURI("https://w3id.org/linkml/matches") private MatchQuery matches; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/concepts") private List concepts; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/EnumExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/EnumExpression.java index 66679e7..f972d67 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/EnumExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/EnumExpression.java @@ -9,21 +9,14 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/EnumExpression") public class EnumExpression extends Expression { @SlotName("code_set") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/code_set") private String codeSet; @@ -60,7 +53,7 @@ public class EnumExpression extends Expression { @LinkURI("https://w3id.org/linkml/matches") private MatchQuery matches; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/concepts") private List concepts; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Example.java b/ext/src/main/java/org/incenp/linkml/schema/model/Example.java index 95f89c1..e5042a0 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Example.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Example.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Example") public class Example { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Expression.java b/ext/src/main/java/org/incenp/linkml/schema/model/Expression.java index 3c679f9..f69b342 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Expression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Expression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Expression") public abstract class Expression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Extensible.java b/ext/src/main/java/org/incenp/linkml/schema/model/Extensible.java index 5f39ed0..a194586 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Extensible.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Extensible.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Extensible") public class Extensible { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Extension.java b/ext/src/main/java/org/incenp/linkml/schema/model/Extension.java index 7b05009..73fbca1 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Extension.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Extension.java @@ -9,22 +9,15 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Extension") public class Extension { @Identifier(isGlobal = false) @Required - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/extension_tag") private String tag; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ExtraSlotsExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/ExtraSlotsExpression.java index ef0d03e..0c96e15 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ExtraSlotsExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ExtraSlotsExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ExtraSlotsExpression") public class ExtraSlotsExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ImportExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/ImportExpression.java index 8062567..8516257 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ImportExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ImportExpression.java @@ -9,22 +9,15 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ImportExpression") public class ImportExpression { @SlotName("import_from") @Required - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/import_from") private String importFrom; @@ -85,7 +78,7 @@ public class ImportExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class ImportExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class ImportExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class ImportExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/LocalName.java b/ext/src/main/java/org/incenp/linkml/schema/model/LocalName.java index 6238a4f..9c507b8 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/LocalName.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/LocalName.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/LocalName") public class LocalName { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/MatchQuery.java b/ext/src/main/java/org/incenp/linkml/schema/model/MatchQuery.java index 967e5c7..65435d5 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/MatchQuery.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/MatchQuery.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/MatchQuery") public class MatchQuery { @@ -27,7 +20,7 @@ public class MatchQuery { private String identifierPattern; @SlotName("source_ontology") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/source_ontology") private String sourceOntology; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/PathExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/PathExpression.java index eb42fa9..f7d6b7d 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/PathExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/PathExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/PathExpression") public class PathExpression { @@ -100,7 +93,7 @@ public class PathExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -109,17 +102,17 @@ public class PathExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -131,41 +124,41 @@ public class PathExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -178,18 +171,18 @@ public class PathExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/PatternExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/PatternExpression.java index 90113c0..fa2e2f4 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/PatternExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/PatternExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/PatternExpression") public class PatternExpression { @@ -80,7 +73,7 @@ public class PatternExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -89,17 +82,17 @@ public class PatternExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -111,41 +104,41 @@ public class PatternExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -158,18 +151,18 @@ public class PatternExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/PermissibleValue.java b/ext/src/main/java/org/incenp/linkml/schema/model/PermissibleValue.java index dd10432..13e7f30 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/PermissibleValue.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/PermissibleValue.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/PermissibleValue") public class PermissibleValue { @@ -31,19 +24,19 @@ public class PermissibleValue { @LinkURI("http://www.w3.org/2004/02/skos/core#definition") private String description; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/meaning") private String meaning; @LinkURI("http://qudt.org/schema/qudt/unit") private UnitOfMeasure unit; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/instantiates") private List instantiates; @SlotName("implements") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/implements") private List implements_; @@ -98,7 +91,7 @@ public class PermissibleValue { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -107,17 +100,17 @@ public class PermissibleValue { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -129,41 +122,41 @@ public class PermissibleValue { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -176,18 +169,18 @@ public class PermissibleValue { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Prefix.java b/ext/src/main/java/org/incenp/linkml/schema/model/Prefix.java index fbc8911..dc675b0 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Prefix.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Prefix.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Prefix") public class Prefix { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ReachabilityQuery.java b/ext/src/main/java/org/incenp/linkml/schema/model/ReachabilityQuery.java index 25ca761..24c2604 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ReachabilityQuery.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ReachabilityQuery.java @@ -9,31 +9,24 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ReachabilityQuery") public class ReachabilityQuery { @SlotName("source_ontology") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/source_ontology") private String sourceOntology; @SlotName("source_nodes") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/source_nodes") private List sourceNodes; @SlotName("relationship_types") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/relationship_types") private List relationshipTypes; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/SchemaDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/SchemaDefinition.java index a67b8fa..0f3c9cf 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/SchemaDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/SchemaDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/SchemaDefinition") public class SchemaDefinition extends Element { @@ -29,7 +22,7 @@ public class SchemaDefinition extends Element { @LinkURI("http://purl.org/pav/version") private String version; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/imports") private List imports; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Setting.java b/ext/src/main/java/org/incenp/linkml/schema/model/Setting.java index b9cf889..b163650 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Setting.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Setting.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Setting") public class Setting { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/SlotDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/SlotDefinition.java index 5c798ec..9c6824a 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/SlotDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/SlotDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/SlotDefinition") public class SlotDefinition extends Definition { @@ -30,7 +23,7 @@ public class SlotDefinition extends Definition { private ClassDefinition domain; @SlotName("slot_uri") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/slot_uri") private String slotUri; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/SlotExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/SlotExpression.java index ffe34fa..d26d07a 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/SlotExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/SlotExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/SlotExpression") public class SlotExpression extends Expression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/StructuredAlias.java b/ext/src/main/java/org/incenp/linkml/schema/model/StructuredAlias.java index 4c1f7a1..a125bb2 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/StructuredAlias.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/StructuredAlias.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("http://www.w3.org/2008/05/skos-xl#Label") public class StructuredAlias { @@ -31,7 +24,7 @@ public class StructuredAlias { @LinkURI("http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate") private AliasPredicateEnum predicate; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; @@ -86,7 +79,7 @@ public class StructuredAlias { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -95,17 +88,17 @@ public class StructuredAlias { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -117,41 +110,41 @@ public class StructuredAlias { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -164,11 +157,11 @@ public class StructuredAlias { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/SubsetDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/SubsetDefinition.java index abce3c1..8234cec 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/SubsetDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/SubsetDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/SubsetDefinition") public class SubsetDefinition extends Element { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/TypeDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/TypeDefinition.java index 64cc473..f0333d9 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/TypeDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/TypeDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/TypeDefinition") public class TypeDefinition extends Element { @@ -28,7 +21,7 @@ public class TypeDefinition extends Element { @LinkURI("https://w3id.org/linkml/base") private String base; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/type_uri") private String uri; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/TypeExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/TypeExpression.java index afc6f09..99f4e0f 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/TypeExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/TypeExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/TypeExpression") public class TypeExpression extends Expression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/TypeMapping.java b/ext/src/main/java/org/incenp/linkml/schema/model/TypeMapping.java index b888d2b..7d2d8ba 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/TypeMapping.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/TypeMapping.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/TypeMapping") public class TypeMapping { @@ -82,7 +75,7 @@ public class TypeMapping { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -91,17 +84,17 @@ public class TypeMapping { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -113,41 +106,41 @@ public class TypeMapping { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -160,18 +153,18 @@ public class TypeMapping { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/UniqueKey.java b/ext/src/main/java/org/incenp/linkml/schema/model/UniqueKey.java index bb567aa..aa83698 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/UniqueKey.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/UniqueKey.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/UniqueKey") public class UniqueKey { @@ -85,7 +78,7 @@ public class UniqueKey { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class UniqueKey { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class UniqueKey { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class UniqueKey { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/UnitOfMeasure.java b/ext/src/main/java/org/incenp/linkml/schema/model/UnitOfMeasure.java index 7449c8c..c7ef2fa 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/UnitOfMeasure.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/UnitOfMeasure.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("http://qudt.org/schema/qudt/Unit") public class UnitOfMeasure { @@ -33,7 +26,7 @@ public class UnitOfMeasure { private String descriptiveName; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @@ -46,7 +39,7 @@ public class UnitOfMeasure { private String derivation; @SlotName("has_quantity_kind") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://qudt.org/schema/qudt/hasQuantityKind") private String hasQuantityKind; From 22c93b26150d8fd15386ae7424ae5a84b94db93a Mon Sep 17 00:00:00 2001 From: Damien Goutte-Gattat Date: Sat, 19 Sep 2026 18:37:23 +0100 Subject: [PATCH 6/6] Properly detect custom types. Repurpose the newly introduced TypeURI annotation so that it can also be used on a class, to mark that class as representing a custom LinkML type. This is mostly to avoid inadvertently creating a ClassInfo object for a class that does not in fact represent a LinkML class. --- .../org/incenp/linkml/core/ObjectType.java | 18 +++++++++--------- .../linkml/core/annotations/TypeURI.java | 7 ++++++- .../incenp/linkml/core/types/BinaryBlob.java | 3 +++ .../org/incenp/linkml/core/ClassInfoTest.java | 3 ++- .../org/incenp/linkml/core/ObjectTypeTest.java | 6 ++++++ 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/org/incenp/linkml/core/ObjectType.java b/core/src/main/java/org/incenp/linkml/core/ObjectType.java index 989a860..6cfdfc5 100644 --- a/core/src/main/java/org/incenp/linkml/core/ObjectType.java +++ b/core/src/main/java/org/incenp/linkml/core/ObjectType.java @@ -39,6 +39,9 @@ import java.time.LocalTime; import java.time.ZonedDateTime; +import org.incenp.linkml.core.annotations.LinkURI; +import org.incenp.linkml.core.annotations.TypeURI; + /** * Represents the type of a LinkML object. */ @@ -73,21 +76,18 @@ public enum ObjectType { * @return The corresponding LinkML type. */ public static ObjectType get(Class type) { - // FIXME: We might have to deal with custom types as well at some point. if ( type.isPrimitive() || type == String.class || type == Boolean.class || type == Integer.class || type == Float.class || type == Double.class || type == ZonedDateTime.class || type == LocalDate.class || type == LocalTime.class || type == URI.class ) { return TYPE; - } else if ( type.isEnum() ) { - // FIXME: Not necessarily a *LinkML* enum + } else if ( type.isEnum() && type.isAnnotationPresent(LinkURI.class) ) { return ENUM; - } else if ( type.getSuperclass() == null ) { - // Could be Object, an interface, or void -- in any case, cannot be a LinkML - // object at all - return NONE; - } else { - // FIXME: Not necessarily a *LinkML* class + } else if ( type.isAnnotationPresent(TypeURI.class) ) { + return TYPE; + } else if ( type.isAnnotationPresent(LinkURI.class) ) { return CLASS; + } else { + return NONE; } } } diff --git a/core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java b/core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java index 16b02a6..810cbcb 100644 --- a/core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java +++ b/core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java @@ -35,6 +35,7 @@ package org.incenp.linkml.core.annotations; import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Retention; @@ -46,9 +47,13 @@ * When this annotation is present, it can be used to determine how the field * should be (de)serialized, instead of determining that solely from the field’s * Java type. + *

+ * A secondary use of this annotation is to mark classes that represent custom + * types, to make sure they are not mistaken for classes representing LinkML + * classes. */ @Retention(RUNTIME) -@Target(FIELD) +@Target({ TYPE, FIELD }) public @interface TypeURI { String value(); } diff --git a/core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java b/core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java index 4896629..a9f3098 100644 --- a/core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java +++ b/core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java @@ -37,6 +37,8 @@ import java.util.Arrays; import java.util.Base64; +import org.incenp.linkml.core.annotations.TypeURI; + /** * This class represents a type intended to store arbitrary blobs of binary * data. @@ -45,6 +47,7 @@ * wrapper makes it easier to provide the appropriate equals() and * hashCode() behaviours. */ +@TypeURI("http://www.w3.org/2001/XMLSchema#base64Binary") public class BinaryBlob { private byte[] value; diff --git a/core/src/test/java/org/incenp/linkml/core/ClassInfoTest.java b/core/src/test/java/org/incenp/linkml/core/ClassInfoTest.java index 9cfef62..171748b 100644 --- a/core/src/test/java/org/incenp/linkml/core/ClassInfoTest.java +++ b/core/src/test/java/org/incenp/linkml/core/ClassInfoTest.java @@ -42,6 +42,7 @@ import org.incenp.linkml.core.samples.base.SimpleDict; import org.incenp.linkml.core.samples.base.SimpleIdentifiableClass; import org.incenp.linkml.core.samples.base.SimpleKeyableClass; +import org.incenp.linkml.core.types.BinaryBlob; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -53,6 +54,7 @@ void testDetectClassType() { Assertions.assertNull(ClassInfo.get(Boolean.TYPE)); Assertions.assertNull(ClassInfo.get(String.class)); Assertions.assertNull(ClassInfo.get(InliningMode.class)); + Assertions.assertNull(ClassInfo.get(BinaryBlob.class)); Assertions.assertNotNull(ClassInfo.get(SimpleClass.class)); } @@ -128,6 +130,5 @@ void testSlotProcessor() throws LinkMLRuntimeException { sic.setFoo("The foo"); ClassInfo.get(SimpleIdentifiableClass.class).processSlots(sic, (s, o, v) -> s.setValue(o, null), true); Assertions.assertNull(sic.getFoo()); - } } diff --git a/core/src/test/java/org/incenp/linkml/core/ObjectTypeTest.java b/core/src/test/java/org/incenp/linkml/core/ObjectTypeTest.java index e33652f..2bb522b 100644 --- a/core/src/test/java/org/incenp/linkml/core/ObjectTypeTest.java +++ b/core/src/test/java/org/incenp/linkml/core/ObjectTypeTest.java @@ -36,6 +36,7 @@ import org.incenp.linkml.core.samples.base.SampleEnum; import org.incenp.linkml.core.samples.base.SimpleClass; +import org.incenp.linkml.core.types.BinaryBlob; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -57,6 +58,11 @@ void testDetectClasses() { Assertions.assertEquals(ObjectType.CLASS, ObjectType.get(SimpleClass.class)); } + @Test + void testDetectCustomTypes() { + Assertions.assertEquals(ObjectType.TYPE, ObjectType.get(BinaryBlob.class)); + } + @Test void testDetectNonLinkMLObjects() { Assertions.assertEquals(ObjectType.NONE, ObjectType.get(IConverter.class));