2020-01-15 11:55:39 +01:00
package org.gcube.informationsystem.types.reference.properties ;
2020-07-07 17:04:25 +02:00
import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize ;
2020-01-30 10:26:43 +01:00
import org.gcube.informationsystem.base.reference.properties.PropertyElement ;
2020-01-15 11:55:39 +01:00
import org.gcube.informationsystem.types.annotations.ISProperty ;
2020-01-30 10:26:43 +01:00
import org.gcube.informationsystem.types.impl.properties.LinkedEntityImpl ;
2020-12-15 17:38:06 +01:00
import org.gcube.informationsystem.types.reference.Change ;
import org.gcube.informationsystem.types.reference.TypeMetadata ;
import org.gcube.informationsystem.utils.TypeVersion ;
2020-01-15 11:55:39 +01:00
2020-12-15 17:38:06 +01:00
/ * *
2021-01-20 17:03:02 +01:00
* A convenient type to define a Resource in terms of :
* - mandatory / recommended ConsistsOf - > Facets ;
2021-01-20 17:26:13 +01:00
* - suggested IsRelatedTo - > Resource .
*
* @author Luca Frosini ( ISTI - CNR )
2020-12-15 17:38:06 +01:00
* /
2020-01-30 10:26:43 +01:00
@JsonDeserialize ( as = LinkedEntityImpl . class )
2021-01-13 21:53:16 +01:00
@TypeMetadata ( name = LinkedEntity . NAME , description = " A convenient type to define a Resource in terms of: mandatory/recommended ConsistsOf->Facets; uggested IsRelatedTo->Resource. " , version = TypeVersion . MINIMAL_VERSION_STRING )
2020-12-15 17:38:06 +01:00
@Change ( version = TypeVersion . MINIMAL_VERSION_STRING , description = TypeVersion . MINIMAL_VERSION_DESCRIPTION )
2020-01-30 10:26:43 +01:00
public interface LinkedEntity extends PropertyElement {
2020-01-15 11:55:39 +01:00
2020-01-30 10:26:43 +01:00
public static final String NAME = " LinkedEntity " ; // LinkedEntity.class.getSimpleName();
2020-01-15 11:55:39 +01:00
public static final String SOURCE_PROPERTY = " source " ;
public static final String RELATION_PROPERTY = " relation " ;
public static final String TARGET_PROPERTY = " target " ;
public static final String DESCRIPTION_PROPERTY = " description " ;
public static final String MIN_PROPERTY = " min " ;
public static final String MAX_PROPERTY = " max " ;
@ISProperty ( name = SOURCE_PROPERTY , readonly = true , mandatory = true , nullable = false )
public String getSource ( ) ;
public void setSource ( String source ) ;
@ISProperty ( name = RELATION_PROPERTY , readonly = true , mandatory = true , nullable = false )
public String getRelation ( ) ;
public void setRelation ( String relation ) ;
@ISProperty ( name = TARGET_PROPERTY , readonly = true , mandatory = true , nullable = false )
public String getTarget ( ) ;
public void setTarget ( String target ) ;
@ISProperty ( name = DESCRIPTION_PROPERTY , readonly = true , mandatory = true , nullable = false )
public String getDescription ( ) ;
public void setDescription ( String description ) ;
2020-01-17 17:03:33 +01:00
@ISProperty ( name = MIN_PROPERTY , readonly = true , mandatory = true , nullable = false )
2020-01-15 11:55:39 +01:00
public Integer getMin ( ) ;
public void setMin ( Integer min ) ;
2020-01-17 17:03:33 +01:00
@ISProperty ( name = MAX_PROPERTY , readonly = true , mandatory = true , nullable = true )
2020-01-15 11:55:39 +01:00
public Integer getMax ( ) ;
public void setMax ( Integer max ) ;
}