コード例 #1
0
        private void Resolve(FlowImpl flow, Relations relations, DbSession dbSession)
        {
            // resolve the flow
            if (relations != null)
            {
                log.Debug("resolving relations : '" + relations + "' on flow '" + flow + "'");
                relations.Resolve(flow);
            }

            // resolve the flow-details
            IEnumerator iter = flow.Logs.GetEnumerator();

            while (iter.MoveNext())
            {
                LogImpl     logImpl     = (LogImpl)iter.Current;
                IEnumerator detailsIter = logImpl.Details.GetEnumerator();
                while (detailsIter.MoveNext())
                {
                    LogDetailImpl LogDetailImpl = (LogDetailImpl)detailsIter.Current;
                    LogDetailImpl.Resolve(dbSession);
                }
            }

            // resolve the attribute values
            iter = flow.AttributeInstances.GetEnumerator();
            while (iter.MoveNext())
            {
                AttributeInstanceImpl attributeInstance = (AttributeInstanceImpl)iter.Current;
                log.Debug("resolving attribute instance : " + attributeInstance.GetValue());
            }

            // resolve the child-flows
            iter = flow.Children.GetEnumerator();
            while (iter.MoveNext())
            {
                FlowImpl subFlow = (FlowImpl)iter.Current;
                Resolve(subFlow, relations, dbSession);
            }

            // resolve the sub-process-flows
            IProcessInstance subProcessInstance = flow.GetSubProcessInstance();

            if (subProcessInstance != null)
            {
                Resolve((FlowImpl)subProcessInstance.RootFlow, relations, dbSession);
            }
        }
コード例 #2
0
 public void AddLogDetail(LogDetailImpl logDetail)
 {
     if (_logField != null)
     {
         this._logField.Details.Add(logDetail);
         logDetail.Log = this._logField;
     }
 }