Added annotations to defined facets to comply with the new way to create

type definition
This commit is contained in:
Luca Frosini 2020-12-15 18:38:41 +01:00
parent 6c81f0bd3c
commit 9c84b79924
27 changed files with 304 additions and 68 deletions

View File

@ -3,12 +3,8 @@
*/
package org.gcube.resourcemanagement.model.impl.entities.facets;
import java.util.Map;
import org.gcube.com.fasterxml.jackson.annotation.JsonTypeName;
import org.gcube.informationsystem.model.impl.entities.FacetImpl;
import org.gcube.informationsystem.types.impl.TypeImpl;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.reference.entities.facets.IdentifierFacet;
/**
@ -22,13 +18,14 @@ public class IdentifierFacetImpl extends FacetImpl implements IdentifierFacet {
*/
private static final long serialVersionUID = 5711870008624673728L;
/*
public static final Map<TypeVersion, String> CHANGELOG;
static {
CHANGELOG = TypeImpl.DEFAULT_CHANGELOG_MAP;
CHANGELOG.put(new TypeVersion(IdentifierFacet.VERSION), "Added STRING in IdentificationType");
}
*/
protected String value;
protected IdentificationType type;
protected boolean persistent;

View File

@ -9,6 +9,9 @@ import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.model.reference.properties.Property;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.AccessPointFacetImpl;
/**
@ -16,17 +19,18 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.AccessPointFacetI
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Access_Point_Facet
*/
@JsonDeserialize(as=AccessPointFacetImpl.class)
@TypeMetadata(
name = AccessPointFacet.NAME,
description = "This facet is expected to capture information on \"access points\" for a resource, i.e. any endpoint to interact with the resource via a known protocol.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface AccessPointFacet extends Facet {
public static final String NAME = "AccessPointFacet"; //AccessPointFacet.class.getSimpleName();
public static final String DESCRIPTION = "This facet is expected to "
+ "capture information on “access points” for a resource, i.e. any "
+ "endpoint to interact with the resource via a known protocol.";
public static final String VERSION = "1.0.0";
public static final String NAME = "AccessPointFacet"; // AccessPointFacet.class.getSimpleName();
public static final String ENDPOINT_PROPERTY = "endpoint";
@ISProperty
public String getEntryName();

View File

@ -3,6 +3,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.ActionFacetImpl;
import org.gcube.resourcemanagement.model.reference.properties.EnumStringProperty;
@ -11,15 +14,17 @@ import org.gcube.resourcemanagement.model.reference.properties.EnumStringPropert
*
* @author Manuele Simi (ISTI-CNR)
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Action_Facet
*/
@JsonDeserialize(as=ActionFacetImpl.class)
@TypeMetadata(
name = ActionFacet.NAME,
description = "This facet is expected to capture information on which action perform while a resource is added or removed from a context.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface ActionFacet extends Facet, NameProperty {
public static final String NAME = "ActionFacet";
public static final String DESCRIPTION = "This facet is expected to "
+ "capture information on which action perform while a resource is added or removed from a context.";
public static final String VERSION = "1.0.0";
public static final String NAME = "ActionFacet"; // ActionFacet.class.getSimpleName();
public static final String TYPE_PROPERTY = "type";

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.CPUFacetImpl;
/**
@ -13,11 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.CPUFacetImpl;
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#CPU_Facet
*/
@JsonDeserialize(as=CPUFacetImpl.class)
@TypeMetadata(
name = CPUFacet.NAME,
description = "Describes CPU information.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface CPUFacet extends Facet {
public static final String NAME = "CPUFacet"; //CPUFacet.class.getSimpleName();
public static final String DESCRIPTION = "Describes CPU information";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public String getModel();

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.CapabilityFacetImpl;
/**
@ -13,13 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.CapabilityFacetIm
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Contact_Facet
*/
@JsonDeserialize(as=CapabilityFacetImpl.class)
@TypeMetadata(
name = CapabilityFacet.NAME,
description = "This facet is expected to capture a defined facility for performing a specified task supported by a given Service or Software.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface CapabilityFacet extends Facet {
public static final String NAME = "CapabilityFacet"; // CapabilityFacet.class.getSimpleName();
public static final String DESCRIPTION = "This facet is expected to "
+ "capture a defined facility for performing a specified task "
+ "supported by a given Service or Software";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public String getName();

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.ContactFacetImpl;
/**
@ -13,11 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.ContactFacetImpl;
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Contact_Facet
*/
@JsonDeserialize(as=ContactFacetImpl.class)
@TypeMetadata(
name = ContactFacet.NAME,
description = "This facet is expected to capture contact information.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface ContactFacet extends Facet {
public static final String NAME = "ContactFacet"; // ContactFacet.class.getSimpleName();
public static final String DESCRIPTION = "This facet is expected to capture contact information";
public static final String VERSION = "1.0.0";
public static final String EMAIL_PROPERTY = "eMail";

View File

@ -8,6 +8,9 @@ import java.net.URL;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.ContactReferenceFacetImpl;
/**
@ -15,12 +18,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.ContactReferenceF
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Contact_Reference_Facet
*/
@JsonDeserialize(as=ContactReferenceFacetImpl.class)
@TypeMetadata(
name = ContactReferenceFacet.NAME,
description = "This facet is expected to capture extended contact information",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface ContactReferenceFacet extends Facet {
public static final String NAME = "ContactReferenceFacet"; // ContactReferenceFacet.class.getSimpleName();
public static final String DESCRIPTION = "This facet is expected to "
+ "capture contact information";
public static final String VERSION = "1.0.0";
@ISProperty
public URL getWebsite();

View File

@ -4,6 +4,9 @@
package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.ContainerStateFacetImpl;
@ -12,10 +15,14 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.ContainerStateFac
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Container_State_Facet
*/
@JsonDeserialize(as=ContainerStateFacetImpl.class)
@TypeMetadata(
name = ContainerStateFacet.NAME,
description = "Container State Information",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface ContainerStateFacet extends StateFacet {
public static final String NAME = "ContainerStateFacet"; // ContainerStateFacet.class.getSimpleName();
public static final String DESCRIPTION = "Container State Information";
public static final String VERSION = "1.0.0";
}

View File

@ -8,6 +8,9 @@ import java.net.URI;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.CoverageFacetImpl;
/**
@ -15,11 +18,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.CoverageFacetImpl
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Coverage_Facet
*/
@JsonDeserialize(as=CoverageFacetImpl.class)
@TypeMetadata(
name = CoverageFacet.NAME,
description = "Collect any \\\"extent\\\"-related information.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface CoverageFacet extends Facet {
public static final String NAME = "CoverageFacet"; // CoverageFacet.class.getSimpleName();
public static final String DESCRIPTION = "Collect any \"extent\"-related information.";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public String getValue();

View File

@ -8,6 +8,9 @@ import java.net.URI;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.DescriptiveMetadataFacetImpl;
/**
@ -15,11 +18,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.DescriptiveMetada
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Descriptive_Metadata_Facet
*/
@JsonDeserialize(as=DescriptiveMetadataFacetImpl.class)
@TypeMetadata(
name = DescriptiveMetadataFacet.NAME,
description = "Collect any descriptive metadata about the resource.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface DescriptiveMetadataFacet extends Facet {
public static final String NAME = "DescriptiveMetadataFacet"; // DescriptiveMetadataFacet.class.getSimpleName();
public static final String DESCRIPTION = "Collect any descriptive metadata about the resource";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public String getValue();

View File

@ -11,6 +11,9 @@ import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.EventFacetImpl;
/**
@ -18,6 +21,12 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.EventFacetImpl;
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Event_Facet
*/
@JsonDeserialize(as=EventFacetImpl.class)
@TypeMetadata(
name = EventFacet.NAME,
description = "This Facet collect information on happened events.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface EventFacet extends Facet {
public static final String NAME = "EventFacet"; // EventFacet.class.getSimpleName();

View File

@ -3,11 +3,11 @@
*/
package org.gcube.resourcemanagement.model.reference.entities.facets;
import java.util.Map;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.IdentifierFacetImpl;
@ -25,13 +25,16 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.IdentifierFacetIm
*
*/
@JsonDeserialize(as=IdentifierFacetImpl.class)
@TypeMetadata(
name = IdentifierFacet.NAME,
description = "This facet collects information on Identifiers that can be attached to a resource.",
version = "1.0.1"
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
@Change(version = "1.0.1", description = "Added STRING in IdentificationType enum.")
public interface IdentifierFacet extends Facet {
public static final String NAME = "IdentifierFacet"; // IdentifierFacet.class.getSimpleName();
public static final String DESCRIPTION = "This facet collects "
+ "information on Identifiers that can be attached to a resource. ";
public static final String VERSION = "1.0.1";
public static final Map<TypeVersion, String> CHANGELOG = IdentifierFacetImpl.CHANGELOG;
public static final String VALUE_PROPERTY = "value";
public static final String TYPE_PROPERTY = "type";

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.properties.Property;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.JSONSchemaFacetImpl;
/**
@ -13,11 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.JSONSchemaFacetIm
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#XSD_Schema_Facet
*/
@JsonDeserialize(as=JSONSchemaFacetImpl.class)
@TypeMetadata(
name = JSONSchemaFacet.NAME,
description = "rovide a way to store a JSON Schema",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface JSONSchemaFacet extends SchemaFacet {
public static final String NAME = "JSONSchemaFacet"; // JSONSchemaFacet.class.getSimpleName();
public static final String DESCRIPTION = "Provide a way to store a JSON Schema";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public Property getContent();

View File

@ -8,6 +8,9 @@ import java.net.URL;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.LicenseFacetImpl;
/**
@ -15,11 +18,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.LicenseFacetImpl;
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#License_Facet
*/
@JsonDeserialize(as=LicenseFacetImpl.class)
@TypeMetadata(
name = LicenseFacet.NAME,
description = "License information.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface LicenseFacet extends Facet {
public static final String NAME = "LicenseFacet"; // LicenseFacet.class.getSimpleName();
public static final String DESCRIPTION = "License information";
public static final String VERSION = "1.0.0";
public static final String TEXT_URL_PROPERTY = "textURL";

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.LocationFacetImpl;
/**
@ -13,11 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.LocationFacetImpl
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Location_Facet
*/
@JsonDeserialize(as=LocationFacetImpl.class)
@TypeMetadata(
name = LocationFacet.NAME,
description = "Location information",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface LocationFacet extends Facet {
public static final String NAME = "LocationFacet"; // LocationFacet.class.getSimpleName();
public static final String DESCRIPTION = "Location information";
public static final String VERSION = "1.0.0";
@ISProperty
public String getCountry();

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.MemoryFacetImpl;
/**
@ -13,11 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.MemoryFacetImpl;
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Memory_Facet
*/
@JsonDeserialize(as=MemoryFacetImpl.class)
@TypeMetadata(
name = MemoryFacet.NAME,
description = "Memory information",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface MemoryFacet extends Facet {
public static final String NAME = "MemoryFacet"; // MemoryFacet.class.getSimpleName();
public static final String DESCRIPTION = "Memory information";
public static final String VERSION = "1.0.0";
public enum MemoryUnit {
Byte, kB, MB, GB, TB, PB, EB, ZB, YB

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.NetworkingFacetImpl;
/**
@ -13,11 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.NetworkingFacetIm
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Network_Address_Facet
*/
@JsonDeserialize(as=NetworkingFacetImpl.class)
@TypeMetadata(
name = NetworkingFacet.NAME,
description = "Networking information",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface NetworkingFacet extends Facet {
public static final String NAME = "NetworkingFacet"; // NetworkingFacet.class.getSimpleName();
public static final String DESCRIPTION = "Networking information";
public static final String VERSION = "1.0.0";
public static final String IP_ADDRESS = "IPAddress";

View File

@ -9,6 +9,9 @@ import java.util.UUID;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.ProvenanceFacetImpl;
/**
@ -16,11 +19,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.ProvenanceFacetIm
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Provenance_Facet
*/
@JsonDeserialize(as=ProvenanceFacetImpl.class)
@TypeMetadata(
name = ProvenanceFacet.NAME,
description = "Collect information related with resource lineage/provenance.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface ProvenanceFacet extends Facet {
public static final String NAME = "ProvenanceFacet"; // ProvenanceFacet.class.getSimpleName();
public static final String DESCRIPTION = "Collect information related with resource lineage/provenance";
public static final String VERSION = "1.0.0";
public enum Relationship {
wasDerivedFrom, wasGeneratedBy /* .... */

View File

@ -8,6 +8,9 @@ import java.net.URL;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.SchemaFacetImpl;
/**
@ -15,11 +18,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.SchemaFacetImpl;
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Schema_Facet
*/
@JsonDeserialize(as=SchemaFacetImpl.class)
@TypeMetadata(
name = SchemaFacet.NAME,
description = "Provide a way to store a Schema",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface SchemaFacet extends Facet {
public static final String NAME = "SchemaFacet"; // SchemaFacet.class.getSimpleName();
public static final String DESCRIPTION = "Provide a way to store a Schema";
public static final String VERSION = "1.0.0";
public static final String NAME_PROPERTY = "name";

View File

@ -4,6 +4,9 @@
package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.ServiceStateFacetImpl;
@ -12,10 +15,14 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.ServiceStateFacet
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Service_State_Facet
*/
@JsonDeserialize(as=ServiceStateFacetImpl.class)
@TypeMetadata(
name = ServiceStateFacet.NAME,
description = "Service State Information",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface ServiceStateFacet extends StateFacet {
public static final String NAME = "ServiceStateFacet"; // ServiceStateFacet.class.getSimpleName();
public static final String DESCRIPTION = "State Information";
public static final String VERSION = "1.0.0";
}

View File

@ -5,6 +5,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.SimpleFacetImpl;
/**
@ -12,10 +15,14 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.SimpleFacetImpl;
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Simple_Property_Facet
*/
@JsonDeserialize(as=SimpleFacetImpl.class)
@TypeMetadata(
name = SimpleFacet.NAME,
description = "A sort of catch all",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface SimpleFacet extends Facet {
public static final String NAME = "SimpleFacet"; // SimpleFacet.class.getSimpleName();
public static final String DESCRIPTION = "A sort of catch all";
public static final String VERSION = "1.0.0";
}

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.SimplePropertyFacetImpl;
/**
@ -13,11 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.SimplePropertyFac
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Simple_Property_Facet
*/
@JsonDeserialize(as=SimplePropertyFacetImpl.class)
@TypeMetadata(
name = SimplePropertyFacet.NAME,
description = "Collect name-value property",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface SimplePropertyFacet extends Facet {
public static final String NAME = "SimplePropertyFacet"; // SimplePropertyFacet.class.getSimpleName();
public static final String DESCRIPTION = "Collect name-value property";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public String getName();

View File

@ -6,6 +6,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.SoftwareFacetImpl;
/**
@ -13,11 +16,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.SoftwareFacetImpl
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Software_Facet
*/
@JsonDeserialize(as=SoftwareFacetImpl.class)
@TypeMetadata(
name = SoftwareFacet.NAME,
description = "Capture SW related features",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface SoftwareFacet extends Facet, NameProperty {
public static final String NAME = "SoftwareFacet"; // SoftwareFacet.class.getSimpleName();
public static final String DESCRIPTION = "Capture SW related features";
public static final String VERSION = "1.0.0";
public static final String GROUP_PROPERTY = "group";
public static final String VERSION_PROPERTY = "version";

View File

@ -7,6 +7,9 @@ import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.Abstract;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.StateFacetImpl;
/**
@ -15,12 +18,16 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.StateFacetImpl;
*/
@Abstract
@JsonDeserialize(as=StateFacetImpl.class)
@TypeMetadata(
name = StateFacet.NAME,
description = "Any resource State Information",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface StateFacet extends Facet {
public static final String NAME = "StateFacet"; // StateFacet.class.getSimpleName();
public static final String DESCRIPTION = "State Information";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public String getValue();

View File

@ -8,6 +8,9 @@ import java.net.URI;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.model.reference.entities.Facet;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.SubjectFacetImpl;
/**
@ -15,11 +18,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.SubjectFacetImpl;
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Subject_Facet
*/
@JsonDeserialize(as=SubjectFacetImpl.class)
@TypeMetadata(
name = SubjectFacet.NAME,
description = "Collect any \"extent\"-related information.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface SubjectFacet extends Facet {
public static final String NAME = "SubjectFacet"; // SubjectFacet.class.getSimpleName();
public static final String DESCRIPTION = "Collect any \"extent\"-related information.";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public String getValue();

View File

@ -5,6 +5,9 @@ package org.gcube.resourcemanagement.model.reference.entities.facets;
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.gcube.informationsystem.types.annotations.ISProperty;
import org.gcube.informationsystem.types.reference.Change;
import org.gcube.informationsystem.types.reference.TypeMetadata;
import org.gcube.informationsystem.utils.TypeVersion;
import org.gcube.resourcemanagement.model.impl.entities.facets.XSDSchemaFacetImpl;
/**
@ -12,11 +15,15 @@ import org.gcube.resourcemanagement.model.impl.entities.facets.XSDSchemaFacetImp
* https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#XSD_Schema_Facet
*/
@JsonDeserialize(as=XSDSchemaFacetImpl.class)
@TypeMetadata(
name = XSDSchemaFacet.NAME,
description = "Provide a way to store a JSON Schema",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface XSDSchemaFacet extends SchemaFacet {
public static final String NAME = "XSDSchemaFacet"; // XSDSchemaFacet.class.getSimpleName();
public static final String DESCRIPTION = "Provide a way to store a JSON Schema";
public static final String VERSION = "1.0.0";
@ISProperty(mandatory=true, nullable=false)
public String getContent();

View File

@ -0,0 +1,74 @@
package org.gcube.resourcemanagement.model;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.base.reference.entities.EntityElement;
import org.gcube.informationsystem.base.reference.properties.PropertyElement;
import org.gcube.informationsystem.base.reference.relations.RelationElement;
import org.gcube.informationsystem.types.TypeMapper;
import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.utils.discovery.ElementSpecilizationDiscovery;
import org.gcube.informationsystem.utils.discovery.RegistrationProvider;
import org.gcube.informationsystem.utils.discovery.SchemaAction;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ISMDiscoveryTest {
private static final Logger logger = LoggerFactory.getLogger(ISMDiscoveryTest.class);
@Test
public void test() throws Exception {
List<Package> packages = new ArrayList<Package>();
Class<Type> tdClz = Type.class;
packages.add(tdClz.getPackage());
AccessType[] accessTypes = AccessType.values();
for(AccessType accessType : accessTypes) {
Class<Element> clz = accessType.getTypeClass();
packages.add(clz.getPackage());
}
ServiceLoader<? extends RegistrationProvider> regsitrationProviders = ServiceLoader
.load(RegistrationProvider.class);
for(RegistrationProvider registrationProvider : regsitrationProviders) {
packages.addAll(registrationProvider.getPackagesToRegister());
}
SchemaAction schemaAction = new SchemaAction() {
@Override
public <R extends RelationElement<? extends EntityElement, ? extends EntityElement>> void manageRelationClass(
Class<R> r) throws Exception {
Type type = TypeMapper.createTypeDefinition(r);
Assert.assertTrue(type.getName().compareTo(r.getSimpleName())==0);
logger.debug("{} {}", r.getSimpleName(), TypeMapper.serializeTypeDefinition(type));
}
@Override
public <P extends PropertyElement> void managePropertyClass(Class<P> p) throws Exception {
Type type = TypeMapper.createTypeDefinition(p);
Assert.assertTrue(type.getName().compareTo(p.getSimpleName())==0);
logger.debug("{} {}", p.getSimpleName(), TypeMapper.serializeTypeDefinition(type));
}
@Override
public <E extends EntityElement> void manageEntityClass(Class<E> e) throws Exception {
Type type = TypeMapper.createTypeDefinition(e);
Assert.assertTrue(type.getName().compareTo(e.getSimpleName())==0);
logger.debug("{} {}", e.getSimpleName(), TypeMapper.serializeTypeDefinition(type));
}
};
ElementSpecilizationDiscovery.manageISM(schemaAction , packages);
}
}