2020-01-16 16:48:08 +01:00
package org.gcube.informationsystem.types.reference.entities ;
import java.util.List ;
2020-07-07 17:04:25 +02:00
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize ;
2020-01-17 17:03:33 +01:00
import org.gcube.informationsystem.types.annotations.ISProperty ;
2020-01-30 10:26:43 +01:00
import org.gcube.informationsystem.types.impl.entities.ResourceTypeImpl ;
2020-12-15 17:38:06 +01:00
import org.gcube.informationsystem.types.reference.Change ;
import org.gcube.informationsystem.types.reference.TypeMetadata ;
2020-01-30 10:26:43 +01:00
import org.gcube.informationsystem.types.reference.properties.LinkedEntity ;
2020-12-15 17:38:06 +01:00
import org.gcube.informationsystem.utils.TypeVersion ;
2020-01-16 16:48:08 +01:00
2020-01-30 10:26:43 +01:00
@JsonDeserialize ( as = ResourceTypeImpl . class )
2020-12-15 17:38:06 +01:00
@TypeMetadata ( name = ResourceType . NAME , description = " This class provides information for the definition of any ResourceType " , version = TypeVersion . MINIMAL_VERSION_STRING )
@Change ( version = TypeVersion . MINIMAL_VERSION_STRING , description = TypeVersion . MINIMAL_VERSION_DESCRIPTION )
2020-01-30 10:26:43 +01:00
public interface ResourceType extends EntityType {
2020-01-16 16:48:08 +01:00
2020-01-30 10:26:43 +01:00
public static final String NAME = " ResourceType " ; //ResourceType.class.getSimpleName();
2020-01-16 16:48:08 +01:00
2020-01-17 17:03:33 +01:00
public static final String FACETS_PROPERTY = " facets " ;
public static final String RESOURCES_PROPERTY = " resources " ;
@ISProperty ( name = FACETS_PROPERTY , readonly = false , mandatory = true , nullable = false )
2020-01-30 10:26:43 +01:00
public List < LinkedEntity > getFacets ( ) ;
2020-01-16 16:48:08 +01:00
2020-01-17 17:03:33 +01:00
@ISProperty ( name = RESOURCES_PROPERTY , readonly = false , mandatory = true , nullable = false )
2020-01-30 10:26:43 +01:00
public List < LinkedEntity > getResources ( ) ;
2020-01-17 17:03:33 +01:00
2020-01-16 16:48:08 +01:00
}