示例#1
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET:
//ORIGINAL LINE: protected org.camunda.bpm.engine.impl.ProcessInstanceModificationBuilderImpl createProcessInstanceModificationBuilder(final String processInstanceId, final org.camunda.bpm.engine.impl.interceptor.CommandContext commandContext)
        protected internal virtual ProcessInstanceModificationBuilderImpl createProcessInstanceModificationBuilder(string processInstanceId, CommandContext commandContext)
        {
            ProcessInstanceModificationBuilderImpl             processInstanceModificationBuilder = new ProcessInstanceModificationBuilderImpl(commandContext, processInstanceId);
            IList <AbstractProcessInstanceModificationCommand> operations = processInstanceModificationBuilder.ModificationOperations;

            ActivityInstance activityInstanceTree = null;

            foreach (AbstractProcessInstanceModificationCommand instruction in builder.Instructions)
            {
                instruction.ProcessInstanceId = processInstanceId;

                if (!(instruction is ActivityCancellationCmd) || !((ActivityCancellationCmd)instruction).CancelCurrentActiveActivityInstances)
                {
                    operations.Add(instruction);
                }
                else
                {
                    if (activityInstanceTree == null)
                    {
                        activityInstanceTree = commandContext.runWithoutAuthorization(new CallableAnonymousInnerClass(this, processInstanceId, commandContext));
                    }

                    ActivityCancellationCmd cancellationInstruction = (ActivityCancellationCmd)instruction;
                    IList <AbstractInstanceCancellationCmd> cmds    = cancellationInstruction.createActivityInstanceCancellations(activityInstanceTree, commandContext);
                    ((IList <AbstractProcessInstanceModificationCommand>)operations).AddRange(cmds);
                }
            }

            return(processInstanceModificationBuilder);
        }
示例#2
0
 public CallableAnonymousInnerClass(ActivityCancellationCmd outerInstance, CommandContext commandContext)
 {
     this.outerInstance  = outerInstance;
     this.commandContext = commandContext;
 }