The general idea behind the storage of Winery is that each entity comes with an id.
The id is either self contained or references a parent id, where the element is nested in.
All Ids inherit from GenericId
.
The child AdminId
is used for all administrative elements required for internal management.
DummyParentForGeneratedXSDRef
is required during the export of generated XML Schema Definitions due to the use of Winery’s key/value properties.
DefinitionsChildId
is the parent element for all TOSCA Elements which may be defined directly as child of a “Definitions” element.
All other elements have “TOSCAElementId” as parent.
NamespacesId
is used as container for a mapping file from namespace prefixes to namespaces.
TypesId
is the parent element of all types user can set.
These are not node types etc., but ConstraintTypes
(for Constraints), PlanLanguages
(for plans), and PlanTypes
(for plans).
The inclusion of PlanLanguages
is due to reuse of the class AbstractTypesManager
for plan languages.
TOSCA does not restrict these enumerations.
Therefore, Winery manages all known types for itself.
This ID class is used for all entities directly nested in a TDefinitions
element.
They all have a namespace and an id attribute.
This is ensured by DefinitionsChildId
.
EntityTemplateId
collects all Entity Templates directly nested in a Definitions element.
As a result, the ids of NodeTemplates or RelationshipTemplates do not inherit from EntityTemplateId.
They are contained in a Service Template and not directly in the Definitions element.
Thus, the only children of EntityTemplateId
are ArtifactTemplateId
, PolicyTemplateId
, and ServiceTemplateId
.
EntityTypeId
collects all Entity Types directly nested in a TDefinitions
element.
These are IDs for ArtifactTypes, CapabilityTypes, PolicyTypes, RequirementTypes, NodeTypes and RelationshipTypes.
Node Types and Relationship Types have the direct parent TopologyGraphElementTypeId
as these two types form the types of components of the topology graph.
EntityTypeImplementationId
is the parent id for NodeTypeImplementationId and RelationshipTypeImplementationId and thus subsumes the two possible entities which can be implementations.
GenericImportId
is an artificial entity.
It is used to be able to store imports of an imported CSAR.
These imports might be XSD definitions, but also WSDL files.