protected internal virtual MigrationInstructionValidationReportImpl validateInstruction(ValidatingMigrationInstruction instruction, ValidatingMigrationInstructions instructions, IList <MigrationInstructionValidator> migrationInstructionValidators) { MigrationInstructionValidationReportImpl validationReport = new MigrationInstructionValidationReportImpl(instruction.toMigrationInstruction()); foreach (MigrationInstructionValidator migrationInstructionValidator in migrationInstructionValidators) { migrationInstructionValidator.validate(instruction, instructions, validationReport); } return(validationReport); }
protected internal virtual MigrationInstructionValidationReportImpl ValidateInstruction( IValidatingMigrationInstruction instruction, ValidatingMigrationInstructions instructions, IList <IMigrationInstructionValidator> migrationInstructionValidators) { var validationReport = new MigrationInstructionValidationReportImpl(instruction.ToMigrationInstruction()); foreach (var migrationInstructionValidator in migrationInstructionValidators) { migrationInstructionValidator.Validate(instruction, instructions, validationReport); } return(validationReport); }
protected internal virtual ValidatingMigrationInstructions WrapMigrationInstructions( IMigrationPlan migrationPlan, ProcessDefinitionImpl sourceProcessDefinition, ProcessDefinitionImpl targetProcessDefinition, MigrationPlanValidationReportImpl planReport) { var validatingMigrationInstructions = new ValidatingMigrationInstructions(); foreach (var migrationInstruction in migrationPlan.Instructions) { var instructionReport = new MigrationInstructionValidationReportImpl(migrationInstruction); var sourceActivityId = migrationInstruction.SourceActivityId; var targetActivityId = migrationInstruction.TargetActivityId; if (!ReferenceEquals(sourceActivityId, null) && !ReferenceEquals(targetActivityId, null)) { IPvmActivity sourceActivity = sourceProcessDefinition.FindActivity(sourceActivityId); IPvmActivity targetActivity = targetProcessDefinition.FindActivity(migrationInstruction.TargetActivityId); if (sourceActivity != null && targetActivity != null) { validatingMigrationInstructions.AddInstruction(new ValidatingMigrationInstructionImpl(sourceActivity, targetActivity, migrationInstruction.UpdateEventTrigger)); } else { if (sourceActivity == null) { instructionReport.AddFailure("Source activity '" + sourceActivityId + "' does not exist"); } if (targetActivity == null) { instructionReport.AddFailure("Target activity '" + targetActivityId + "' does not exist"); } } } else { if (ReferenceEquals(sourceActivityId, null)) { instructionReport.AddFailure("Source activity id is null"); } if (ReferenceEquals(targetActivityId, null)) { instructionReport.AddFailure("Target activity id is null"); } } if (instructionReport.HasFailures()) { planReport.AddInstructionReport(instructionReport); } } return(validatingMigrationInstructions); }
protected internal virtual ValidatingMigrationInstructions wrapMigrationInstructions(MigrationPlan migrationPlan, ProcessDefinitionImpl sourceProcessDefinition, ProcessDefinitionImpl targetProcessDefinition, MigrationPlanValidationReportImpl planReport) { ValidatingMigrationInstructions validatingMigrationInstructions = new ValidatingMigrationInstructions(); foreach (MigrationInstruction migrationInstruction in migrationPlan.Instructions) { MigrationInstructionValidationReportImpl instructionReport = new MigrationInstructionValidationReportImpl(migrationInstruction); string sourceActivityId = migrationInstruction.SourceActivityId; string targetActivityId = migrationInstruction.TargetActivityId; if (!string.ReferenceEquals(sourceActivityId, null) && !string.ReferenceEquals(targetActivityId, null)) { ActivityImpl sourceActivity = sourceProcessDefinition.findActivity(sourceActivityId); ActivityImpl targetActivity = targetProcessDefinition.findActivity(migrationInstruction.TargetActivityId); if (sourceActivity != null && targetActivity != null) { validatingMigrationInstructions.addInstruction(new ValidatingMigrationInstructionImpl(sourceActivity, targetActivity, migrationInstruction.UpdateEventTrigger)); } else { if (sourceActivity == null) { instructionReport.addFailure("Source activity '" + sourceActivityId + "' does not exist"); } if (targetActivity == null) { instructionReport.addFailure("Target activity '" + targetActivityId + "' does not exist"); } } } else { if (string.ReferenceEquals(sourceActivityId, null)) { instructionReport.addFailure("Source activity id is null"); } if (string.ReferenceEquals(targetActivityId, null)) { instructionReport.addFailure("Target activity id is null"); } } if (instructionReport.hasFailures()) { planReport.addInstructionReport(instructionReport); } } return(validatingMigrationInstructions); }
protected internal virtual void validateMigrationPlan(CommandContext commandContext, MigrationPlanImpl migrationPlan, ProcessDefinitionImpl sourceProcessDefinition, ProcessDefinitionImpl targetProcessDefinition) { IList <MigrationInstructionValidator> migrationInstructionValidators = commandContext.ProcessEngineConfiguration.MigrationInstructionValidators; MigrationPlanValidationReportImpl planReport = new MigrationPlanValidationReportImpl(migrationPlan); ValidatingMigrationInstructions validatingMigrationInstructions = wrapMigrationInstructions(migrationPlan, sourceProcessDefinition, targetProcessDefinition, planReport); foreach (ValidatingMigrationInstruction validatingMigrationInstruction in validatingMigrationInstructions.Instructions) { MigrationInstructionValidationReportImpl instructionReport = validateInstruction(validatingMigrationInstruction, validatingMigrationInstructions, migrationInstructionValidators); if (instructionReport.hasFailures()) { planReport.addInstructionReport(instructionReport); } } if (planReport.hasInstructionReports()) { throw LOG.failingMigrationPlanValidation(planReport); } }