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 1ba40b7..be09c72 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,11 @@ 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());
+ addConverter(new Base64BlobConverter());
+ addConverter(new Base16BlobConverter());
+
objectConverterProvider = (t) -> new ObjectConverter(t);
typeResolver = new DefaultTypeDesignatorResolver();
}
@@ -234,7 +240,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 +311,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/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/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..810cbcb
--- /dev/null
+++ b/core/src/main/java/org/incenp/linkml/core/annotations/TypeURI.java
@@ -0,0 +1,59 @@
+/*
+ * 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.ElementType.TYPE;
+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.
+ *
+ * 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({ 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
new file mode 100644
index 0000000..a9f3098
--- /dev/null
+++ b/core/src/main/java/org/incenp/linkml/core/types/BinaryBlob.java
@@ -0,0 +1,262 @@
+/*
+ * 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;
+
+import org.incenp.linkml.core.annotations.TypeURI;
+
+/**
+ * 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.
+ */
+@TypeURI("http://www.w3.org/2001/XMLSchema#base64Binary")
+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/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/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/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));
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/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:
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..24269bc
--- /dev/null
+++ b/core/src/test/linkml/templates/_types.map
@@ -0,0 +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
new file mode 100644
index 0000000..24cd927
--- /dev/null
+++ b/core/src/test/linkml/templates/class-org.incenp.linkml.jinja2
@@ -0,0 +1,344 @@
+{#
+ 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 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 %} {
+{# 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 extends " + f.range[5:] %}
+{%- else %}
+{%- set real_range = f.range %}
+{%- endif %}
+{%- if f.source_slot.identifier %}
+{#- Marks the slot that holds the unique identifier for objects of this class. #}
+ @Identifier
+{%- elif f.source_slot.key %}
+{#- Marks the slot that holds the local identifier for objects of this class. #}
+ @Identifier(isGlobal = false)
+{%- endif %}
+{%- if f.source_slot.designates_type %}
+{#- Marks the slot that holds the runtime type of this object. #}
+ @TypeDesignator
+{%- endif %}
+{#- If the Java field name differs from the name or alias defined in the
+ schema, the runtime must have a way to get the original name. #}
+{%- if f.source_slot.alias and f.source_slot.alias != f.name %}
+ @SlotName("{{ f.source_slot.alias }}")
+{%- elif f.source_slot.alias is none and f.source_slot.name != f.name %}
+ @SlotName("{{ f.source_slot.name }}")
+{%- endif %}
+{#- The runtime must know how the slot is expected to be serialised. #}
+{%- if f.source_slot.inlined_as_list %}
+ @Inlined(asList = true)
+{%- elif f.source_slot.inlined %}
+ @Inlined
+{%- endif %}
+{#- The runtime must also know whether the slot is required. #}
+{%- if f.source_slot.required %}
+ @Required
+{%- elif f.source_slot.recommended %}
+ @Required(isRecommended = true)
+{%- endif %}
+{%- if gen.get_type_uri(f.source_slot.range, custom_only=True) %}
+ @TypeURI("{{ gen.get_type_uri(f.source_slot.range) }}")
+{%- endif %}
+{#- We will need the slot URI for RDF import/export later. #}
+ @LinkURI("{{ f.slot_uri }}")
+ private {{ real_range }} {{ f.name }};
+{% endfor %}
+
+{#- If the class is configured to allow extra slots, we need an extra
+ field to store them. #}
+{%- if gen.needs_extra_slots(cls.source_class) %}
+ @ExtensionHolder
+ private Map 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 extends " + f.range[5:] %}
+{%- else %}
+{%- set real_range = f.range %}
+{%- endif %}
+ public void {{ gen.get_write_accessor_name(f.source_slot) }}({{ real_range }} {{ f.name }}) {
+ this.{{ f.name }} = {{ f.name }};
+ }
+
+ public {{ real_range }} {{ gen.get_read_accessor_name(f.source_slot) }}() {
+ return this.{{ f.name }};
+ }
+
+{%- if f.source_slot.multivalued %}
+{#- Convenience accessor that initializes the list if needed. #}
+
+ public {{ real_range }} {{ gen.get_read_accessor_name(f.source_slot) }}(boolean set) {
+ if ( this.{{ f.name }} == null && set ) {
+{%- if gen.get_refined_ranges(f.source_slot.name, cls.source_class.name)|length %}
+ this.{{ f.name }} = new ArrayList<{{ f.range[5:-1] }}>();
+{%- 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 extends REAL_RANGE>`, 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 extends {{ base_range }}> 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/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 extends Definition> 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;
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")