import 'http://www.etsi.org/spec/TDL/1.4.1'
import 'http://www.etsi.org/spec/TDL/1.3.1/configurations'

package extendedconfigurations

context ComponentMerge
  -- No self-merging
  inv NoSelfMerge ('A \'ComponentInstance\' shall not be merged with itself, i.e. the source and target \'ComponentInstance\'s specified by means of the \'ComponentReference\'s shall be different. ' + self.toString()):
        not (self.component.component = self.target.component and
               self.component.configuration = self.target.configuration)
  

  -- Conforming 'ComponentType's
  inv ComponentMergeType ('The \'ComponentInstance\' specified by means of the target \'ComponentReference\'s shall have a \'ComponentType\' which conforms to the \'ComponentType\' of the source \'ComponentReference\'. ' + self.toString()):
        self.target.component.type.conformsTo(self.component.component.type)
  



context ComponentAlias
  -- Mandatory name
  inv AliasMandatoryName ('The \'name\' property of the \'ComponentAlias\' shall be set and it shall not be an empty String.' + self.toString()):
        not self.name.oclIsUndefined() and self.name.size() > 0
  




endpackage
