def get_usecases(self, constraint_id=-1, simplify=True): """ :rtype: dict[str,UseCase] :return :raise ARMHTTPError: """ try: usecases = self.db_proxy.getUseCases(constraint_id) if simplify: for key, value in list(usecases.items()): uc = self.simplify(value) uc.theReferenceContributions = [] contribs = self.db_proxy.getUseCaseContributions(uc.name()) for rsName in contribs: rrc, rsType = contribs[rsName] frc = CharacteristicReferenceContribution( rrc.meansEnd(), rrc.contribution()) uc.theReferenceContributions.append( UseCaseContributionModel(rsName, frc)) usecases[key] = uc return usecases except DatabaseProxyException as ex: self.close() raise ARMHTTPError(ex) except ARMException as ex: self.close() raise ARMHTTPError(ex)
def get_usecase_by_name(self, name, simplify=True): """ :rtype: UseCase :raise ObjectNotFoundHTTPError: """ try: ucId = self.db_proxy.getDimensionId(name, 'usecase') ucs = self.db_proxy.getUseCases(ucId) except DatabaseProxyException as ex: self.close() raise ARMHTTPError(ex) except ARMException as ex: self.close() raise ARMHTTPError(ex) if ucs is not None: found_uc = ucs.get(name) if found_uc is None: self.close() raise ObjectNotFoundHTTPError(obj='The provided usecase name') found_uc = self.simplify(found_uc) found_uc.theReferenceContributions = [] contribs = self.db_proxy.getUseCaseContributions(found_uc.name()) for rsName in contribs: rrc, rsType = contribs[rsName] frc = CharacteristicReferenceContribution(rrc.meansEnd(), rrc.contribution()) found_uc.theReferenceContributions.append( UseCaseContributionModel(rsName, frc)) return found_uc
def prepare_new_usecase(self): new_usecase_props = [ UseCaseEnvironmentProperties( environmentName=self.existing_environment_name, preCond=self.existing_precond, steps=self.existing_steps, postCond=self.existing_postcond) ] new_usecase = UseCase(ucId=-1, ucName='New usecase', ucAuth='NU', ucCode='New objective', ucActors=['Researcher'], ucDesc='New Author', tags=[], cProps=[]) new_usecase.theReferenceContributions = [ UseCaseContributionModel('Security delegated', { 'theMeansEnd': 'means', 'theContribution': 'SomePositive' }) ] new_usecase.theEnvironmentProperties = new_usecase_props new_usecase.theEnvironmentDictionary = {} delattr(new_usecase, 'theEnvironmentDictionary') return new_usecase