- All Superinterfaces:
org.gcube.informationsystem.base.reference.Element,org.gcube.informationsystem.model.reference.ERElement,org.gcube.informationsystem.base.reference.IdentifiableElement,org.gcube.informationsystem.model.reference.relations.IsRelatedTo<Out,,In> org.gcube.informationsystem.model.reference.ModelElement,org.gcube.informationsystem.model.reference.relations.Relation<Out,,In> org.gcube.informationsystem.base.reference.relations.RelationElement<Out,,In> org.gcube.informationsystem.base.reference.SchemaMixedElement,Serializable
- All Known Implementing Classes:
RequiresImpl
@TypeMetadata(name="Requires",
description="Requires is used to indicate that the source [Software](type:Software) when activated requires to interact with a specific [Service](type:Service) instance, i.e., the target of the relation. This relation usually reflects an administrative constraint rather than a technological limitation. When there are no constraints on the instance the relation is instead [DependsOn](type:DependsOn) which is between two [Software](type:Software). Not necessarily all the [Software](type:Software) running in the infrastructure are represented as resources. Only the [Software](type:Software) required for infrastructure administration or the ones to be managed with specific policies are represented. Indeed, Requires relation is normally used as policy constraint. Let us imagine an open source software which uses a MySQL database as backend. In many cases, what characterises the software instance is the data present in the backend. The infrastructure manager could stipulate an agreement with a provider having a particular set of data which is not for public domain. The software once deployed, given the business agreement, is entitled to use the instance of the provider and not a generic MySQL database instance. The infrastructure manager imposes the use of such a particular instance because of the data it contains.",
version="1.0.0")
@Change(version="1.0.0",
description="First Version")
public interface Requires<Out extends Software,In extends Service>
extends org.gcube.informationsystem.model.reference.relations.IsRelatedTo<Out,In>
Requires is used to indicate that the source
Software when activated
requires
to interact with a specific Service instance, i.e., the target of the
relation.
This relation usually reflects an administrative constraint rather than a
technological limitation.
When there are no constraints on the instance the relation is instead
DependsOn
which is between two Software.
Not necessarily all the Software running in the infrastructure are
represented as
resources. Only the Software required for infrastructure
administration or the
ones to be managed with specific policies are represented.
Indeed, Requires relation is normally used as policy constraint.
Let us imagine an open source software which uses a MySQL database as
backend.
In many cases, what characterises the software instance is the data present
in the backend.
The infrastructure manager could stipulate an agreement with a provider
having a particular
set of data which is not for public domain.
The software once deployed, given the business agreement, is entitled to use
the instance
of the provider and not a generic MySQL database instance.
The infrastructure manager imposes the use of such a particular instance
because of the data it contains.- Author:
- Luca Frosini (ISTI - CNR)
-
Field Summary
FieldsFields inherited from interface org.gcube.informationsystem.base.reference.Element
DATETIME_PATTERN, REDACTED, TYPE_PROPERTY, UNKNOWN_USERFields inherited from interface org.gcube.informationsystem.model.reference.ERElement
CONTEXTS_PROPERTYFields inherited from interface org.gcube.informationsystem.base.reference.IdentifiableElement
ID_PROPERTY, METADATA_PROPERTYFields inherited from interface org.gcube.informationsystem.model.reference.ModelElement
EXPECTED_TYPE_PROPERTY, SUPERTYPES_PROPERTYFields inherited from interface org.gcube.informationsystem.model.reference.relations.Relation
PROPAGATION_CONSTRAINT_PROPERTYFields inherited from interface org.gcube.informationsystem.base.reference.relations.RelationElement
SOURCE_PROPERTY, TARGET_PROPERTY -
Method Summary
Static MethodsModifier and TypeMethodDescriptiongetDefaultInstance(Out out, In in) Returns a default instance of RequiresMethods inherited from interface org.gcube.informationsystem.base.reference.Element
getTypeNameMethods inherited from interface org.gcube.informationsystem.model.reference.ERElement
getContextsMethods inherited from interface org.gcube.informationsystem.model.reference.ModelElement
getExpectedType, getSupertypesMethods inherited from interface org.gcube.informationsystem.model.reference.relations.Relation
getAdditionalProperties, getAdditionalProperty, getPropagationConstraint, getSource, getTarget, setAdditionalProperties, setAdditionalProperty, setPropagationConstraint, setSource, setTargetMethods inherited from interface org.gcube.informationsystem.base.reference.relations.RelationElement
getID, getMetadata, setID, setMetadata
-
Field Details
-
NAME
The name of the Requires relation type.- See Also:
-
-
Method Details
-
getDefaultInstance
static <Out extends Software,In extends Service> Requires<Out,In> getDefaultInstance(Out out, In in) Returns a default instance of Requires- Type Parameters:
Out- the source SoftwareIn- the target Service- Parameters:
out- the source Software instancein- the target Service instance- Returns:
- a default instance of Requires
-