public boolean shouldCreateANewInstance(final SMultiInstanceLoopCharacteristics loopCharacteristics, final int numberOfInstances, final SMultiInstanceActivityInstance miActivityInstance) throws SDataInstanceException { if (loopCharacteristics.getLoopCardinality() != null) { return miActivityInstance.getLoopCardinality() > numberOfInstances; } List<?> possibleValues; try { //FIXME find if a business data is used if instead of try catch final SMultiRefBusinessDataInstance multiRef = (SMultiRefBusinessDataInstance) refBusinessDataService.getRefBusinessDataInstance( loopCharacteristics.getLoopDataInputRef(), miActivityInstance.getParentProcessInstanceId()); possibleValues = multiRef.getDataIds(); } catch (final SBonitaException sbe) { final SDataInstance dataInstance = getDataInstanceService().getDataInstance(loopCharacteristics.getLoopDataInputRef(), miActivityInstance.getId(), DataInstanceContainer.ACTIVITY_INSTANCE.name(), parentContainerResolver); possibleValues = (List<?>) dataInstance.getValue(); } return possibleValues != null && numberOfInstances < possibleValues.size(); }
public boolean shouldCreateANewInstance(final SMultiInstanceLoopCharacteristics loopCharacteristics, final int numberOfInstances, final SMultiInstanceActivityInstance miActivityInstance) throws SDataInstanceException { if (loopCharacteristics.getLoopCardinality() != null) { return miActivityInstance.getLoopCardinality() > numberOfInstances; } List<?> possibleValues; try { //FIXME find if a business data is used if instead of try catch final SMultiRefBusinessDataInstance multiRef = (SMultiRefBusinessDataInstance) refBusinessDataService.getRefBusinessDataInstance( loopCharacteristics.getLoopDataInputRef(), miActivityInstance.getParentProcessInstanceId()); possibleValues = multiRef.getDataIds(); } catch (final SBonitaException sbe) { final SDataInstance dataInstance = getDataInstanceService().getDataInstance(loopCharacteristics.getLoopDataInputRef(), miActivityInstance.getId(), DataInstanceContainer.ACTIVITY_INSTANCE.name(), parentContainerResolver); possibleValues = (List<?>) dataInstance.getValue(); } return possibleValues != null && numberOfInstances < possibleValues.size(); }
if (loopCharacteristics instanceof SMultiInstanceLoopCharacteristics) { final SMultiInstanceLoopCharacteristics miLoop = (SMultiInstanceLoopCharacteristics) loopCharacteristics; final SExpression loopCardinality = miLoop.getLoopCardinality(); int numberOfInstanceMax = -1; if (loopCardinality != null) {
if (loopCharacteristics instanceof SMultiInstanceLoopCharacteristics) { final SMultiInstanceLoopCharacteristics miLoop = (SMultiInstanceLoopCharacteristics) loopCharacteristics; final SExpression loopCardinality = miLoop.getLoopCardinality(); int numberOfInstanceMax = -1; if (loopCardinality != null) {