2020-02-03 10:51:29 +01:00
|
|
|
package org.gcube.informationsystem.base.reference;
|
|
|
|
|
2023-04-18 17:51:23 +02:00
|
|
|
import java.util.UUID;
|
|
|
|
|
2023-04-27 14:46:08 +02:00
|
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonGetter;
|
2023-05-05 11:01:48 +02:00
|
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonInclude;
|
|
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonInclude.Include;
|
2023-04-27 14:46:08 +02:00
|
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
|
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonSetter;
|
2023-04-18 17:51:23 +02:00
|
|
|
import org.gcube.informationsystem.model.reference.properties.Metadata;
|
2020-02-03 10:51:29 +01:00
|
|
|
|
|
|
|
/**
|
2023-04-18 17:51:23 +02:00
|
|
|
* This interfaces is an helper to identify elements could be identified via {@link Metadata}
|
2021-01-20 17:26:13 +01:00
|
|
|
*
|
|
|
|
* @author Luca Frosini (ISTI - CNR)
|
2020-02-03 10:51:29 +01:00
|
|
|
*/
|
2023-05-04 18:08:30 +02:00
|
|
|
@JsonPropertyOrder({ IdentifiableElement.ID_PROPERTY, Element.TYPE_PROPERTY, Element.SUPERTYPES_PROPERTY, Element.EXPECTED_TYPE_PROPERTY, IdentifiableElement.METADATA_PROPERTY })
|
2020-02-03 10:51:29 +01:00
|
|
|
public interface IdentifiableElement extends Element {
|
|
|
|
|
2023-04-28 11:33:29 +02:00
|
|
|
public static final String ID_PROPERTY = "id";
|
2023-04-20 16:59:02 +02:00
|
|
|
public static final String METADATA_PROPERTY = "metadata";
|
2023-04-18 17:51:23 +02:00
|
|
|
|
2023-04-28 11:33:29 +02:00
|
|
|
@JsonGetter(value = ID_PROPERTY)
|
|
|
|
public UUID getID();
|
2020-02-03 10:51:29 +01:00
|
|
|
|
2023-04-28 11:33:29 +02:00
|
|
|
@JsonSetter(value = ID_PROPERTY)
|
|
|
|
public void setID(UUID uuid);
|
2023-04-18 17:51:23 +02:00
|
|
|
|
2023-05-05 11:01:48 +02:00
|
|
|
@JsonInclude(Include.NON_NULL)
|
2023-04-27 14:46:08 +02:00
|
|
|
@JsonGetter(value = METADATA_PROPERTY)
|
2023-04-18 17:51:23 +02:00
|
|
|
public Metadata getMetadata();
|
2020-02-03 10:51:29 +01:00
|
|
|
|
2023-04-27 14:46:08 +02:00
|
|
|
@JsonSetter(value = METADATA_PROPERTY)
|
2023-04-18 17:51:23 +02:00
|
|
|
public void setMetadata(Metadata metadata);
|
2023-04-19 16:38:40 +02:00
|
|
|
|
2020-02-03 10:51:29 +01:00
|
|
|
}
|