Example #1
0
    def __init__(self, id, operationRef, implementation='##WebService', **kwargs):
        '''
        operationRef:Operation
            This attribute specifies the operation through which the Receive Task receives the Message.

        implementation:str (default='##WebService')
            This attribute specifies the technology that will be used to send and receive
            the Messages. Valid values are "##unspecified" for leaving the implementation
            technology open, "##WebService" for the Web service technology or a URI identifying any other
            technology or coordination protocol.

        messageRef:Message
            A Message for the messageRef attribute MAY be entered.
            This indicates that the Message will be received by the Task.
            The Message in this context is equivalent to an in-only message pattern (Web service).
            The Message is applied to all incoming Message Flows,
            but can arrive for only one of the incoming Message Flows for a single instance of the Task.
        
        instantiate:bool (default=False)
            Receive Tasks can be defined as the instantiation mechanism for the
            Process with the instantiate attribute.
            This attribute MAY be set to true if the Task is the first Activity (i.e., there are no incoming Sequence Flows).
            Multiple Tasks MAY have this attribute set to true.
        '''
        super(ReceiveTask, self).__init__(id, **kwargs)
        self.operationRef = operationRef
        self.implementation = implementation
        self.messageRef = kwargs.pop('messageRef', None)
        self.instantiate = kwargs.pop('instantiate', False)
        #ReceiveTask conditions to ba add
        if self.__class__.__name__=='ReceiveTask':
            residual_args(slf.__init__, **kwargs)
Example #2
0
 def __init__(self, id, name, inMessageRef, **kwargs):
     '''
     name:str
         The descriptive name of the element.
         
     inMessageRef:Message
         This attribute specifies the input Message of the Operation.
         An Operation has exactly one input Message.
     
     outMessageRef:Message
         This attribute specifies the output Message of the Operation.
         An Operation has at most one input Message.
         
     errorRef:Error list
         This attribute specifies errors that the Operation may return.
         An Operation MAY refer to zero or more Error elements.
         
     implementationRef:Element
         This attribute allows to reference a concrete artifact in the underlying implementation
         technology representing that operation, such as a WSDL operation.
     '''
     super(Operation,self).__init__(id, **kwargs)
     self.name = name
     self.inMessageRef = inMessageRef
     self.outMessageRef = kwargs.pop('outMessageRef', None)
     self.errorRef = kwargs.pop('errorRef', [])
     self.implementationRef = kwargs.pop('implementationRef', None)
     
     if self.__class__.__name__=='Operation':
         residual_args(self.__init__, **kwargs)
Example #3
0
 def __init__(self, id, sourceRef, targetRef, **kwargs):
     '''
     sourceRef:FlowNode
         The FlowNode that the Sequence Flow is connecting from.
         For a Process: Of the types of FlowNode, only Activities, Gateways, and Events can be the source. However, Activities that are Event Sub-Processes are not allowed to be a source.
         For a Choreography: Of the types of FlowNode, only Choreography Activities, Gateways, and Events can be the source.
         
     targetRef:FlowNode
         The FlowNode that the Sequence Flow is connecting to.
         For a Process: Of the types of FlowNode, only Activities, Gateways, and Events can be the target. However, Activities that are Event Sub-Processes are not allowed to be a target.
         For a Choreography: Of the types of FlowNode, only Choreography Activities, Gateways, and Events can be the target.
         
     conditionExpression:Expression
         An optional boolean Expression that acts as a gating condition.
         A token will only be placed on this Sequence Flow if this conditionExpression evaluates to True.
         
     isImmediate:bool
         An optional boolean value specifying whether Activities or Choreography Activities not in the model containing the Sequence Flow
         can occur between the elements connected by the Sequence Flow.
         If the value is true, they MAY NOT occur.
         If the value is false, they MAY occur.
         Also see the isClosed attribute on Process, Choreography, and Collaboration.
         When the attribute has no value, the default semantics depends on the kind of model containing Sequence Flows:
             For non-executable Processes (public Processes and non-executable private Processes) and Choreographies no value has the same semantics as if the value were False.
             For an executable Processes no value has the same semantics as if the value were True.
             For executable Processes, the attribute MUST NOT be false.
     '''
     super(SequenceFlow, self).__init__(id, **kwargs)
     self.sourceRef = sourceRef
     self.targetRef = targetRef
     self.conditionExpression = kwargs.pop('conditionExpression', None)
     self.isImmediate = kwargs.pop('isImmediate', None)
     
     if self.__class__.__init__=='conditionExpression':
         residual_args(self.__init__, **kwargs)
Example #4
0
    def __init__(self, id, name, inMessageRef, **kwargs):
        '''
        name:str
            The descriptive name of the element.
            
        inMessageRef:Message
            This attribute specifies the input Message of the Operation.
            An Operation has exactly one input Message.
        
        outMessageRef:Message
            This attribute specifies the output Message of the Operation.
            An Operation has at most one input Message.
            
        errorRef:Error list
            This attribute specifies errors that the Operation may return.
            An Operation MAY refer to zero or more Error elements.
            
        implementationRef:Element
            This attribute allows to reference a concrete artifact in the underlying implementation
            technology representing that operation, such as a WSDL operation.
        '''
        super(Operation, self).__init__(id, **kwargs)
        self.name = name
        self.inMessageRef = inMessageRef
        self.outMessageRef = kwargs.pop('outMessageRef', None)
        self.errorRef = kwargs.pop('errorRef', [])
        self.implementationRef = kwargs.pop('implementationRef', None)

        if self.__class__.__name__ == 'Operation':
            residual_args(self.__init__, **kwargs)
Example #5
0
 def __init__(self, id, itemKind='Information', isCollection=False, **kwargs):
     '''
     itemKind:ItemKind enum (default='Information') {'Information'|'Physical'}
         This defines the nature of the Item. Possible values are physical or information.
     
     isCollection:bool (default=False)
         Setting this flag to true indicates that the actual data type is a collection.
     
     structureRef: Element
         The concrete data structure to be used.
         
     import:Import
         Identifies the location of the data structure and its format.
         If the importType attribute is left unspecified, the typeLanguage specified in
         the Definitions that contains this ItemDefinition is assumed.
     '''
     super(ItemDefinition,self).__init__(id, **kwargs)
     if itemKind in ItemKind:
         self.itemKind = itemKind
     else:
         raise Exception #tbd
     self.isCollection = isCollection
     self.structureRef = kwargs.pop('structureRef',None)
     #self.import is not valid in python, use of import_ instead
     self.import_ = kwargs.pop('import',None)
     
     if self.__class__.__name__=='ItemDefinition':
         residual_args(self.__init__, **kwargs)
Example #6
0
    def __init__(self, id , name, escalationCode, **kwargs):
        '''
        name:str
            The descriptive name of the Escalation.
            
        escalationCode:str
            For an End Event:
                If the Result is an Escalation, then the escalationCode
                MUST be supplied (if the processType attribute of the Process
                is set to executable).
                This "throws" the Escalation.
            For an Intermediate Event within normal flow:
                If the trigger is an Escalation, then the escalationCode
                MUST be entered (if the processType attribute of the Process is
                set to executable).
                This "throws" the Escalation.
            For an Intermediate Event attached to the boundary of an Activity:
                If the trigger is an Escalation, then the escalationCode MAY
                be entered. This Event "catches" the Escalation. If there is no
                escalationCode, then any Escalation SHALL trigger the
                Event. If there is an escalationCode, then only an Escalation
                that matches the escalationCode SHALL trigger the
                Event.

        structureRef:ItemDefinition
            An ItemDefinition is used to define the "payload" of the Escalation.
        '''
        self.name = name
        self.escalationCode = escalationCode
        self.structureRef = kwargs.pop('structureRef', None)
        
        if self.__class__.__name__=='Escalation':
            residual_args(self.__init__, **kwargs)
Example #7
0
    def __init__(self, id, sourceRef, targetRef, **kwargs):
        '''
        sourceRef:FlowNode
            The FlowNode that the Sequence Flow is connecting from.
            For a Process: Of the types of FlowNode, only Activities, Gateways, and Events can be the source. However, Activities that are Event Sub-Processes are not allowed to be a source.
            For a Choreography: Of the types of FlowNode, only Choreography Activities, Gateways, and Events can be the source.
            
        targetRef:FlowNode
            The FlowNode that the Sequence Flow is connecting to.
            For a Process: Of the types of FlowNode, only Activities, Gateways, and Events can be the target. However, Activities that are Event Sub-Processes are not allowed to be a target.
            For a Choreography: Of the types of FlowNode, only Choreography Activities, Gateways, and Events can be the target.
            
        conditionExpression:Expression
            An optional boolean Expression that acts as a gating condition.
            A token will only be placed on this Sequence Flow if this conditionExpression evaluates to True.
            
        isImmediate:bool
            An optional boolean value specifying whether Activities or Choreography Activities not in the model containing the Sequence Flow
            can occur between the elements connected by the Sequence Flow.
            If the value is true, they MAY NOT occur.
            If the value is false, they MAY occur.
            Also see the isClosed attribute on Process, Choreography, and Collaboration.
            When the attribute has no value, the default semantics depends on the kind of model containing Sequence Flows:
                For non-executable Processes (public Processes and non-executable private Processes) and Choreographies no value has the same semantics as if the value were False.
                For an executable Processes no value has the same semantics as if the value were True.
                For executable Processes, the attribute MUST NOT be false.
        '''
        super(SequenceFlow, self).__init__(id, **kwargs)
        self.sourceRef = sourceRef
        self.targetRef = targetRef
        self.conditionExpression = kwargs.pop('conditionExpression', None)
        self.isImmediate = kwargs.pop('isImmediate', None)

        if self.__class__.__init__ == 'conditionExpression':
            residual_args(self.__init__, **kwargs)
Example #8
0
    def __init__(self,
                 id,
                 itemKind='Information',
                 isCollection=False,
                 **kwargs):
        '''
        itemKind:ItemKind enum (default='Information') {'Information'|'Physical'}
            This defines the nature of the Item. Possible values are physical or information.
        
        isCollection:bool (default=False)
            Setting this flag to true indicates that the actual data type is a collection.
        
        structureRef: Element
            The concrete data structure to be used.
            
        import:Import
            Identifies the location of the data structure and its format.
            If the importType attribute is left unspecified, the typeLanguage specified in
            the Definitions that contains this ItemDefinition is assumed.
        '''
        super(ItemDefinition, self).__init__(id, **kwargs)
        if itemKind in ItemKind:
            self.itemKind = itemKind
        else:
            raise Exception  #tbd
        self.isCollection = isCollection
        self.structureRef = kwargs.pop('structureRef', None)
        #self.import is not valid in python, use of import_ instead
        self.import_ = kwargs.pop('import', None)

        if self.__class__.__name__ == 'ItemDefinition':
            residual_args(self.__init__, **kwargs)
Example #9
0
    def __init__(self, id, name, escalationCode, **kwargs):
        '''
        name:str
            The descriptive name of the Escalation.
            
        escalationCode:str
            For an End Event:
                If the Result is an Escalation, then the escalationCode
                MUST be supplied (if the processType attribute of the Process
                is set to executable).
                This "throws" the Escalation.
            For an Intermediate Event within normal flow:
                If the trigger is an Escalation, then the escalationCode
                MUST be entered (if the processType attribute of the Process is
                set to executable).
                This "throws" the Escalation.
            For an Intermediate Event attached to the boundary of an Activity:
                If the trigger is an Escalation, then the escalationCode MAY
                be entered. This Event "catches" the Escalation. If there is no
                escalationCode, then any Escalation SHALL trigger the
                Event. If there is an escalationCode, then only an Escalation
                that matches the escalationCode SHALL trigger the
                Event.

        structureRef:ItemDefinition
            An ItemDefinition is used to define the "payload" of the Escalation.
        '''
        self.name = name
        self.escalationCode = escalationCode
        self.structureRef = kwargs.pop('structureRef', None)

        if self.__class__.__name__ == 'Escalation':
            residual_args(self.__init__, **kwargs)
Example #10
0
    def __init__(self,
                 id,
                 sourceRef,
                 targetRef,
                 associationDirection='None',
                 **kwargs):
        '''
        sourceRef:BaseElement
            The BaseElement that the Association is connecting from.
        
        targetRef:BaseElement
            The BaseElement that the Association is connecting to.
            
        associationDirection:AssociationDirection enum (default='None') {'None'|'One'|'Both'}
            associationDirection is an attribute that defines whether or not the Association shows any directionality with an arrowhead.
            A value of One means that the arrowhead SHALL be at the Target Object.
            A value of Both means that there SHALL be an arrowhead at both ends of the Association line.
        '''
        super(Association, self).__init__(id, **kwargs)
        self.sourceRef = sourceRef
        self.targetRef = targetRef
        if associationDirection in AssociationDirection:
            self.associationDirection = associationDirection
        else:
            raise Exception  #to be precised

        if self.__class__.__name__ == 'Association':
            residual_args(self.__init__, **kwargs)
Example #11
0
    def __init__(self, id, **kwargs):
        '''
        name:str
        '''
        super(CallableElement, self).__init__(id, **kwargs)
        self.name = kwargs.pop('name', None)

        if self.__class__.__name__ == 'CallableElement':
            residual_args(self.__init__, **kwargs)
Example #12
0
 def __init__(self, id, **kwargs):
     '''
     triggeredByEvent:bool (default=False)
     '''
     super(SubProcess, self).__init__(id, **kwargs) #comment ça se comporte en cas d'heritage multiple
     self.triggeredByEvent = kwargs.pop('triggeredByEvent', False)
     
     if self.__class__.__name__=='SubProcess':
         residual_args(self.__init__, **kwarg)
Example #13
0
 def __init__(self, id, **kwargs):
     '''
     name:str
     '''
     super(CallableElement, self).__init__(id, **kwargs)
     self.name = kwargs.pop('name', None)
     
     if self.__class__.__name__=='CallableElement':
         residual_args(self.__init__, **kwargs)
Example #14
0
 def __init__(self, id, **kwargs):
     '''
     calledElementRef:???
     '''
     super(CallActivity, self).__init__(id, **kwargs)
     self.calledElementRef = kwargs.pop('calledElementRef', None) #?
     
     if self.__class__.__name__=='CallActivity':
         residual_args(self.__init__, **kwargs)
Example #15
0
 def __init__(self, id, name, targetNamespace, **kwargs):
     '''
     name:str
         The name of the Definition.
         
     targetNamespace:str
         This attribute identifies the namespace associated with the Definition and follows the convention established by XML Schema.
     
     expressionLanguage:str (default='http://www.w3.org/1999/XPath')
         This attribute identifies the formal Expression language used in Expressions within the elements of this Definition.
         This value MAY be overridden on each individual formal Expression.
         The language MUST be specified in a URI format.
     
     typeLanguage:str (default='http://www.w3.org/2001/XMLSchema')
         This attribute identifies the type system used by the elements of this Definition.
         This value can be overridden on each individual ItemDefinition.
         The language MUST be specified in a URI format.
     
     rootElements:RootElement list
         This attribute lists the root elements that are at the root of this Definitions.
         These elements can be referenced within this Definitions and are visible to other Definitions.
    
     diagrams:BPMNDiagram list
         This attribute lists the BPMNDiagrams that are contained within this Definitions.
     
     imports:Import list
         This attribute is used to import externally defined elements and make them available for use by elements within this Definitions.
     
     extentions:Extension list
         This attribute identifies extensions beyond the attributes and model associations in the base BPMN specification.
     
     relationships:Relationship list
         This attribute enables the extension and integration of BPMN models into larger system/development Processes.
     
     exporter:str
         This attribute identifies the tool that is exporting the bpmn model file.
     
     exporterVersion:str
         This attribute identifies the version of the tool that is exporting the bpmn model file.
     '''
     super(Definitions, self).__init__(id, **kwargs)
     
     self.name = name
     self.targetNamespace = targetNamespace
     
     self.expressionLanguage = kwargs.pop(expressionLanguage,'http://www.w3/org/1999/XPath')
     self.typeLanguage = kwargs.pop('typeLanguage','http://www.w3.org/2001/XMLSchema')
     self.rootElements = kwargs.pop('rootElements',[])
     self.diagrams = kwargs.pop('diagrams',[])
     self.imports = kwargs.pop('imports',[])
     self.extentions = kwargs.pop('extentions',[])
     self.relationships = kwargs.pop('relationships',[])
     
     self.exporter = kwargs.pop('exporter',None)
     self.exporterVersion = kwargs.pop('exporterVersion',None)
     if self.__class__.__name__ == 'Definitions':
         residual_args(self.__init__, **kwargs)
Example #16
0
 def __init__(self, id, expression, **kwargs):
     '''
     expression:Expression
         The element ResourceAssignmentExpression MUST contain an Expression which is used
         at runtime to assign resource(s) to a ResourceRole element.
     '''
     super(ResourceAssignmentExpression, self).__init__(id, **kwargs)
     self.expression = expression
     
     if self.__class__.__name__=='ResourceAssignmentExpression':
         residual_args(self.__init__, **kwargs)
Example #17
0
 def __init__(self, id, **kwargs):
     '''
     categoryValueRef:CategoryValue
         The categoryValueRef attribute specifies the CategoryValue that the Group represents.
         The name of the Category and the value of the CategoryValue separated by delineator "." provides the label for the Group.
         The graphical elements within the boundaries of the Group will be assigned the CategoryValue.
     '''
     super(Group, self).__init__(id, **kwargs)
     self.categoryValueRef = kwargs.pop('categoryValueRef', None)
     if self.__class__.__name__ == 'Group':
         residual_args(self.__init__, **kwargs)
Example #18
0
 def __init__(self, id, **kwargs):
     '''
     categoryValueRef:CategoryValue
         The categoryValueRef attribute specifies the CategoryValue that the Group represents.
         The name of the Category and the value of the CategoryValue separated by delineator "." provides the label for the Group.
         The graphical elements within the boundaries of the Group will be assigned the CategoryValue.
     '''
     super(Group,self).__init__(id, **kwargs)
     self.categoryValueRef = kwargs.pop('categoryValueRef', None)
     if self.__class__.__name__=='Group':
         residual_args(self.__init__, **kwargs)
Example #19
0
 def __init__(self, id, implementation='##unspecified', **kwargs):
     '''
     implementation:str (default='##unspecified')
         This attribute specifies the technology that will be used to implement the Business Rule Task.
         Valid values are "##unspecified" for leaving the implementation technology open, "##WebService"
         for the Web service technology or a URI identifying any other technology or coordination protocol.
     '''
     super(BusinessRuleTask, self).__init__(id, **kwargs)
     self.implementation = implementation
     
     if self.__class__.__name__=='BusinessRuleTask':
         residual_args(self.__init__, **kwargs)
Example #20
0
 def __init__(self, id, parameterRef, expression, **kwargs):
     '''
     parameterRef:ResourceParameter
         Reference to the parameter defined by the Resource.
     expression:Expression
         The Expression that evaluates the value used to bind the ResourceParameter.
     '''
     super(ResourceParameterBindings, self).__init__(id, **kwargs)
     self.parameterRef = parameterRef
     self.expression = expression
     
     if self.__class__.__name__=='ResourceParameterBindings':
         residual_args(self.__init__, **kwargs)
Example #21
0
 def __init__(self, name, **kwargs):
     '''
     name:str
         The name of the extension. This is used as a namespace to uniquely identify the extension content.
     
     extensionAttributeDefinitions:ExtensionAttributeDefinition list
         The specific attributes that make up the extension.
     '''
     super(ExtensionDefinition,self).__init__()
     self.name = name
     self.extensionAttributeDefinitions = kwargs.pop('extentionAttributeDefinitions',[])
     
     if self.__class__.__name__ == 'ExtensionDefinition':
         residual_args(self.__init__, **kwargs)
Example #22
0
 def __init__(self, id, **kwargs):
     '''
     text:str
         This attribute is used to capture the text descriptions of a BPMN element.
         
     textFormat:str (default='text/plain')
         This attribute identifies the format of the text.
         It MUST follow the mime-type format.
     '''
     super(Documentation,self).__init__(id, **kwargs)
     self.text = kwargs.pop('text','')
     self.textFormat = kwargs.pop('textFormat','text/plain')
     if self.__class__.__name__ == 'Documentation':
         residual_args(self.__init__, **kwargs)
Example #23
0
 def __init__(self, id, name, **kwargs):
     '''
     name:str
         Name is a text description of the Message.
         
     itemRef:ItemDefinition
         An ItemDefinition is used to define the "payload" of the Message.
     '''
     super(Message, self).__init__(id, **kwargs)
     self.name = name
     self.itemRef = kwargs.pop('itemRef',None)
     
     if self.__class__.__name__=='Message':
         residual_args(self.__init__, **kwargs)
Example #24
0
 def __init__(self, id, dataPath, correlationPropertyRef, **kwargs):
     '''
     dataPath:FormalExpression
         The FormalExpression that defines the extraction rule atop the Process context.
         
     correlationPropertyRef:CorrelationProperty
         The specific CorrelationProperty, this CorrelationPropertyBinding refers to.
     '''
     super(CorrelationPropertyBinding,self).__init__(id, **kwargs)
     self.dataPath = dataPath
     self.correlationPropertyRef = correlationPropertyRef
     
     if self.__class__.__name__=='CorrelationPropertyBinding':
         residual_args(self.__init__, **kwargs)
Example #25
0
    def __init__(self, id, dataPath, correlationPropertyRef, **kwargs):
        '''
        dataPath:FormalExpression
            The FormalExpression that defines the extraction rule atop the Process context.
            
        correlationPropertyRef:CorrelationProperty
            The specific CorrelationProperty, this CorrelationPropertyBinding refers to.
        '''
        super(CorrelationPropertyBinding, self).__init__(id, **kwargs)
        self.dataPath = dataPath
        self.correlationPropertyRef = correlationPropertyRef

        if self.__class__.__name__ == 'CorrelationPropertyBinding':
            residual_args(self.__init__, **kwargs)
Example #26
0
 def __init__(self,id, name, **kwargs):
     '''
     name:str
         Name is a text description of the PartnerRole.
         
     participantRef:Participant list
         Specifies how the PartnerRole participates in Collaborations and Choreographies.
     '''
     super(PartnerRole,self).__init__(id, **kwargs)
     self.name = name
     self.participantRef = kwargs.pop('participantRef',[])
     
     if self.__class__.__name__=='PartnerRole':
         residual_args(self.__init__, **kwargs)
Example #27
0
 def __init__(self, id, name, **kwargs):
     '''
     name:str
         The descriptive name of the element.
         
     categoryValue: CategoryValue list
         The categoryValue attribute specifies one or more values of the Category.
     '''
     super(Category, self).__init__(id, **kwargs)
     self.name = name
     self.categoryValue = kwargs.pop('categoryValue',[])
     
     if self.__class__.__name__=='Category':
         residual_args(self.__init__, **kwags)
Example #28
0
 def __init__(self, id, name, **kwargs):
     '''
     name:str
         This attribute specifies the name of the Resource.
     
     resourceParameters:ResourceParameter list
         This model association specifies the definition of the parameters needed at runtime to resolve the Resource.
     '''
     super(Resource, self).__init__(id, **kwargs)
     self.name = name
     self.resourceParameters = kwargs.pop('resourceParameters',[])
     
     if self.__class__.__name__=='Resource':
         residual_args(self.__init__, **kwargs)
Example #29
0
    def __init__(self, id, **kwargs):
        '''
        name:str
            Specifies the name of the CorrelationKey.
            
        correlationPropertyRef:CorrelationProperty list
            The CorrelationProperties, representing the partial keys of this CorrelationKey.
        '''
        super(CorrelationKey, self).__init__(id, **kwargs)
        self.name = kwargs.pop('name', None)
        self.correlationPropertyRef = kwargs.pop('correlationPropertyRef', [])

        if self.__class__.__name__ == 'CorrelationKey':
            residual_args(self.__init__, **kwargs)
Example #30
0
    def __init__(self, id, name, **kwargs):
        '''
        name:str
            This attribute specifies the name of the Resource.
        
        resourceParameters:ResourceParameter list
            This model association specifies the definition of the parameters needed at runtime to resolve the Resource.
        '''
        super(Resource, self).__init__(id, **kwargs)
        self.name = name
        self.resourceParameters = kwargs.pop('resourceParameters', [])

        if self.__class__.__name__ == 'Resource':
            residual_args(self.__init__, **kwargs)
Example #31
0
 def __init__(self, id, **kwargs):
     '''
     text:str
         This attribute is used to capture the text descriptions of a BPMN element.
         
     textFormat:str (default='text/plain')
         This attribute identifies the format of the text.
         It MUST follow the mime-type format.
     '''
     super(Documentation, self).__init__(id, **kwargs)
     self.text = kwargs.pop('text', '')
     self.textFormat = kwargs.pop('textFormat', 'text/plain')
     if self.__class__.__name__ == 'Documentation':
         residual_args(self.__init__, **kwargs)
Example #32
0
    def __init__(self, id, name, **kwargs):
        '''
        name:str
            The descriptive name of the element.
            
        categoryValue: CategoryValue list
            The categoryValue attribute specifies one or more values of the Category.
        '''
        super(Category, self).__init__(id, **kwargs)
        self.name = name
        self.categoryValue = kwargs.pop('categoryValue', [])

        if self.__class__.__name__ == 'Category':
            residual_args(self.__init__, **kwags)
Example #33
0
    def __init__(self, id, name, **kwargs):
        '''
        name:str
            Name is a text description of the PartnerRole.
            
        participantRef:Participant list
            Specifies how the PartnerRole participates in Collaborations and Choreographies.
        '''
        super(PartnerRole, self).__init__(id, **kwargs)
        self.name = name
        self.participantRef = kwargs.pop('participantRef', [])

        if self.__class__.__name__ == 'PartnerRole':
            residual_args(self.__init__, **kwargs)
Example #34
0
 def __init__(self, id, correlationKeyRef, **kwargs):
     '''
     correlationKeyRef:CorrelationKey
         The CorrelationKey this CorrelationSubscription refers to.
         
     correlationPropertyBinding:CorrelationPropertyBinding list
         The bindings to specific CorrelationProperties and FormalExpressions (extraction rules atop the Process context).
     '''
     super(CorrelationSubscription,self).__init__(id, **kwargs)
     self.correlationKeyRef = correlationKeyRef
     self.correlationPropertyBinding = kwargs.pop('correlationPropertyBinding',[])
     
     if self.__class__.__name__=='CorrelationSubscription':
         residual_args(self.__init__, **kwargs)
Example #35
0
 def __init__(self, id, messagePath, messageRef, **kwargs):
     '''
     messagePath:FormalExpression
         The FormalExpression that defines how to extract a CorrelationProperty from the Message payload.
         
     messageRef:Message
         The specific Message the FormalExpression extracts the CorrelationProperty from.
     '''
     super(CorrelationPropertyRetrievalExpression,self).__init__(id, **kwargs)
     self.messagePath = messagePath
     self.messageRef = messageRef
     
     if self.__class__.__name__=='CorrelationPropertyRetrievalExpression':
         residual_args(self.__init__, **kwargs)
Example #36
0
 def __init__(self, id, **kwargs):
     '''
     name:str
         Specifies the name of the CorrelationKey.
         
     correlationPropertyRef:CorrelationProperty list
         The CorrelationProperties, representing the partial keys of this CorrelationKey.
     '''
     super(CorrelationKey,self).__init__(id, **kwargs)
     self.name = kwargs.pop('name',None)
     self.correlationPropertyRef = kwargs.pop('correlationPropertyRef',[])
     
     if self.__class__.__name__=='CorrelationKey':
         residual_args(self.__init__, **kwargs)
Example #37
0
    def __init__(self, id, name, **kwargs):
        '''
        name:str
            Name is a text description of the Message.
            
        itemRef:ItemDefinition
            An ItemDefinition is used to define the "payload" of the Message.
        '''
        super(Message, self).__init__(id, **kwargs)
        self.name = name
        self.itemRef = kwargs.pop('itemRef', None)

        if self.__class__.__name__ == 'Message':
            residual_args(self.__init__, **kwargs)
Example #38
0
    def __init__(self, id, **kwargs):
        '''
        incoming:SequenceFlow list
            This attribute identifies the incoming Sequence Flow of the FlowNode.
        
        outgoing:SequenceFlow list
            This attribute identifies the outgoing Sequence Flow of the FlowNode.
            This is an ordered collection.
        '''
        super(FlowNode, self).__init__(id, **kwargs)
        self.incoming = kwargs.pop('incoming', [])
        self.outgoing = kwargs.pop('outgoing', [])

        if self.__class__.__name__ == 'FlowNode':
            residual_args(self.__init__, **kwargs)
Example #39
0
 def __init__(self, id, **kwargs):
     '''
     incoming:SequenceFlow list
         This attribute identifies the incoming Sequence Flow of the FlowNode.
     
     outgoing:SequenceFlow list
         This attribute identifies the outgoing Sequence Flow of the FlowNode.
         This is an ordered collection.
     '''
     super(FlowNode, self).__init__(id, **kwargs)
     self.incoming = kwargs.pop('incoming',[])
     self.outgoing = kwargs.pop('outgoing',[])
     
     if self.__class__.__name__=='FlowNode':
         residual_args(self.__init__, **kwargs)
Example #40
0
 def __init__(self, mustUnderstand=False, **kwargs):
     '''
     musUnderstand:bool (default=False)
         This flag defines if the semantics defined by the extension definition and its
         attribute definition MUST be understood by the BPMN adopter in order to
         process the BPMN model correctly.
     
     definition:ExtensionDefinition
         Defines the content of the extension.
     '''
     super(Extension,self).__init__()
     self.mustUnderstand = mustUnderstand
     self.definition = kwargs.pop('definition',None)
     if self.__class__.__name__ == 'Extension':
         residual_args(self.__init__,**kwargs)
Example #41
0
    def __init__(self, name, **kwargs):
        '''
        name:str
            The name of the extension. This is used as a namespace to uniquely identify the extension content.
        
        extensionAttributeDefinitions:ExtensionAttributeDefinition list
            The specific attributes that make up the extension.
        '''
        super(ExtensionDefinition, self).__init__()
        self.name = name
        self.extensionAttributeDefinitions = kwargs.pop(
            'extentionAttributeDefinitions', [])

        if self.__class__.__name__ == 'ExtensionDefinition':
            residual_args(self.__init__, **kwargs)
Example #42
0
 def __init__(self, mustUnderstand=False, **kwargs):
     '''
     musUnderstand:bool (default=False)
         This flag defines if the semantics defined by the extension definition and its
         attribute definition MUST be understood by the BPMN adopter in order to
         process the BPMN model correctly.
     
     definition:ExtensionDefinition
         Defines the content of the extension.
     '''
     super(Extension, self).__init__()
     self.mustUnderstand = mustUnderstand
     self.definition = kwargs.pop('definition', None)
     if self.__class__.__name__ == 'Extension':
         residual_args(self.__init__, **kwargs)
Example #43
0
    def __init__(self, id, messagePath, messageRef, **kwargs):
        '''
        messagePath:FormalExpression
            The FormalExpression that defines how to extract a CorrelationProperty from the Message payload.
            
        messageRef:Message
            The specific Message the FormalExpression extracts the CorrelationProperty from.
        '''
        super(CorrelationPropertyRetrievalExpression,
              self).__init__(id, **kwargs)
        self.messagePath = messagePath
        self.messageRef = messageRef

        if self.__class__.__name__ == 'CorrelationPropertyRetrievalExpression':
            residual_args(self.__init__, **kwargs)
Example #44
0
    def __init__(self, id, correlationKeyRef, **kwargs):
        '''
        correlationKeyRef:CorrelationKey
            The CorrelationKey this CorrelationSubscription refers to.
            
        correlationPropertyBinding:CorrelationPropertyBinding list
            The bindings to specific CorrelationProperties and FormalExpressions (extraction rules atop the Process context).
        '''
        super(CorrelationSubscription, self).__init__(id, **kwargs)
        self.correlationKeyRef = correlationKeyRef
        self.correlationPropertyBinding = kwargs.pop(
            'correlationPropertyBinding', [])

        if self.__class__.__name__ == 'CorrelationSubscription':
            residual_args(self.__init__, **kwargs)
Example #45
0
    def __init__(self, id, innerMessageFlowRef, outerMessageFlowRef, **kwargs):
        '''
        innerMessageFlowRef:MessageFlow
            This attribute defines the Message Flow of the referenced element (e.g., a Choreography to be used in a Collaboration)
            that will be mapped to the parent element (e.g., the Collaboration).
        
        outerMessageFlowRef:MessageFlow
            This attribute defines the Message Flow of the parent element (e.g., a Collaboration references a Choreography) that will be
            mapped to the referenced element (e.g., the Choreography).
        '''
        super(MessageFlowAssociation, self).__init__(id, **kwargs)
        self.innerMessageFlowRef = innerMessageFlowRef
        self.outerMessageFlowRef = outerMessageFlowRef

        if self.__class__.__name__ == 'MessageFlowAssociation':
            residual_args(self.__init__, **kwargs)
Example #46
0
 def __init__(self, id, innerMessageFlowRef, outerMessageFlowRef, **kwargs):
     '''
     innerMessageFlowRef:MessageFlow
         This attribute defines the Message Flow of the referenced element (e.g., a Choreography to be used in a Collaboration)
         that will be mapped to the parent element (e.g., the Collaboration).
     
     outerMessageFlowRef:MessageFlow
         This attribute defines the Message Flow of the parent element (e.g., a Collaboration references a Choreography) that will be
         mapped to the referenced element (e.g., the Choreography).
     '''
     super(MessageFlowAssociation, self).__init__(id, **kwargs)
     self.innerMessageFlowRef = innerMessageFlowRef
     self.outerMessageFlowRef = outerMessageFlowRef
     
     if self.__class__.__name__=='MessageFlowAssociation':
         residual_args(self.__init__, **kwargs)
Example #47
0
 def __init__(self, id, **kwargs):
     '''
     triggeredByEvent:bool (default=False)
         A flag that identifies whether this Sub-Process is an Event Sub-Process.
             If false, then this Sub-Process is a normal Sub-Process. 
             If true, then this Sub-Process is an Event Sub-Process and is subject to additional constraints.
             
     artifacts:Artifact list
         This attribute provides the list of Artifacts that are contained within the Sub-Process.
     '''
     super(SubProcess, self).__init__(id, **kwargs)
     self.triggeredByEvent = kwargs.pop('triggeredByEvent',False)
     self.artifacts = kwargs.pop('artifacts',[])
     
     if self.__class__.__name__=='SubProcess':
         residual_args(self.__init__, **kwargs)
Example #48
0
 def __init__(self, id, gatewayDirection='Unspecified', **kwargs):
     '''
     gatewayDirection:GatewayDirection enum (default='Unspecified') {'Unspecified'|'Converging'|'Diverging'|'Mixed'}
         An attribute that adds constraints on how the Gateway MAY be used :
             Unspecified: There are no constraints. The Gateway MAY have any number of incoming and outgoing Sequence Flows.
             Converging: This Gateway MAY have multiple incoming Sequence Flows but MUST have no more than one outgoing Sequence Flow.
             Diverging: This Gateway MAY have multiple outgoing Sequence Flows but MUST have no more than one incoming Sequence Flow.
             Mixed: This Gateway contains multiple outgoing and multiple incoming Sequence Flows.
     '''
     super(Gateway,self).__init__(id, **kwargs)
     if gatewayDirection in GatewayDirection:
         self.gatewayDirection = gatewayDirection
     else:
         raise Exception #to be detailed
     if self.__calss__.__name__=='Gateway':
         residual_args(self.__init__, **kwargs)
Example #49
0
 def __init__(self, id, **kwargs):
     '''
     innerConversationNodeRef:ConversationNode
         This attribute defines the ConversationNodes of the referenced element (e.g., a Choreography to be used in a Collaboration)
         that will be mapped to the parent element (e.g., the Collaboration).
     
     outerConversationNodeRef:ConversationNode list
         This attribute defines the ConversationNodes of the parent element (e.g., a Collaboration references a Choreography)
         that will be mapped to the referenced element (e.g., the Choreography).
     '''
     super(ConversationAssociation, self).__init__(id, **kwargs)
     self.innerConversationNodeRef = kwargs.pop('innerConversationNodeRef', None)
     self.outerConversationNodeRef = kwargs.pop('outerConversationNodeRef', [])
     
     if self.__class__.__name__=='ConversationAssociation':
         residual_args(self.__init__, **kwargs)
Example #50
0
 def __init__(self, id, **kwargs):
     '''
     scriptFormat:str
         Defines the format of the script. This attribute value MUST be specified with a mime-type format.
         And it MUST be specified if a script is provided.
     
     script:str
         The modeler MAY include a script that can be run when the Task is performed (typicaly python in this particular implementation).
         If a script is not included, then the Task will act as the equivalent of an Abstract Task.
     '''
     super(ScriptTask, self).__init__(id, **kwargs)
     self.scriptFormat = kwargs.pop('scriptFormat', None)
     self.script = kwargs.pop('script', None)
     
     if self.__class__.__name__ == 'ScriptTask':
         residual_args(self.__init__, **kwargs)
Example #51
0
 def __init__(self, id, gatewayDirection='Unspecified', **kwargs):
     '''
     gatewayDirection:GatewayDirection enum (default='Unspecified') {'Unspecified'|'Converging'|'Diverging'|'Mixed'}
         An attribute that adds constraints on how the Gateway MAY be used :
             Unspecified: There are no constraints. The Gateway MAY have any number of incoming and outgoing Sequence Flows.
             Converging: This Gateway MAY have multiple incoming Sequence Flows but MUST have no more than one outgoing Sequence Flow.
             Diverging: This Gateway MAY have multiple outgoing Sequence Flows but MUST have no more than one incoming Sequence Flow.
             Mixed: This Gateway contains multiple outgoing and multiple incoming Sequence Flows.
     '''
     super(Gateway, self).__init__(id, **kwargs)
     if gatewayDirection in GatewayDirection:
         self.gatewayDirection = gatewayDirection
     else:
         raise Exception  #to be detailed
     if self.__calss__.__name__ == 'Gateway':
         residual_args(self.__init__, **kwargs)
Example #52
0
    def __init__(self, id, **kwargs):
        '''
        name:str
            Name is a text description of the Participant.
            The name of the Participant can be displayed directly or it can be substituted by the associated PartnerRole or PartnerEntity.
            Potentially, both the PartnerEntity name and PartnerRole name can be displayed for the Participant.

        processRef:Process
            The processRef attribute identifies the Process that the Participant uses in the Collaboration.
            The Process will be displayed within the Participant's Pool.
            
        partnerRoleRef:PartnerRole list
            The partnerRoleRef attribute identifies a PartnerRole that the Participant plays in the Collaboration.
            Both a PartnerRole and a PartnerEntity MAY be defined for the Participant.
            This attribute is derived from the participantRefs of PartnerRole.
            The partnerRoleRef attribute identifies a PartnerRole that the Participant plays in the Collaboration.
            Both a PartnerRole and a PartnerEntity MAY be defined for the Participant.
            This attribute is derived from the participantRefs of PartnerRole.
            
        partnerEntityRef:PartnerEntity list
            The partnerEntityRef attribute identifies a PartnerEntity that the Participant plays in the Collaboration.
            Both a PartnerRole and a PartnerEntity MAY be defined for the Participant.
            This attribute is derived from the participantRefs of PartnerEntity.
            
        interfaceRef:Interface list
            This association defines Interfaces that a Participant supports.
        
        participantMultiplicityRef:ParticipantMultiplicity
            The participantMultiplicityRef model association is used to define Participants that represent more than one
            instance of the Participant for a given interaction.
            
        endPointRefs:EndPoint list
            This attribute is used to specify the address (or endpoint reference) of concrete services
            realizing the Participant.
        '''
        super(Participant,self).__init__(id, **kwargs)
        self.name = kwargs.pop('name', None)
        self.processRef = kwargs.pop('processRef', None)
        self.partnerRoleRef = kwargs.pop('partnerRoleRef', [])
        self.partnerEntityRef = kwargs.pop('partnerEntityRef', [])
        self.interfaceRef = kwargs.pop('interfaceRef', [])
        self.participantMultiplicityRef = kwargs.pop('participantMultiplicityRef', None)
        self.endPointRefs = kwargs.pop('endPointRefs', [])
        
        if self.__class__.__name__=='Participant':
            residual_args(self.__init__, **kwargs)
Example #53
0
 def __init__(self, name, type, isReference=False, **kwargs):
     '''
     name:str
         The name of the extension attribute.
     
     type:str
         The type that is associated with the attribute.
     
     isReference:bool
         Indicates if the attribute value will be referenced or contained.
     '''
     super(ExtensionAttributeDefinition,self).__init__()
     self.name = name
     self.type = type
     self.isReference = isReference
     
     if self.__class__.__name__=='ExtensionAttributeDefinition':
         residual_args(self.__init__, **kwargs)
Example #54
0
    def __init__(self, id, participantRefs, **kwargs):
        '''
        calledCollaborationRef:Collaboratioin
            The element to be called, which MAY be either a Collaboration or a GlobalConversation.
            The called element MUST NOT be a Choreography or a GlobalChoreographyTask (which are subtypes of Collaboration)
            
        participantAssociations:ParticipantAssociation list
            This attribute provides a list of mappings from the Participants of a referenced GlobalConversation or Conversation to the
            Participants of the parent Conversation.

        //Note - The ConversationNode attribute messageFlowRef doesn't apply to Call Conversations.
        '''
        super(CallConversation, self).__init__(id, participantRefs, messageFlowRef=[], **kwargs)
        self.calledCollaborationRef = kwargs.pop('calledCollaborationRef', None)
        self.participantAssociations = kwargs.pop('participantAssociations', [])
        
        if self.__class__.__name__=='CallConversation':
            residual_args(self.__init__, **kwargs)
Example #55
0
    def __init__(self, id, **kwargs):
        '''
        flowElements:FlowElement list
            This association specifies the particular flow elements contained in a FlowElementContainer.
            Flow elements are Events, Gateways, SequenceFlows, Activities, Data Objects, Data Associations, and ChoreographyActivities.
            Note that:
                Choreography Activities MUST NOT be included as a flowElement for a Process.
                Activities, Data Associations, and Data Objects MUST NOT be included as a flowElement for a Choreography.

        laneSets:LaneSet list
            This attribute defines the list of LaneSets used in the FlowElementsContainer LaneSets are not used for Choreographies or Sub-Choreographies.
        '''
        super(FlowElementsContainer,self).__init__(id, **kwargs)
        self.flowElements = kwargs.pop('flowElements',[])
        self.laneSets = kwargs.pop('laneSets',[])
        
        if self.__class__.__name__=='FlowElementsContainer':
            residual_args(self.__init__, **kwargs) 
Example #56
0
 def __init__(self, id, name, type, isRequired, **kwargs):
     '''
     name:str
         Specifies the name of the query parameter.
         
     type:ItemDefinition
         Specifies the type of the query parameter.
         
     isRequired:bool
         Specifies, if a parameter is optional or mandatory.
     '''
     super(ResourceParameter, self).__init__(id, **kwargs)
     self.name = name
     self.type = type
     self.isRequired = isRequired
     
     if self.__class__.__name__=='ResourceParameter':
         residual_args(self.__init__, **kwargs)
Example #57
0
 def __init__(self,extensionAttributeDefinition, **kwargs):
     '''
     extensionAttributeDefinition:ExtensionAttributeDefinition
         Defines the extension attribute for which this value is being provided.
     
     value:Element
         The contained attribute value, used when the associated ExtensionAttributeDefinition.isReference is false.
         The type of this Element object MUST conform to the type specified in the associated ExtensionAttributeDefinition.
     
     valueRef:Element
         The referenced attribute value, used when the associated ExtensionAttributeDefinition.isReference is true.
         The type of this Element MUST conform to the type specified in the associated ExtensionAttributeDefinition.
     '''
     super(ExtensionAttributeValue,self).__init__()
     self.extensionAttributeDefinition = extensionAttributeDefinition
     self.value = kwargs.pop('value',None)
     self.valueRef = kwargs.pop('valueRef',None)
     
     if self.__class__.__name__=='ExtensionAttributeValue':
         residual_args(self.__init__,**kwargs)
Example #58
0
 def __init__(self, id, body, evaluatesToTypeRef, **kwargs):
     '''
     body:Element
         The body of the Expression.
         
     evaluatesToTypeRef:ItemDefinition
         The type of object that this Expression returns when evaluated.
         For example, conditional Expressions evaluate to a boolean.
     
     language:str
         Overrides the Expression language specified in the Definitions.
         The language MUST be specified in a URI format.
     '''
     super(FormalExpression,self).__init__(self, id, **kwargs)
     self.body = body
     self.evaluatesToTypeRef = evaluatesToTypeRef
     self.language = kwargs.pop('language', None)
     
     if self.__class__.__name__=='FormalExpression':
         residual_args(self.__init__, **kwargs)
Example #59
0
 def __init__(self, id , implementation='##unspecified', **kwargs):
     '''
     implementation:str (default='##unspecified')
         This attribute specifies the technology that will be used to implement the User Task.
         Valid values are "##unspecified" for leaving the implementation technology open, "##WebService"
         for the Web service technology or a URI identifying any other technology or coordination protocol.
             
     renderings:Rendering list
         This attributes acts as a hook which allows BPMN adopters to specify task rendering attributes
         by using the BPMN Extension mechanism.
     '''
     super(UserTask, self).__init__(id, **kwargs)
     self.implementation = implementation
     self.renderings = kwargs.pop('renderings', [])
     
     #instances attributes
     self.actualOwner = None
     self.taskPriority = None
     
     if self.__class__.__name__ == 'UserTask':
         residual_args(self.__init__, **kwargs)