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 extraSlots; +{% endif -%} + +{#- The public accessors. #} +{%- for f in cls.fields %} +{%- if f.source_slot.multivalued and gen.get_refined_ranges(f.source_slot.name, cls.source_class.name)|length %} +{%- set real_range = "List(); +{%- else %} + this.{{ f.name }} = new ArrayList<>(); +{%- endif %} + } + return this.{{ f.name }}; + } +{%- if gen.get_refined_ranges(f.source_slot.name, cls.source_class.name)|length %} +{#- This is a multivalued slot whose range is refined in at least one subclass. + We provide two additional convenience accessors: + + - one to easily return a list with a fully captured type; + - and one that additionally allows to initializes the list if needed. #} + + @SuppressWarnings("unchecked") + public List {{ gen.get_read_accessor_name(f.source_slot) }}(Class t) { + return (List) this.{{ f.name }}; + } + + @SuppressWarnings("unchecked") + public List {{ gen.get_read_accessor_name(f.source_slot) }}(Class t, boolean create) { + if ( this.{{ f.name }} == null && create ) { + this.{{ f.name }} = new ArrayList(); + } + return (List) this.{{ f.name }}; + } +{%- endif %} +{%- endif %} +{% endfor %} + +{#- The public accessors for the refined inherited slots. #} +{%- for f in cls.all_fields %} +{%- if f.refined_ranges %} +{%- if not f.source_slot.multivalued %} +{#- Simple case: A single-valued slot. + + We need: + + - one read accessor that overrides the inherited read accessor to + change the return type to the refined range; + - one write accessor that overloads the inherited write accessor to + accept an argument of the refined type; + - one write accessor that overrides the inherited write accessor to + add a runtime type check; there must be one such accessor for every + refinement that occurred in the "history" of the slot. #} + @Override + public {{ f.range }} {{ gen.get_read_accessor_name(f.source_slot) }}() { + return ({{ f.range }}) super.{{ gen.get_read_accessor_name(f.source_slot) }}(); + } + + public void {{ gen.get_write_accessor_name(f.source_slot) }}({{ f.range }} value) { + super.{{ gen.get_write_accessor_name(f.source_slot) }}(value); + } + +{%- for refined_range in f.refined_ranges %} + + @Override + public void {{ gen.get_write_accessor_name(f.source_slot) }}({{ refined_range }} value) { + if ( !(value instanceof {{ f.range }}) ) { + throw new IllegalArgumentException("Invalid {{ f.name }} value"); + } + super.{{ gen.get_write_accessor_name(f.source_slot) }}(value); + } +{%- endfor %} +{# #} +{%- else %} +{#- Multivalued refined inherited slots are inherently more complex, due + to the fact that they are represented using Java generics, and that + with Java generics, List is _not_ a subtype of List even if G + is a subtype of F. This restricts what we can override from the + parent class(es). + + So we do the following: + + (1) We override the basic `getX()` read accessor so that it returns + a list of the refined type. The exact return type will depend on + whether the slot is further refined in a subclass or not: if it is + further refined, we must return `List`, so + that derived classes can further override the accessor and refine the + return type; if there are no further refinement down the class tree, + then we can return `List` directly. + + (2) We likewise override the `getX(boolean)` convenience accessor + (the one that creates the list as needed) in a similar fashion. + + (3) We override the parameterized `getX(Class)` + accessor (provided in the base class and intended to allow client + code to easily obtain a list of the exact required type without + having to do an explicit cast) to add a runtime check that the + required type is compatible with the refined type in this class. + + (4) We likewise override the `getX(Class, boolean)` + convenience accessor (which combines the functionalities of the two + previous accessors). + + (5) Lastly, we override the basic `setX()` write accessor to add + a runtime check that all items in the provided list are compatible + with the refined type in this class. + #} +{%- set real_range = f.range[5:-1] %} +{%- set base_range = f.refined_ranges[-1][5:-1] %} +{%- set refined_further = gen.get_refined_ranges(f.source_slot.name, cls.source_class.name)|length %} + @Override + @SuppressWarnings("unchecked") + public List<{% if refined_further %}? extends {% endif %}{{ real_range }}> {{ gen.get_read_accessor_name(f.source_slot) }}() { + return (List<{{ real_range }}>) super.{{ gen.get_read_accessor_name(f.source_slot) }}(); + } + + @Override + public List<{% if refined_further %}? extends {% endif %}{{ real_range }}> {{ gen.get_read_accessor_name(f.source_slot) }}(boolean create) { + return super.{{ gen.get_read_accessor_name(f.source_slot) }}({{ real_range }}.class, create); + } + + @Override + public List {{ gen.get_read_accessor_name(f.source_slot) }}(Class t) { + if ( !{{ real_range }}.class.isAssignableFrom(t) ) { + throw new IllegalArgumentException("Invalid type parameter"); + } + return super.{{ gen.get_read_accessor_name(f.source_slot) }}(t); + } + + @Override + public List {{ gen.get_read_accessor_name(f.source_slot) }}(Class t, boolean create) { + if ( !{{ real_range }}.class.isAssignableFrom(t) ) { + throw new IllegalArgumentException("Invalid type parameter"); + } + return super.{{ gen.get_read_accessor_name(f.source_slot) }}(t, create); + } + + @Override + public void {{ gen.get_write_accessor_name(f.source_slot) }}(List value) { + if ( value != null ) { + for ( {{ base_range }} item : value ) { + if ( !(item instanceof {{ real_range }}) ) { + throw new IllegalArgumentException("Invalid {{ f.name }} value"); + } + } + } + super.{{ gen.get_write_accessor_name(f.source_slot) }}(value); + } +{# #} +{%- endif %} +{%- endif %} +{%- endfor %} + +{%- if gen.needs_extra_slots(cls.source_class) %} + public void setExtraSlots(Map extraSlots) { + this.extraSlots = extraSlots; + } + + public Map getExtraSlots() { + return this.extraSlots; + } + + public Map getExtraSlots(boolean set) { + if ( this.extraSlots == null && set ) { + this.extraSlots = new HashMap<>(); + } + return this.extraSlots; + } +{% endif -%} + +{#- Visitors? #} +{%- for visitor in visitors %} +{%- if cls.source_class.name == visitor or gen.has_ancestor(cls.source_class, visitor) %} + public void accept(I{{ gen.get_class_name(visitor) }}Visitor v) { + v.visit(this); + } +{# #} +{%- endif %} +{%- endfor %} + +{#- The overridden methods from Object. #} + @Override + public String toString() { +{%- set identifier_slot = gen.schemaview.get_identifier_slot(cls.source_class.name, use_key=True) %} +{%- if identifier_slot %} + return "{{ cls.name }}({{ identifier_slot.alias|default(identifier_slot.name, true) }}=" + this.{{ gen.get_read_accessor_name(identifier_slot) }}() + ")"; +{%- else %} + StringBuilder sb = new StringBuilder(); + Object o; + sb.append("{{ cls.name }}("); +{%- for slot in gen.schemaview.class_induced_slots(cls.source_class.name) %} + if ( (o = this.{{ gen.get_read_accessor_name(slot) }}()) != null ) { + sb.append("{{ slot.alias|default(slot.name, true) }}="); + sb.append(o); + sb.append(","); + } +{%- endfor %} + sb.append(")"); + return sb.toString(); +{%- endif %} + } + + @Override + public boolean equals(final Object o) { + if ( o == this ) return true; + if ( !(o instanceof {{ cls.name }}) ) return false; + final {{ cls.name }} other = ({{ cls.name }}) o; + if ( !other.canEqual((Object) this)) return false; +{#- No need to call the parent's method if we are directly derived from Object. #} +{%- if cls.is_a %} + if ( !super.equals(o) ) return false; +{% endif %} +{#- Now compare every slots. #} +{%- for f in cls.fields %} + final Object this${{ f.name }} = this.{{ gen.get_read_accessor_name(f.source_slot) }}(); + final Object other${{ f.name }} = other.{{ gen.get_read_accessor_name(f.source_slot) }}(); +{%- if f.range in ["int", "float", "double", "boolean"] %} + if ( this${{ f.name }} != other${{ f.name }} ) return false; +{%- else %} + if ( this${{ f.name }} == null ? other${{ f.name }} != null : !this${{ f.name }}.equals(other${{ f.name }}) ) return false; + {%- endif %} +{%- endfor %} +{%- if gen.needs_extra_slots(cls.source_class) %} + if ( this.extraSlots == null ? other.extraSlots != null : !this.extraSlots.equals(other.extraSlots) ) return false; +{%- endif %} + return true; + } + + protected boolean canEqual(final Object other) { + return other instanceof {{ cls.name }}; + } + + @Override + public int hashCode() { + final int PRIME = 59; + int result = {% if cls.is_a %}super.hashCode(){% else %}1{% endif %}; +{%- for f in cls.fields %} +{%- if f.range == "int" %} + result = result * PRIME + this.{{ gen.get_read_accessor_name(f.source_slot) }}(); +{%- elif f.range == "float" %} + result = result * PRIME + Float.floatToIntBits(this.{{ gen.get_read_accessor_name(f.source_slot) }}()); +{%- elif f.range == "double" %} + final long ${{ f.name }} = Double.doubleToLongBits(this.{{ gen.get_read_accessor_name(f.source_slot) }}()); + result = result * PRIME + (int) (${{ f.name }} >>> 32 ^ ${{ f.name }}); +{%- elif f.range == "boolean" %} + result = result * PRIME + (this.{{ gen.get_read_accessor_name(f.source_slot) }}() ? 79 : 97); +{%- else %} + final Object ${{ f.name }} = this.{{ gen.get_read_accessor_name(f.source_slot) }}(); + result = result * PRIME + (${{ f.name }} == null ? 43 : ${{ f.name }}.hashCode()); +{%- endif %} +{%- endfor %} +{%- if gen.needs_extra_slots(cls.source_class) %} + result = result * PRIME + (this.extraSlots == null ? 43 : this.extraSlots.hashCode()); +{%- endif %} + return result; + } +} diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AltDescription.java b/ext/src/main/java/org/incenp/linkml/schema/model/AltDescription.java index 7db5aac..86cd035 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AltDescription.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AltDescription.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AltDescription") public class AltDescription { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Annotatable.java b/ext/src/main/java/org/incenp/linkml/schema/model/Annotatable.java index 1b67a5f..8186677 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Annotatable.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Annotatable.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Annotatable") public class Annotatable { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Annotation.java b/ext/src/main/java/org/incenp/linkml/schema/model/Annotation.java index 3410599..e3acb44 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Annotation.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Annotation.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Annotation") public class Annotation extends Extension { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousClassExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousClassExpression.java index 6e6aeb0..850882b 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousClassExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousClassExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousClassExpression") public class AnonymousClassExpression extends AnonymousExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousEnumExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousEnumExpression.java index 94262f8..fea582a 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousEnumExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousEnumExpression.java @@ -9,21 +9,14 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousEnumExpression") public class AnonymousEnumExpression { @SlotName("code_set") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/code_set") private String codeSet; @@ -60,7 +53,7 @@ public class AnonymousEnumExpression { @LinkURI("https://w3id.org/linkml/matches") private MatchQuery matches; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/concepts") private List concepts; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousExpression.java index d48d88f..5626cf8 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousExpression") public abstract class AnonymousExpression { @@ -70,7 +63,7 @@ public abstract class AnonymousExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -79,17 +72,17 @@ public abstract class AnonymousExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -101,41 +94,41 @@ public abstract class AnonymousExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -148,18 +141,18 @@ public abstract class AnonymousExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousSlotExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousSlotExpression.java index 596518d..07bc4b2 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousSlotExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousSlotExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousSlotExpression") public class AnonymousSlotExpression extends AnonymousExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousTypeExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousTypeExpression.java index 7ed6469..17af06b 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousTypeExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/AnonymousTypeExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/AnonymousTypeExpression") public class AnonymousTypeExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ArrayExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/ArrayExpression.java index 5b446d7..975f299 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ArrayExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ArrayExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ArrayExpression") public class ArrayExpression { @@ -85,7 +78,7 @@ public class ArrayExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class ArrayExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class ArrayExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class ArrayExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ClassDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/ClassDefinition.java index 9b40467..4830fa0 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ClassDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ClassDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ClassDefinition") public class ClassDefinition extends Definition { @@ -35,12 +28,12 @@ public class ClassDefinition extends Definition { private List attributes; @SlotName("class_uri") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/class_uri") private String classUri; @SlotName("subclass_of") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/subclass_of") private String subclassOf; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ClassExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/ClassExpression.java index 1bb9588..4ff4365 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ClassExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ClassExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ClassExpression") public class ClassExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ClassLevelRule.java b/ext/src/main/java/org/incenp/linkml/schema/model/ClassLevelRule.java index b1dcc5b..ac49e7c 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ClassLevelRule.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ClassLevelRule.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ClassLevelRule") public abstract class ClassLevelRule { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ClassRule.java b/ext/src/main/java/org/incenp/linkml/schema/model/ClassRule.java index 03d9c19..edbc03f 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ClassRule.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ClassRule.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ClassRule") public class ClassRule extends ClassLevelRule { @@ -95,7 +88,7 @@ public class ClassRule extends ClassLevelRule { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -104,17 +97,17 @@ public class ClassRule extends ClassLevelRule { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -126,41 +119,41 @@ public class ClassRule extends ClassLevelRule { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -173,15 +166,15 @@ public class ClassRule extends ClassLevelRule { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/CommonMetadata.java b/ext/src/main/java/org/incenp/linkml/schema/model/CommonMetadata.java index 022950f..260a797 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/CommonMetadata.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/CommonMetadata.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/CommonMetadata") public class CommonMetadata { @@ -62,7 +55,7 @@ public class CommonMetadata { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -71,17 +64,17 @@ public class CommonMetadata { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -93,41 +86,41 @@ public class CommonMetadata { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -140,18 +133,18 @@ public class CommonMetadata { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Definition.java b/ext/src/main/java/org/incenp/linkml/schema/model/Definition.java index c9b94b1..a44b786 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Definition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Definition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Definition") public abstract class Definition extends Element { @@ -41,7 +34,7 @@ public abstract class Definition extends Element { private List applyTo; @SlotName("values_from") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/values_from") private List valuesFrom; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/DimensionExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/DimensionExpression.java index b737fa7..1537310 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/DimensionExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/DimensionExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/DimensionExpression") public class DimensionExpression { @@ -85,7 +78,7 @@ public class DimensionExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class DimensionExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class DimensionExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class DimensionExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Element.java b/ext/src/main/java/org/incenp/linkml/schema/model/Element.java index 6275ad6..1f2960b 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Element.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Element.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Element") public abstract class Element { @@ -36,7 +29,7 @@ public abstract class Element { private Boolean idPrefixesAreClosed; @SlotName("definition_uri") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/definition_uri") private String definitionUri; @@ -50,11 +43,11 @@ public abstract class Element { private String conformsTo; @SlotName("implements") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/implements") private List implements_; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/instantiates") private List instantiates; @@ -106,7 +99,7 @@ public abstract class Element { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -115,17 +108,17 @@ public abstract class Element { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -137,41 +130,41 @@ public abstract class Element { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -184,18 +177,18 @@ public abstract class Element { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/EnumBinding.java b/ext/src/main/java/org/incenp/linkml/schema/model/EnumBinding.java index 45da2d5..32b6104 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/EnumBinding.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/EnumBinding.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/EnumBinding") public class EnumBinding { @@ -85,7 +78,7 @@ public class EnumBinding { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class EnumBinding { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class EnumBinding { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class EnumBinding { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/EnumDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/EnumDefinition.java index 38c8c78..619b266 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/EnumDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/EnumDefinition.java @@ -9,26 +9,19 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/EnumDefinition") public class EnumDefinition extends Definition { @SlotName("enum_uri") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/enum_uri") private String enumUri; @SlotName("code_set") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/code_set") private String codeSet; @@ -65,7 +58,7 @@ public class EnumDefinition extends Definition { @LinkURI("https://w3id.org/linkml/matches") private MatchQuery matches; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/concepts") private List concepts; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/EnumExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/EnumExpression.java index 66679e7..f972d67 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/EnumExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/EnumExpression.java @@ -9,21 +9,14 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/EnumExpression") public class EnumExpression extends Expression { @SlotName("code_set") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/code_set") private String codeSet; @@ -60,7 +53,7 @@ public class EnumExpression extends Expression { @LinkURI("https://w3id.org/linkml/matches") private MatchQuery matches; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/concepts") private List concepts; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Example.java b/ext/src/main/java/org/incenp/linkml/schema/model/Example.java index 95f89c1..e5042a0 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Example.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Example.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Example") public class Example { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Expression.java b/ext/src/main/java/org/incenp/linkml/schema/model/Expression.java index 3c679f9..f69b342 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Expression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Expression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Expression") public abstract class Expression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Extensible.java b/ext/src/main/java/org/incenp/linkml/schema/model/Extensible.java index 5f39ed0..a194586 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Extensible.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Extensible.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Extensible") public class Extensible { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Extension.java b/ext/src/main/java/org/incenp/linkml/schema/model/Extension.java index 7b05009..73fbca1 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Extension.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Extension.java @@ -9,22 +9,15 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Extension") public class Extension { @Identifier(isGlobal = false) @Required - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/extension_tag") private String tag; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ExtraSlotsExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/ExtraSlotsExpression.java index ef0d03e..0c96e15 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ExtraSlotsExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ExtraSlotsExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ExtraSlotsExpression") public class ExtraSlotsExpression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ImportExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/ImportExpression.java index 8062567..8516257 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ImportExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ImportExpression.java @@ -9,22 +9,15 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ImportExpression") public class ImportExpression { @SlotName("import_from") @Required - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/import_from") private String importFrom; @@ -85,7 +78,7 @@ public class ImportExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class ImportExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class ImportExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class ImportExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/LocalName.java b/ext/src/main/java/org/incenp/linkml/schema/model/LocalName.java index 6238a4f..9c507b8 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/LocalName.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/LocalName.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/LocalName") public class LocalName { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/MatchQuery.java b/ext/src/main/java/org/incenp/linkml/schema/model/MatchQuery.java index 967e5c7..65435d5 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/MatchQuery.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/MatchQuery.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/MatchQuery") public class MatchQuery { @@ -27,7 +20,7 @@ public class MatchQuery { private String identifierPattern; @SlotName("source_ontology") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/source_ontology") private String sourceOntology; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/PathExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/PathExpression.java index eb42fa9..f7d6b7d 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/PathExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/PathExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/PathExpression") public class PathExpression { @@ -100,7 +93,7 @@ public class PathExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -109,17 +102,17 @@ public class PathExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -131,41 +124,41 @@ public class PathExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -178,18 +171,18 @@ public class PathExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/PatternExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/PatternExpression.java index 90113c0..fa2e2f4 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/PatternExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/PatternExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/PatternExpression") public class PatternExpression { @@ -80,7 +73,7 @@ public class PatternExpression { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -89,17 +82,17 @@ public class PatternExpression { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -111,41 +104,41 @@ public class PatternExpression { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -158,18 +151,18 @@ public class PatternExpression { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/PermissibleValue.java b/ext/src/main/java/org/incenp/linkml/schema/model/PermissibleValue.java index dd10432..13e7f30 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/PermissibleValue.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/PermissibleValue.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/PermissibleValue") public class PermissibleValue { @@ -31,19 +24,19 @@ public class PermissibleValue { @LinkURI("http://www.w3.org/2004/02/skos/core#definition") private String description; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/meaning") private String meaning; @LinkURI("http://qudt.org/schema/qudt/unit") private UnitOfMeasure unit; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/instantiates") private List instantiates; @SlotName("implements") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/implements") private List implements_; @@ -98,7 +91,7 @@ public class PermissibleValue { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -107,17 +100,17 @@ public class PermissibleValue { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -129,41 +122,41 @@ public class PermissibleValue { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -176,18 +169,18 @@ public class PermissibleValue { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Prefix.java b/ext/src/main/java/org/incenp/linkml/schema/model/Prefix.java index fbc8911..dc675b0 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Prefix.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Prefix.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Prefix") public class Prefix { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/ReachabilityQuery.java b/ext/src/main/java/org/incenp/linkml/schema/model/ReachabilityQuery.java index 25ca761..24c2604 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/ReachabilityQuery.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/ReachabilityQuery.java @@ -9,31 +9,24 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/ReachabilityQuery") public class ReachabilityQuery { @SlotName("source_ontology") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/source_ontology") private String sourceOntology; @SlotName("source_nodes") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/source_nodes") private List sourceNodes; @SlotName("relationship_types") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/relationship_types") private List relationshipTypes; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/SchemaDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/SchemaDefinition.java index a67b8fa..0f3c9cf 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/SchemaDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/SchemaDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/SchemaDefinition") public class SchemaDefinition extends Element { @@ -29,7 +22,7 @@ public class SchemaDefinition extends Element { @LinkURI("http://purl.org/pav/version") private String version; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/imports") private List imports; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/Setting.java b/ext/src/main/java/org/incenp/linkml/schema/model/Setting.java index b9cf889..b163650 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/Setting.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/Setting.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/Setting") public class Setting { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/SlotDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/SlotDefinition.java index 5c798ec..9c6824a 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/SlotDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/SlotDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/SlotDefinition") public class SlotDefinition extends Definition { @@ -30,7 +23,7 @@ public class SlotDefinition extends Definition { private ClassDefinition domain; @SlotName("slot_uri") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/slot_uri") private String slotUri; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/SlotExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/SlotExpression.java index ffe34fa..d26d07a 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/SlotExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/SlotExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/SlotExpression") public class SlotExpression extends Expression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/StructuredAlias.java b/ext/src/main/java/org/incenp/linkml/schema/model/StructuredAlias.java index 4c1f7a1..a125bb2 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/StructuredAlias.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/StructuredAlias.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("http://www.w3.org/2008/05/skos-xl#Label") public class StructuredAlias { @@ -31,7 +24,7 @@ public class StructuredAlias { @LinkURI("http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate") private AliasPredicateEnum predicate; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; @@ -86,7 +79,7 @@ public class StructuredAlias { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -95,17 +88,17 @@ public class StructuredAlias { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -117,41 +110,41 @@ public class StructuredAlias { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -164,11 +157,11 @@ public class StructuredAlias { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/SubsetDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/SubsetDefinition.java index abce3c1..8234cec 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/SubsetDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/SubsetDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/SubsetDefinition") public class SubsetDefinition extends Element { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/TypeDefinition.java b/ext/src/main/java/org/incenp/linkml/schema/model/TypeDefinition.java index 64cc473..f0333d9 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/TypeDefinition.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/TypeDefinition.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/TypeDefinition") public class TypeDefinition extends Element { @@ -28,7 +21,7 @@ public class TypeDefinition extends Element { @LinkURI("https://w3id.org/linkml/base") private String base; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/type_uri") private String uri; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/TypeExpression.java b/ext/src/main/java/org/incenp/linkml/schema/model/TypeExpression.java index afc6f09..99f4e0f 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/TypeExpression.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/TypeExpression.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/TypeExpression") public class TypeExpression extends Expression { diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/TypeMapping.java b/ext/src/main/java/org/incenp/linkml/schema/model/TypeMapping.java index b888d2b..7d2d8ba 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/TypeMapping.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/TypeMapping.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/TypeMapping") public class TypeMapping { @@ -82,7 +75,7 @@ public class TypeMapping { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -91,17 +84,17 @@ public class TypeMapping { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -113,41 +106,41 @@ public class TypeMapping { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -160,18 +153,18 @@ public class TypeMapping { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/UniqueKey.java b/ext/src/main/java/org/incenp/linkml/schema/model/UniqueKey.java index bb567aa..aa83698 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/UniqueKey.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/UniqueKey.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("https://w3id.org/linkml/UniqueKey") public class UniqueKey { @@ -85,7 +78,7 @@ public class UniqueKey { @LinkURI("https://w3id.org/linkml/imported_from") private String importedFrom; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/source") private String source; @@ -94,17 +87,17 @@ public class UniqueKey { private String inLanguage; @SlotName("see_also") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2000/01/rdf-schema#seeAlso") private List seeAlso; @SlotName("deprecated_element_has_exact_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_exact_replacement") private String deprecatedElementHasExactReplacement; @SlotName("deprecated_element_has_possible_replacement") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("https://w3id.org/linkml/deprecated_element_has_possible_replacement") private String deprecatedElementHasPossibleReplacement; @@ -116,41 +109,41 @@ public class UniqueKey { @LinkURI("http://www.w3.org/2008/05/skos-xl#altLabel") private List structuredAliases; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#mappingRelation") private List mappings; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @SlotName("close_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#closeMatch") private List closeMappings; @SlotName("related_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#relatedMatch") private List relatedMappings; @SlotName("narrow_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#narrowMatch") private List narrowMappings; @SlotName("broad_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#broadMatch") private List broadMappings; @SlotName("created_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/pav/createdBy") private String createdBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/contributor") private List contributors; @@ -163,18 +156,18 @@ public class UniqueKey { private ZonedDateTime lastUpdatedOn; @SlotName("modified_by") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://open-services.net/ns/core#modifiedBy") private String modifiedBy; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/ontology/bibo/status") private String status; @LinkURI("http://www.w3.org/ns/shacl#order") private Integer rank; - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://purl.org/dc/terms/subject") private List categories; diff --git a/ext/src/main/java/org/incenp/linkml/schema/model/UnitOfMeasure.java b/ext/src/main/java/org/incenp/linkml/schema/model/UnitOfMeasure.java index 7449c8c..c7ef2fa 100644 --- a/ext/src/main/java/org/incenp/linkml/schema/model/UnitOfMeasure.java +++ b/ext/src/main/java/org/incenp/linkml/schema/model/UnitOfMeasure.java @@ -9,15 +9,8 @@ import java.util.List; import java.util.Map; -import org.incenp.linkml.core.annotations.Converter; -import org.incenp.linkml.core.annotations.ExtensionHolder; -import org.incenp.linkml.core.annotations.Identifier; -import org.incenp.linkml.core.annotations.Inlined; -import org.incenp.linkml.core.annotations.LinkURI; -import org.incenp.linkml.core.annotations.Required; -import org.incenp.linkml.core.annotations.SlotName; -import org.incenp.linkml.core.annotations.TypeDesignator; -import org.incenp.linkml.core.CurieConverter; +import org.incenp.linkml.core.annotations.*; +import org.incenp.linkml.core.types.*; @LinkURI("http://qudt.org/schema/qudt/Unit") public class UnitOfMeasure { @@ -33,7 +26,7 @@ public class UnitOfMeasure { private String descriptiveName; @SlotName("exact_mappings") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://www.w3.org/2004/02/skos/core#exactMatch") private List exactMappings; @@ -46,7 +39,7 @@ public class UnitOfMeasure { private String derivation; @SlotName("has_quantity_kind") - @Converter(CurieConverter.class) + @TypeURI("https://w3id.org/linkml/Uriorcurie") @LinkURI("http://qudt.org/schema/qudt/hasQuantityKind") private String hasQuantityKind; 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")