public override object Create(Resource parent, IParseContext context, XElement element)
        {
            var parameter = context.BpmnFactory.CreateResourceParameter();

            parent.Parameters.Add(parameter);

            parameter.Name = element.GetAttribute("name");

            var type = element.GetAttribute("type");

            if (type != null)
            {
                context.AddReferenceRequest <ItemDefinition>(type, r => parameter.Type = r);
            }

            var v = element.GetAttribute("isRequired");

            if (v != null)
            {
                parameter.IsRequired = bool.Parse(v);
            }

            //parameter.Value = element.GetExtendedAttribute("value");
            base.Init(parameter, context, element);

            context.Push(parameter);

            return(parameter);
        }
        public override object Create(TParent parent, IParseContext context, XElement element)
        {
            var dataOutput = context.BpmnFactory.CreateDataOutput();

            dataOutput.Name         = element.GetAttribute("name");
            dataOutput.IsCollection = element.GetBoolean("isCollection");

            var itemSubjectRef = element.GetAttribute("itemSubjectRef");

            if (itemSubjectRef != null)
            {
                context.AddReferenceRequest <ItemDefinition>(itemSubjectRef, value => dataOutput.ItemSubjectRef = value);
            }

            if (this.callback != null)
            {
                this.callback(parent, context, element, dataOutput);
            }

            base.Init(dataOutput, context, element);

            context.Push(dataOutput);

            return(dataOutput);
        }
        public override object Create(object parent, IParseContext context, XElement element)
        {
            ResourceRole resourceRole = null;
            var          factory      = context.BpmnFactory;
            var          type         = Helper.GetRealLocalName(element);

            switch (type)
            {
            case "potentialOwner":
                resourceRole = factory.CreatePotentialOwner();
                break;

            case "humanPerformer":
                resourceRole = factory.CreateHumanPerformer();
                break;

            case "performer":
                resourceRole = factory.CreatePerformer();
                break;

            case "resourceRole":
                resourceRole = factory.CreateResourceRole();
                break;
            }

            resourceRole.Name = element.GetAttribute("name");

            var value = element.GetAttribute("type");

            if (value != null)
            {
                resourceRole.Type = (ResourceType)Enum.Parse(typeof(ResourceType), value);
            }

            ICollection <ResourceRole> list = null;

            if (parent is Process)
            {
                list = (parent as Process).Resources;
            }
            else if (parent is Activity)
            {
                list = (parent as Activity).Resources;
            }

            if (list != null)
            {
                list.Add(resourceRole);
            }

            base.Init(resourceRole, context, element);

            context.Push(resourceRole);

            return(resourceRole);
        }
        protected override void Init(BaseElement baseElement, IParseContext context, XElement element)
        {
            var flowElement = baseElement as FlowElement;

            flowElement.Name = element.GetAttribute("name");

            base.Init(flowElement, context, element);

            context.Push(flowElement);
        }
        public override object Create(Definitions parent, IParseContext context, XElement element)
        {
            var resource = context.BpmnFactory.CreateResource();

            parent.RootElements.Add(resource);

            resource.Name = element.GetAttribute("name");

            base.Init(resource, context, element);

            context.Push(resource);

            return(resource);
        }
        public override object Create(InputOutputSpecification parent, IParseContext context, XElement element)
        {
            var outputSet = context.BpmnFactory.CreateOutputSet();

            parent.OutputSets.Add(outputSet);

            outputSet.Name = element.GetAttribute("name");

            base.Init(outputSet, context, element);

            context.Push(outputSet);

            return(outputSet);
        }
Example #7
0
        public override object Create(Definitions parent, IParseContext context, XElement element)
        {
            var item = context.BpmnFactory.CreateInterface();

            parent.RootElements.Add(item);

            item.ImplementationRef = element.GetAttribute("implementationRef");
            item.Name = element.GetAttribute("name");

            base.Init(item, context, element);

            context.Push(item);

            return(item);
        }
Example #8
0
        public override object Create(Definitions parent, IParseContext context, XElement element)
        {
            var item = context.BpmnFactory.CreateItemDefinition();

            parent.RootElements.Add(item);

            item.StructureRef = element.GetAttribute("structureRef");
            item.IsCollection = element.GetBoolean("isCollection");
            item.ItemKind     = element.GetEnum("itemKind", ItemKind.Information);

            base.Init(item, context, element);

            context.Push(item);

            return(item);
        }
Example #9
0
        public override object Create(Interface parent, IParseContext context, XElement element)
        {
            var op = context.BpmnFactory.CreateOperation();

            parent.Operations.Add(op);

            op.Interface = parent;

            op.Name = element.GetAttribute("name");
            op.ImplementationRef = element.GetAttribute("implementationRef");

            base.Init(op, context, element);

            context.Push(op);

            return(op);
        }
Example #10
0
        public override object Create(Definitions parent, IParseContext context, XElement element)
        {
            var error = context.BpmnFactory.CreateError();

            error.Name = element.GetAttribute("name");
            parent.RootElements.Add(error);

            var structureRef = element.GetAttribute("structureRef");

            if (structureRef != null)
            {
                context.AddReferenceRequest <ItemDefinition>(structureRef, x => error.StructureRef = x);
            }

            base.Init(error, context, element);

            context.Push(error);

            return(error);
        }
Example #11
0
        public override object Create(Definitions parent, IParseContext context, XElement element)
        {
            var signal = context.BpmnFactory.CreateSignal();

            signal.Name = element.GetAttribute("name");
            parent.RootElements.Add(signal);

            var structureRef = element.GetAttribute("structureRef");

            if (structureRef != null)
            {
                context.AddReferenceRequest(structureRef, (ItemDefinition x) => signal.StructureRef = x);
            }

            base.Init(signal, context, element);

            context.Push(signal);

            return(signal);
        }
Example #12
0
        public override object Create(Definitions parent, IParseContext context, XElement element)
        {
            var message = context.BpmnFactory.CreateMessage();

            message.Name = element.GetAttribute("name");

            parent.RootElements.Add(message);

            var itemRef = element.GetAttribute("itemRef");

            if (itemRef != null)
            {
                context.AddReferenceRequest(itemRef, (ItemDefinition x) => message.ItemRef = x);
            }

            base.Init(message, context, element);

            context.Push(message);

            return(message);
        }
Example #13
0
        public override object Create(TParent parent, IParseContext context, XElement element)
        {
            var props = context.BpmnFactory.CreateProperty();

            props.Name = element.GetAttribute("name");

            var itemSubjectRef = element.GetAttribute("itemSubjectRef");

            if (itemSubjectRef != null)
            {
                context.AddReferenceRequest <ItemDefinition>(itemSubjectRef, x => props.ItemSubjectRef = x);
            }

            if (this.callback != null)
            {
                this.callback(parent, props);
            }

            base.Init(props, context, element);

            context.Push(props);

            return(props);
        }
        public override object Create(object parent, IParseContext context, XElement element)
        {
            EventDefinition eventDefinition = null;
            var             localName       = Helper.GetRealLocalName(element);

            switch (localName)
            {
            case "cancelEventDefinition":
                eventDefinition = new CancelEventDefinition();
                break;

            case "errorEventDefinition":
                var errorEventDefinition = new ErrorEventDefinition();
                eventDefinition = errorEventDefinition;
                var errorRef = element.GetAttribute("errorRef");
                if (errorRef != null)
                {
                    context.AddReferenceRequest <Error>(errorRef, x => errorEventDefinition.ErrorRef = x);
                }
                break;

            case "timerEventDefinition":
                eventDefinition = new TimerEventDefinition();
                break;

            case "terminateEventDefinition":
                eventDefinition = new TerminateEventDefinition();
                break;

            case "messageEventDefinition":
                var messageEventDefinition = new MessageEventDefinition();
                eventDefinition = messageEventDefinition;

                var operationRef = element.GetAttribute("operationRef");
                if (operationRef != null)
                {
                    context.AddReferenceRequest <Operation>(operationRef, x => messageEventDefinition.OperationRef = x);
                }

                var messageRef = element.GetAttribute("messageRef");
                if (messageRef != null)
                {
                    context.AddReferenceRequest <Message>(messageRef, x => messageEventDefinition.MessageRef = x);
                }
                break;

            case "conditionalEventDefinition":
                eventDefinition = new ConditionalEventDefinition();
                break;

            case "compensateEventDefinition":
                var compensateEventDefinition = new CompensateEventDefinition();
                eventDefinition = compensateEventDefinition;

                compensateEventDefinition.WaitForCompletion = element.GetBoolean("waitForCompletion");
                var activityRef = element.GetAttribute("activityRef");
                if (activityRef != null)
                {
                    context.AddReferenceRequest <Activity>(activityRef, x => compensateEventDefinition.ActivityRef = x);
                }
                break;

            case "signalEventDefinition":
                var signalEventDefinition = new SignalEventDefinition();
                eventDefinition = signalEventDefinition;

                var signalRef = element.GetAttribute("signalRef");
                if (signalRef != null)
                {
                    context.AddReferenceRequest <Signal>(signalRef, x => signalEventDefinition.SignalRef = x);
                }
                break;

            case "escalationEventDefinition":
                eventDefinition = new EscalationEventDefinition()
                {
                    EscalationRef = element.GetAttribute("escalationRef")
                };
                break;

            case "linkEventDefinition":
                eventDefinition = new LinkEventDefinition()
                {
                    Name   = element.GetAttribute("name"),
                    Target = element.GetAttribute("target")
                };
                break;
            }

            if (this.callback != null)
            {
                this.callback(parent, context, element, eventDefinition);
            }

            base.Init(eventDefinition, context, element);

            context.Push(eventDefinition);

            return(eventDefinition);
        }