private static void ProcessTopClause(Node topElement) { var siblingsAfterTop = topElement.SiblingsAfterChild(topElement); Node numberNode = null; Node parenNode = null; foreach (var topSibling in siblingsAfterTop) { if (topSibling.Name.Equals(SqlStructureConstants.ENAME_EXPRESSION_PARENS)) { parenNode = topSibling; break; } if (topSibling.Name.Equals(SqlStructureConstants.ENAME_NUMBER_VALUE)) { numberNode = topSibling; } } if (numberNode != null && parenNode == null) { Node newChild = new NodeImpl() { Name = numberNode.Name, TextValue = numberNode.TextValue }; numberNode.Name = SqlStructureConstants.ENAME_EXPRESSION_PARENS; numberNode.TextValue = string.Empty; numberNode.InsertChildAtIndex(newChild, 0); } }
public void ProcessTransition(TransitionImpl transition, FlowImpl flow, DbSession dbSession) { NodeImpl destination = (NodeImpl)transition.To; flow.Node = destination; if (destination is ActivityStateImpl) { ProcessActivityState((ActivityStateImpl)destination, flow, dbSession); } else if (destination is ProcessStateImpl) { //ProcessProcessState((ProcessStateImpl)destination, executionContext, dbSession); } else if (destination is DecisionImpl) { ProcessDecision((DecisionImpl)destination, flow, dbSession); } else if (destination is ForkImpl) { ProcessFork((ForkImpl)destination, flow, dbSession); } else if (destination is JoinImpl) { ProcessJoin((JoinImpl)destination, flow, dbSession); } else if (destination is EndStateImpl) { ProcessEndState((EndStateImpl)destination, flow, dbSession); } else { throw new SystemException(""); } }
public virtual void evaluateExpressionStack() { Node @operator = null; if (operatorStack.Count == 0) { throw new Exception("not operators on stack"); } @operator = operatorStack.Pop(); //TODO ensure the type is accurate. //assert false : "this needs to fail until i fix it"; if (@operator.Type.Equals(NodeType.EqualEqualType) && operandStack.Count >= 2) { NodeImpl r = (NodeImpl)operandStack.Pop(); NodeImpl l = (NodeImpl)operandStack.Pop(); ActivationFrame frame = activationFrameStack.peek(); object rReal = r.getRealValue(frame); object lreal = l.getRealValue(frame); bool equalEqualEval = rReal.Equals(lreal); BooleanNode booleanNode = new BooleanNode(); FinalNode finalNode = new FinalNode(); finalNode.DataString = equalEqualEval; booleanNode.addInst(finalNode); operandStack.Push(booleanNode); } }
private void node(XmlElement nodeElement, NodeImpl node, ProcessBlockImpl processBlock) { node.ArrivingTransitions = new ListSet(); node.LeavingTransitions = new ListSet(); IEnumerator iter = nodeElement.GetChildElements("transition").GetEnumerator(); while (iter.MoveNext()) { XmlElement transitionElement = (XmlElement)iter.Current; TransitionImpl transition = new TransitionImpl(); transition.ProcessDefinition = ProcessDefinition; transition.From = node; if (node is JoinImpl) { this.joinTransition(transitionElement, transition, processBlock); } else { this.transition(transitionElement, transition, processBlock); } node.LeavingTransitions.Add(transition); } this.definitionObject(nodeElement, node, processBlock); //把所有的Node加到集合中 this.addReferencableObject(node.Name, processBlock, typeof(INode), node); }
internal static NodeImpl GetInstance([CallerMemberName] string callerName = "") { var instance = new NodeImpl(); InstanceFactory(ref instance, callerName); return(instance); }
/// <summary> /// left outer join leave alone /// right outer join throw error - put warning in sql /// inner joins order clauses with parent alias field firest /// </summary> /// <param name="joinBody"></param> /// <param name="parentAlias"></param> private static void ValidateJoinReferenceRules(Node joinBody, Node parentAlias, Node joinType) { bool innerJoin = true; bool leftJoin = true; foreach (var joinclause in joinType.Children) { if (joinclause.TextValue.Equals("OUTER")) { innerJoin = false; } else if (joinclause.TextValue.Equals("RIGHT")) { leftJoin = false; } } if (!innerJoin) { if (!leftJoin) { Node errorMeswsage = new NodeImpl() { Name = SqlStructureConstants.ENAME_COMMENT_SINGLELINE, TextValue = "WARNING! Right Outer Join Not Permitted" }; joinType.Parent.InsertChildBefore(errorMeswsage, joinType); } } else { ValidateJoinTableOrder(joinBody, parentAlias); } }
public void StartServer() { StartAdbPort(); StartApp(); ScreenImpl.setIFace(this); NodeImpl.setIFace(this); ScreenServer.Run(LISTEN_PORT, this); }
public virtual void addInst(Node instruction) { NodeImpl nodeImpl = (NodeImpl)instruction; if (nodeImpl != null && nodeImpl.parentNode == null) { nodeImpl.parentNode = this; } instructions.Add(instruction); }
public void StrangeBehaviour() { ConfigurationNode parentNode = new NodeImpl("parent"); ConfigurationNode childNode = new NodeImpl("child"); parentNode.AddNode(childNode); ApplicationNode.AddNode(parentNode); Assert.AreEqual("child", childNode.Name); Assert.AreEqual("parent", parentNode.Name); }
public void RenameNodeChangesIndex() { ConfigurationNode childNode = new NodeImpl("Test"); ApplicationNode.AddNode(childNode); childNode.Name = "test3"; ConfigurationNode childNode2 = new NodeImpl("Test2"); ApplicationNode.AddNode(childNode2); childNode2.Name = ServiceHelper.GetNameCreationService(ServiceProvider).GetUniqueName("Test", childNode, childNode.Parent); }
public void StrangeBehaviour() { ConfigurationNode parentNode = new NodeImpl("parent"); ConfigurationNode childNode = new NodeImpl("child"); parentNode.AddNode(childNode); ApplicationNode.AddNode(parentNode); Assert.AreEqual("child", childNode.Name); Assert.AreEqual("parent", parentNode.Name); }
public void RenameNodeChangesIndex() { ConfigurationNode childNode = new NodeImpl("Test"); ApplicationNode.AddNode(childNode); childNode.Name = "test3"; ConfigurationNode childNode2 = new NodeImpl("Test2"); ApplicationNode.AddNode(childNode2); childNode2.Name = ServiceHelper.GetNameCreationService(ServiceProvider).GetUniqueName("Test", childNode, childNode.Parent); }
//private const String queryFindActionsByEventType = "select a from a in class NetBpm.Workflow.Definition.Impl.ActionImpl " + // "where a.EventType = ? " + // " and a.DefinitionObjectId = ? "; //public void RunActionsForEvent(EventType eventType, Int64 definitionObjectId, ExecutionContextImpl executionContext) //{ // log.Debug("processing '" + eventType + "' events for executionContext " + executionContext); // DbSession dbSession = executionContext.DbSession; // // find all actions for definitionObject on the given eventType // Object[] values = new Object[] {eventType, definitionObjectId}; // IType[] types = new IType[] {DbType.INTEGER, DbType.LONG}; // IList actions = dbSession.Find(queryFindActionsByEventType, values, types); // IEnumerator iter = actions.GetEnumerator(); // log.Debug("list" + actions); // while (iter.MoveNext()) // { // ActionImpl action = (ActionImpl) iter.Current; // log.Debug("action: " + action); // delegationHelper.DelegateAction(action.ActionDelegation, executionContext); // } // log.Debug("ende runActionsForEvent!"); //} public void ProcessTransition(TransitionImpl transition, ExecutionContextImpl executionContext, DbSession dbSession) { log.Debug("processing transition '" + transition + "' for flow '" + executionContext.GetFlow() + "'"); // trigger all the actions scheduled for this transition delegationService.RunActionsForEvent(EventType.TRANSITION, transition.Id, executionContext, dbSession); // first set the state of the execution context and the flow // to the node that is going to be processed FlowImpl flow = (FlowImpl)executionContext.GetFlow(); NodeImpl destination = (NodeImpl)transition.To; flow.Node = destination; executionContext.SetNode(destination); // note : I want to keep the engine methods grouped in this class, that is why I // didn't use inheritance but used an instanceof-switch instead. if (destination is ActivityStateImpl) { ProcessActivityState((ActivityStateImpl)destination, executionContext, dbSession); } else if (destination is ProcessStateImpl) { ProcessProcessState((ProcessStateImpl)destination, executionContext, dbSession); } else if (destination is DecisionImpl) { ProcessDecision((DecisionImpl)destination, executionContext, dbSession); } else if (destination is ForkImpl) { ProcessFork((ForkImpl)destination, executionContext, dbSession); } else if (destination is JoinImpl) { ProcessJoin((JoinImpl)destination, executionContext, dbSession); } else if (destination is EndStateImpl) { ProcessEndState((EndStateImpl)destination, executionContext, dbSession); } else { throw new SystemException(""); } }
private static Node CreateIsolationNode() { Node setContainer = new NodeImpl() { Name = SqlStructureConstants.ENAME_SQL_STATEMENT }; setContainer.InsertChildAtIndex(new NodeImpl() { Name = SqlStructureConstants.ENAME_SEMICOLON, TextValue = ";" }, 0); setContainer.InsertChildAtIndex(new NodeImpl() { Name = SqlStructureConstants.ENAME_OTHERKEYWORD, TextValue = "UNCOMMITTED" }, 0); setContainer.InsertChildAtIndex(new NodeImpl() { Name = SqlStructureConstants.ENAME_OTHERKEYWORD, TextValue = "READ" }, 0); setContainer.InsertChildAtIndex(new NodeImpl() { Name = SqlStructureConstants.ENAME_OTHERKEYWORD, TextValue = "LEVEL" }, 0); setContainer.InsertChildAtIndex(new NodeImpl() { Name = SqlStructureConstants.ENAME_OTHERKEYWORD, TextValue = "ISOLATION" }, 0); setContainer.InsertChildAtIndex(new NodeImpl() { Name = SqlStructureConstants.ENAME_OTHERKEYWORD, TextValue = "TRANSACTION" }, 0); setContainer.InsertChildAtIndex(new NodeImpl() { Name = SqlStructureConstants.ENAME_OTHERKEYWORD, TextValue = "SET" }, 0); return(setContainer); }
public void SetNode(INode node) { this._node = (NodeImpl)node; }
static partial void InstanceFactory(ref NodeImpl instance, [CallerMemberName] string callerName = "");
protected internal virtual void DoRegisterTypes(ModelBuilder bpmnModelBuilder) { ActivationConditionImpl.RegisterType(bpmnModelBuilder); ActivityImpl.RegisterType(bpmnModelBuilder); ArtifactImpl.RegisterType(bpmnModelBuilder); AssignmentImpl.RegisterType(bpmnModelBuilder); AssociationImpl.RegisterType(bpmnModelBuilder); AuditingImpl.RegisterType(bpmnModelBuilder); BaseElementImpl.RegisterType(bpmnModelBuilder); BoundaryEventImpl.RegisterType(bpmnModelBuilder); BusinessRuleTaskImpl.RegisterType(bpmnModelBuilder); CallableElementImpl.RegisterType(bpmnModelBuilder); CallActivityImpl.RegisterType(bpmnModelBuilder); CallConversationImpl.RegisterType(bpmnModelBuilder); CancelEventDefinitionImpl.RegisterType(bpmnModelBuilder); CatchEventImpl.RegisterType(bpmnModelBuilder); CategoryValueImpl.RegisterType(bpmnModelBuilder); CategoryValueRef.RegisterType(bpmnModelBuilder); ChildLaneSet.RegisterType(bpmnModelBuilder); CollaborationImpl.RegisterType(bpmnModelBuilder); CompensateEventDefinitionImpl.RegisterType(bpmnModelBuilder); ConditionImpl.RegisterType(bpmnModelBuilder); ConditionalEventDefinitionImpl.RegisterType(bpmnModelBuilder); CompletionConditionImpl.RegisterType(bpmnModelBuilder); ComplexBehaviorDefinitionImpl.RegisterType(bpmnModelBuilder); ComplexGatewayImpl.RegisterType(bpmnModelBuilder); ConditionExpressionImpl.RegisterType(bpmnModelBuilder); ConversationAssociationImpl.RegisterType(bpmnModelBuilder); ConversationImpl.RegisterType(bpmnModelBuilder); ConversationLinkImpl.RegisterType(bpmnModelBuilder); ConversationNodeImpl.RegisterType(bpmnModelBuilder); CorrelationKeyImpl.RegisterType(bpmnModelBuilder); CorrelationPropertyBindingImpl.RegisterType(bpmnModelBuilder); CorrelationPropertyImpl.RegisterType(bpmnModelBuilder); CorrelationPropertyRef.RegisterType(bpmnModelBuilder); CorrelationPropertyRetrievalExpressionImpl.RegisterType(bpmnModelBuilder); CorrelationSubscriptionImpl.RegisterType(bpmnModelBuilder); DataAssociationImpl.RegisterType(bpmnModelBuilder); DataInputAssociationImpl.RegisterType(bpmnModelBuilder); DataInputImpl.RegisterType(bpmnModelBuilder); DataInputRefs.RegisterType(bpmnModelBuilder); DataOutputAssociationImpl.RegisterType(bpmnModelBuilder); DataOutputImpl.RegisterType(bpmnModelBuilder); DataOutputRefs.RegisterType(bpmnModelBuilder); DataPath.RegisterType(bpmnModelBuilder); DataStateImpl.RegisterType(bpmnModelBuilder); DataObjectImpl.RegisterType(bpmnModelBuilder); DataObjectReferenceImpl.RegisterType(bpmnModelBuilder); DataStoreImpl.RegisterType(bpmnModelBuilder); DefinitionsImpl.RegisterType(bpmnModelBuilder); DocumentationImpl.RegisterType(bpmnModelBuilder); EndEventImpl.RegisterType(bpmnModelBuilder); EndPointImpl.RegisterType(bpmnModelBuilder); EndPointRef.RegisterType(bpmnModelBuilder); ErrorEventDefinitionImpl.RegisterType(bpmnModelBuilder); ErrorImpl.RegisterType(bpmnModelBuilder); ErrorRef.RegisterType(bpmnModelBuilder); EscalationImpl.RegisterType(bpmnModelBuilder); EscalationEventDefinitionImpl.RegisterType(bpmnModelBuilder); EventBasedGatewayImpl.RegisterType(bpmnModelBuilder); EventDefinitionImpl.RegisterType(bpmnModelBuilder); EventDefinitionRef.RegisterType(bpmnModelBuilder); EventImpl.RegisterType(bpmnModelBuilder); ExclusiveGatewayImpl.RegisterType(bpmnModelBuilder); ExpressionImpl.RegisterType(bpmnModelBuilder); ExtensionElementsImpl.RegisterType(bpmnModelBuilder); ExtensionImpl.RegisterType(bpmnModelBuilder); FlowElementImpl.RegisterType(bpmnModelBuilder); FlowNodeImpl.RegisterType(bpmnModelBuilder); FlowNodeRef.RegisterType(bpmnModelBuilder); FormalExpressionImpl.RegisterType(bpmnModelBuilder); From.RegisterType(bpmnModelBuilder); GatewayImpl.RegisterType(bpmnModelBuilder); GlobalConversationImpl.RegisterType(bpmnModelBuilder); HumanPerformerImpl.RegisterType(bpmnModelBuilder); ImportImpl.RegisterType(bpmnModelBuilder); InclusiveGatewayImpl.RegisterType(bpmnModelBuilder); Incoming.RegisterType(bpmnModelBuilder); InMessageRef.RegisterType(bpmnModelBuilder); InnerParticipantRef.RegisterType(bpmnModelBuilder); InputDataItemImpl.RegisterType(bpmnModelBuilder); InputSetImpl.RegisterType(bpmnModelBuilder); InputSetRefs.RegisterType(bpmnModelBuilder); InteractionNodeImpl.RegisterType(bpmnModelBuilder); InterfaceImpl.RegisterType(bpmnModelBuilder); InterfaceRef.RegisterType(bpmnModelBuilder); IntermediateCatchEventImpl.RegisterType(bpmnModelBuilder); IntermediateThrowEventImpl.RegisterType(bpmnModelBuilder); IoBindingImpl.RegisterType(bpmnModelBuilder); IoSpecificationImpl.RegisterType(bpmnModelBuilder); ItemAwareElementImpl.RegisterType(bpmnModelBuilder); ItemDefinitionImpl.RegisterType(bpmnModelBuilder); LaneImpl.RegisterType(bpmnModelBuilder); LaneSetImpl.RegisterType(bpmnModelBuilder); LinkEventDefinitionImpl.RegisterType(bpmnModelBuilder); LoopCardinalityImpl.RegisterType(bpmnModelBuilder); LoopCharacteristicsImpl.RegisterType(bpmnModelBuilder); LoopDataInputRef.RegisterType(bpmnModelBuilder); LoopDataOutputRef.RegisterType(bpmnModelBuilder); ManualTaskImpl.RegisterType(bpmnModelBuilder); MessageEventDefinitionImpl.RegisterType(bpmnModelBuilder); MessageFlowAssociationImpl.RegisterType(bpmnModelBuilder); MessageFlowImpl.RegisterType(bpmnModelBuilder); MessageFlowRef.RegisterType(bpmnModelBuilder); MessageImpl.RegisterType(bpmnModelBuilder); MessagePath.RegisterType(bpmnModelBuilder); ModelElementInstanceImpl.RegisterType(bpmnModelBuilder); MonitoringImpl.RegisterType(bpmnModelBuilder); MultiInstanceLoopCharacteristicsImpl.RegisterType(bpmnModelBuilder); OperationImpl.RegisterType(bpmnModelBuilder); OperationRef.RegisterType(bpmnModelBuilder); OptionalInputRefs.RegisterType(bpmnModelBuilder); OptionalOutputRefs.RegisterType(bpmnModelBuilder); OuterParticipantRef.RegisterType(bpmnModelBuilder); OutMessageRef.RegisterType(bpmnModelBuilder); Outgoing.RegisterType(bpmnModelBuilder); OutputDataItemImpl.RegisterType(bpmnModelBuilder); OutputSetImpl.RegisterType(bpmnModelBuilder); OutputSetRefs.RegisterType(bpmnModelBuilder); ParallelGatewayImpl.RegisterType(bpmnModelBuilder); ParticipantAssociationImpl.RegisterType(bpmnModelBuilder); ParticipantImpl.RegisterType(bpmnModelBuilder); ParticipantMultiplicityImpl.RegisterType(bpmnModelBuilder); ParticipantRef.RegisterType(bpmnModelBuilder); PartitionElement.RegisterType(bpmnModelBuilder); PerformerImpl.RegisterType(bpmnModelBuilder); PotentialOwnerImpl.RegisterType(bpmnModelBuilder); ProcessImpl.RegisterType(bpmnModelBuilder); PropertyImpl.RegisterType(bpmnModelBuilder); ReceiveTaskImpl.RegisterType(bpmnModelBuilder); RelationshipImpl.RegisterType(bpmnModelBuilder); RenderingImpl.RegisterType(bpmnModelBuilder); ResourceAssignmentExpressionImpl.RegisterType(bpmnModelBuilder); ResourceImpl.RegisterType(bpmnModelBuilder); ResourceParameterBindingImpl.RegisterType(bpmnModelBuilder); ResourceParameterImpl.RegisterType(bpmnModelBuilder); ResourceRef.RegisterType(bpmnModelBuilder); ResourceRoleImpl.RegisterType(bpmnModelBuilder); RootElementImpl.RegisterType(bpmnModelBuilder); ScriptImpl.RegisterType(bpmnModelBuilder); ScriptTaskImpl.RegisterType(bpmnModelBuilder); SendTaskImpl.RegisterType(bpmnModelBuilder); SequenceFlowImpl.RegisterType(bpmnModelBuilder); ServiceTaskImpl.RegisterType(bpmnModelBuilder); SignalEventDefinitionImpl.RegisterType(bpmnModelBuilder); SignalImpl.RegisterType(bpmnModelBuilder); Source.RegisterType(bpmnModelBuilder); SourceRef.RegisterType(bpmnModelBuilder); StartEventImpl.RegisterType(bpmnModelBuilder); SubConversationImpl.RegisterType(bpmnModelBuilder); SubProcessImpl.RegisterType(bpmnModelBuilder); SupportedInterfaceRef.RegisterType(bpmnModelBuilder); Supports.RegisterType(bpmnModelBuilder); Target.RegisterType(bpmnModelBuilder); TargetRef.RegisterType(bpmnModelBuilder); TaskImpl.RegisterType(bpmnModelBuilder); TerminateEventDefinitionImpl.RegisterType(bpmnModelBuilder); TextImpl.RegisterType(bpmnModelBuilder); TextAnnotationImpl.RegisterType(bpmnModelBuilder); ThrowEventImpl.RegisterType(bpmnModelBuilder); TimeCycleImpl.RegisterType(bpmnModelBuilder); TimeDateImpl.RegisterType(bpmnModelBuilder); TimeDurationImpl.RegisterType(bpmnModelBuilder); TimerEventDefinitionImpl.RegisterType(bpmnModelBuilder); To.RegisterType(bpmnModelBuilder); TransactionImpl.RegisterType(bpmnModelBuilder); Transformation.RegisterType(bpmnModelBuilder); UserTaskImpl.RegisterType(bpmnModelBuilder); WhileExecutingInputRefs.RegisterType(bpmnModelBuilder); WhileExecutingOutputRefs.RegisterType(bpmnModelBuilder); // DC FontImpl.RegisterType(bpmnModelBuilder); PointImpl.RegisterType(bpmnModelBuilder); BoundsImpl.RegisterType(bpmnModelBuilder); // DI DiagramImpl.RegisterType(bpmnModelBuilder); DiagramElementImpl.RegisterType(bpmnModelBuilder); EdgeImpl.RegisterType(bpmnModelBuilder); impl.instance.di.ExtensionImpl.RegisterType(bpmnModelBuilder); LabelImpl.RegisterType(bpmnModelBuilder); LabeledEdgeImpl.RegisterType(bpmnModelBuilder); LabeledShapeImpl.RegisterType(bpmnModelBuilder); NodeImpl.RegisterType(bpmnModelBuilder); PlaneImpl.RegisterType(bpmnModelBuilder); ShapeImpl.RegisterType(bpmnModelBuilder); StyleImpl.RegisterType(bpmnModelBuilder); WaypointImpl.RegisterType(bpmnModelBuilder); // BPMNDI BpmnDiagramImpl.RegisterType(bpmnModelBuilder); BpmnEdgeImpl.RegisterType(bpmnModelBuilder); BpmnLabelImpl.RegisterType(bpmnModelBuilder); BpmnLabelStyleImpl.RegisterType(bpmnModelBuilder); BpmnPlaneImpl.RegisterType(bpmnModelBuilder); BpmnShapeImpl.RegisterType(bpmnModelBuilder); // camunda extensions CamundaConnectorImpl.RegisterType(bpmnModelBuilder); CamundaConnectorIdImpl.RegisterType(bpmnModelBuilder); CamundaConstraintImpl.RegisterType(bpmnModelBuilder); CamundaEntryImpl.RegisterType(bpmnModelBuilder); CamundaExecutionListenerImpl.RegisterType(bpmnModelBuilder); CamundaExpressionImpl.RegisterType(bpmnModelBuilder); CamundaFailedJobRetryTimeCycleImpl.RegisterType(bpmnModelBuilder); CamundaFieldImpl.RegisterType(bpmnModelBuilder); CamundaFormDataImpl.RegisterType(bpmnModelBuilder); CamundaFormFieldImpl.RegisterType(bpmnModelBuilder); CamundaFormPropertyImpl.RegisterType(bpmnModelBuilder); CamundaInImpl.RegisterType(bpmnModelBuilder); CamundaInputOutputImpl.RegisterType(bpmnModelBuilder); CamundaInputParameterImpl.RegisterType(bpmnModelBuilder); CamundaListImpl.RegisterType(bpmnModelBuilder); CamundaMapImpl.RegisterType(bpmnModelBuilder); CamundaOutputParameterImpl.RegisterType(bpmnModelBuilder); CamundaOutImpl.RegisterType(bpmnModelBuilder); CamundaPotentialStarterImpl.RegisterType(bpmnModelBuilder); CamundaPropertiesImpl.RegisterType(bpmnModelBuilder); CamundaPropertyImpl.RegisterType(bpmnModelBuilder); CamundaScriptImpl.RegisterType(bpmnModelBuilder); CamundaStringImpl.RegisterType(bpmnModelBuilder); CamundaTaskListenerImpl.RegisterType(bpmnModelBuilder); CamundaValidationImpl.RegisterType(bpmnModelBuilder); CamundaValueImpl.RegisterType(bpmnModelBuilder); }
private static void ValidateIfReferencesHaveBeginBlock(Node topElement) { var ifSqlClause = topElement.ChildByName(SqlStructureConstants.ENAME_CONTAINER_SINGLESTATEMENT); if (ifSqlClause != null) { var sqlStmnt = ifSqlClause.ChildByName(SqlStructureConstants.ENAME_SQL_STATEMENT); if (sqlStmnt != null) { var sqlClause = sqlStmnt.ChildByName(SqlStructureConstants.ENAME_SQL_CLAUSE); //If there is no begin/end block adjust structure so that there is... var beginEnd = sqlClause.ChildByName(SqlStructureConstants.ENAME_BEGIN_END_BLOCK); if (beginEnd == null) { Node newStmnt = new NodeImpl() { Name = SqlStructureConstants.ENAME_SQL_STATEMENT, TextValue = string.Empty, }; Node newClause = new NodeImpl() { Name = SqlStructureConstants.ENAME_SQL_CLAUSE, TextValue = string.Empty }; Node beginEndBlock = new NodeImpl() { Name = SqlStructureConstants.ENAME_BEGIN_END_BLOCK, TextValue = "" }; Node containerOpen = new NodeImpl() { Name = SqlStructureConstants.ENAME_CONTAINER_OPEN, TextValue = string.Empty }; Node multiStmnt = new NodeImpl() { Name = SqlStructureConstants.ENAME_CONTAINER_MULTISTATEMENT, TextValue = string.Empty }; Node containerClose = new NodeImpl() { Name = SqlStructureConstants.ENAME_CONTAINER_CLOSE, TextValue = string.Empty }; containerOpen.AddChild(new NodeImpl() { Name = SqlStructureConstants.ENAME_OTHERKEYWORD, TextValue = "BEGIN" }); containerClose.AddChild(new NodeImpl() { Name = SqlStructureConstants.ENAME_OTHERKEYWORD, TextValue = "END" }); newStmnt.AddChild(newClause); newClause.AddChild(beginEndBlock); beginEndBlock.AddChild(containerOpen); beginEndBlock.AddChild(multiStmnt); beginEndBlock.AddChild(containerClose); sqlStmnt.Parent.InsertChildBefore(newStmnt, sqlStmnt); sqlStmnt.Parent.RemoveChild(sqlStmnt); multiStmnt.AddChild(sqlStmnt); } } } }