def addTriggerCount(self, value=None, validFor=None, result_request=None): if result_request is None: if self.checkApplicability("TriggerCount"): super().addTriggerCount(value, validFor) else: raise ValueError( 'ERROR: TriggerCount can be assigned only to startEvent element' ) else: utility.checkResultRequest(result_request) if result_request not in REQUEST['triggerCount']: raise ValueError( "ERROR: for TriggerCount result_request must be " + str(REQUEST['triggerCount'])) attributes = {'value': value, 'validFor': validFor} utility.filterNoneAttributes(attributes) if len(attributes) == 0 and self.checkResultRequestApplicability( 'triggerCount'): super().addInterTriggerCountResultRequest(result_request) elif len(attributes) > 0: raise ValueError( "ERROR: for ResultRequest insert only result_request parameter" ) else: raise ValueError( "ERROR: result_request can be insert only to " + str(REQUEST_APPLICABILITY['triggerCount']) + " element")
def addElapsedTime(self, result_request): utility.checkResultRequest(result_request) if result_request in REQUEST[ "Time"] and self.checkResultRequestApplicability("Time"): super().addElapsedTime(result_request) else: raise ValueError("ERROR: ElapsedTime requires ", REQUEST["Time"])
def addQueueLength(self, result_request): utility.checkResultRequest(result_request) if result_request in REQUEST[ "QueueLength"] and self.checkApplicability("Property"): super().addQueueLength(result_request) else: raise ValueError("ERROR: QueueLength requires ", REQUEST["QueueLength"])
def addValidationTime(self, value=None, timeUnit=None, validFor=None, nameDistribution=None, shape=None, scale=None, probability=None, trials=None, mean=None, k=None, standardDeviation=None, mode=None, min=None, max=None, discrete=None, points=None, enum_list=None, expression=None, result_request=None): if result_request is None: if self.checkApplicability("Time"): super().addValidationTime(value, timeUnit, validFor, nameDistribution, shape, scale, probability, trials, mean, k, standardDeviation, mode, min, max, discrete, points, enum_list, expression) else: raise ValueError( 'ERROR: Validation time can be assigned only to task element' ) else: utility.checkResultRequest(result_request) if result_request not in REQUEST['Time']: raise ValueError( "ERROR: for ValidationTime result_request must be " + str(REQUEST["Time"])) attributes = { 'value': value, 'timeUnit': timeUnit, 'validFor': validFor, 'enum_list': enum_list } utility.filterNoneAttributes(attributes) if len(attributes) == 0 and self.checkResultRequestApplicability( 'Time'): super().addValidationTimeResultRequest(result_request) elif len(attributes) > 0: raise ValueError( "ERROR: for ResultRequest insert only result_request parameter" ) else: raise ValueError( "ERROR: result_request can be insert only to " + str(REQUEST_APPLICABILITY['Time']) + " element")
def addQueueLength(self, resultRequest): self.checkPropertyParametersTag() if self.queueLengthPointer is None: self.queueLengthPointer=etree.SubElement(self.propertyPointer, utility.BPSIM + "QueueLength") result = etree.SubElement(self.queueLengthPointer, utility.BPSIM + "ResultRequest") utility.checkResultRequest(resultRequest) result.text=resultRequest utility.write_on_file(self.write, self.tree) if self.verbosity==0: print("INFO: QueueLength added ResultRequest: ", resultRequest)
def setQueueLength(self, resultRequest): if self.queueLengthPointer is None: raise ValueError("ERROR: QueueLength not exist") result = self.queueLengthPointer.findall("./"+ utility.BPSIM + 'ResultRequest') self.queueLengthPointer.remove(result[-1]) new_result = etree.SubElement(self.queueLengthPointer, utility.BPSIM + "ResultRequest") utility.checkResultRequest(resultRequest) new_result.text=resultRequest utility.write_on_file(self.write, self.tree) if self.verbosity==0: print("INFO: ResultRequest updated")
def setInterTriggerTimer(self, value=None, enum_list=None, timeUnit=None, validFor=None, nameDistribution=None, shape=None, scale=None, probability=None, trials=None, mean=None, k=None, standardDeviation=None, mode=None, min=None, max=None, discrete=None, points=None, result_request=None): if self.triggerTimePointer is None: raise ValueError("ERROR: TriggerTimer not exist") if value is None and nameDistribution is None and enum_list is None and result_request is None: raise ValueError( 'ERROR: To set InterTriggerTimer insert value or nameDistribution or enum_list or result_request' ) if nameDistribution is None and result_request is None: if self.typeValueTT == self.nameDistribution: self.triggerTimerAttrib = {} super().setParameterWithEnumList(self.typeValueTT, self.triggerTimePointer, self.triggerTimerAttrib, value, enum_list, timeUnit, validFor) newTriggerTimer = self.triggerTimePointer.findall("./" + utility.BPSIM + self.typeValueTT) if len(newTriggerTimer) > 0: self.triggerTimePointer.remove(newTriggerTimer[-1]) if value is None and nameDistribution is not None and enum_list is None and result_request is None: super().checkNameDistribution(nameDistribution) newTriggerTimerAttrib = super().filterDistributionAttributes( timeUnit, nameDistribution, shape, scale, probability, trials, mean, k, standardDeviation, mode, min, max, discrete, points, validFor) if nameDistribution == 'UserDistribution': super().createUserDistributionDataPoint( points, self.triggerTimePointer, discrete, timeUnit) else: new_parameter = etree.SubElement(self.triggerTimePointer, utility.BPSIM + nameDistribution, attrib=newTriggerTimerAttrib) elif result_request is not None: utility.checkResultRequest(result_request) if result_request == 'count': raise ValueError( "ERROR: result_request must be min, max, mean or sum") attributes = { 'value': value, 'timeUnit': timeUnit, 'validFor': validFor, 'nameDistribution': nameDistribution, 'shape': shape, 'scale': scale, 'probability': probability, 'trials': trials, 'mean': mean, 'k': k, 'standardDeviation': standardDeviation, 'mode': mode, 'min': min, 'max': max, 'discrete': discrete, 'points': points, 'enum_list': enum_list } utility.filterNoneAttributes(attributes) if len(attributes) == 0: self.addInterTriggerTimerResultRequest(result_request) else: raise ValueError("ERROR: insert only result_request parameter") else: raise ValueError( 'ERROR: if InterTriggerTimer is NumericParameter, FloatingParameter, DurationParameter add value, add nameDistribution otherwise' ) utility.write_on_file(self.write, self.tree) if self.verbosity == 0: print("INFO: InterTriggerTimer updated")