public ProcessParseHandler()
        {
            this.handlers.Add("dataObject", new DataObjectParseHandler());
            this.handlers.Add("dataObjectReference", new DataObjectReferenceParseHandler());

            this.handlers.Add("property", new PropertyParseHandler <Process>((proc, props) =>
            {
                proc.Properties.Add(props);
            }));

            //resource
            IParseHandler handler = new ResourceRoleParseHandler();

            foreach (var item in ResourceRoleParseHandler.Keys)
            {
                this.handlers.Add(item, handler);
            }

            this.handlers.Add("startEvent", new StartEventParseHandler());
            this.handlers.Add("userTask", new UserTaskParseHandler());
            this.handlers.Add("sequenceFlow", new SequenceFlowParseHandler());
            this.handlers.Add("endEvent", new EndEventParseHandler());
            this.handlers.Add("parallelGateway", new ParallelGatewayParseHandler());
            this.handlers.Add("exclusiveGateway", new ExclusiveGatewayParseHandler());
            this.handlers.Add("inclusiveGateway", new InclusiveGatewayParseHandler());
            this.handlers.Add("complexGateway", new ComplexGatewayParseHandler());
            this.handlers.Add("scriptTask", new ScriptTaskParseHandler());
            this.handlers.Add("serviceTask", new ServiceTaskParseHandler());
            this.handlers.Add("receiveTask", new ReceiveTaskParseHandler());
            this.handlers.Add("sendTask", new SendTaskParseHandler());
            this.handlers.Add("task", new TaskParseHandler());
            this.handlers.Add("manualTask", new ManualTaskParseHandler());
            this.handlers.Add("businessRuleTask", new BusinessRuleTaskParseHandler());
            this.handlers.Add("callActivity", new CallActivityParseHandler());

            this.handlers.Add("subProcess", new SubProcessParseHandler());
            this.handlers.Add("transaction", new TransactionParseHandler());
            this.handlers.Add("adHocSubProcess", new AdHocSubProcessParseHandler());

            var artifactHandler = new ArtifactParseHandler();

            this.handlers.Add("textAnnotation", artifactHandler);
            this.handlers.Add("association", artifactHandler);
        }
Exemple #2
0
        public ActivityParseHandler()
        {
            this.handlers.Add("property", new PropertyParseHandler <Activity>((act, props) =>
            {
                act.Properties.Add(props);
            }));

            this.handlers.Add("ioSpecification", new IOSpecificationParseHandler <Activity>((x, y) =>
            {
                x.IOSpecification = y;
            }));

            var miHandler  = new MultiInstanceLoopCharacteristicsHandler();
            var stdHandler = new StandardLoopCharacteristicsHandler();

            //var loopHandler = new ParseHandlerAction<Activity>((p, c, x) =>
            //{
            //    var activityBehavior = p.Tag as ActivityBehavior;

            //    LoopCharacteristics loopCharacteristics = null;
            //    var localName = Helper.GetRealLocalName(x);
            //    if (localName != "multiInstanceLoopCharacteristics")
            //    {
            //        loopCharacteristics = (LoopCharacteristics)stdHandler.Create(p, c, x);
            //        activityBehavior = new StandardLoopActivityBehavior(activityBehavior, (StandardLoopCharacteristics)loopCharacteristics);
            //    }
            //    else
            //    {
            //        loopCharacteristics = (LoopCharacteristics)miHandler.Create(p, c, x);
            //        var mi = loopCharacteristics as MultiInstanceLoopCharacteristics;
            //        if (mi.IsSequential)
            //            activityBehavior = new SequentialMultiInstanceActivityBehavior(activityBehavior, mi);
            //        else
            //            activityBehavior = new ParallelMultiInstanceActivityBehavior(activityBehavior, mi);
            //    }

            //    p.Tag = activityBehavior;

            //    loopCharacteristics.Activity = p;
            //});

            //this.handlers.Add("loopCharacteristics", loopHandler);
            //this.handlers.Add("multiInstanceLoopCharacteristics", loopHandler);
            //this.handlers.Add("standardLoopCharacteristics", loopHandler);

            var handler = new ResourceRoleParseHandler();

            foreach (var key in ResourceRoleParseHandler.Keys)
            {
                this.handlers.Add(key, handler);
            }

            this.handlers.Add("dataInputAssociation", new DataInputAssociationParseHandler <Activity>((x, y) =>
            {
                x.DataInputAssociations.Add(y);
            }));

            this.handlers.Add("dataOutputAssociation", new DataOutputAssociationParseHandler <Activity>((x, y) =>
            {
                x.DataOutputAssociations.Add(y);
            }));
        }