Ejemplo n.º 1
0
        /// <summary>
        /// process the current payload object
        /// </summary>
        /// <param name="fed">FormatEntryData to process</param>
        /// <param name="c">currently active context</param>
        private void ProcessPayload(FormatEntryData fed, FormatMessagesContextManager.OutputContext c)
        {
            // we assume FormatEntryData as a standard wrapper
            if (fed == null)
            {
                PSTraceSource.NewArgumentNullException("fed");
            }
            if (fed.formatEntryInfo == null)
            {
                PSTraceSource.NewArgumentNullException("fed.formatEntryInfo");
            }

            WriteStreamType oldWSState = _lo.WriteStream;

            try
            {
                _lo.WriteStream = fed.writeStream;

                if (c == null)
                {
                    ProcessOutOfBandPayload(fed);
                }
                else
                {
                    GroupOutputContext goc = (GroupOutputContext)c;

                    goc.ProcessPayload(fed);
                }
            }
            finally
            {
                _lo.WriteStream = oldWSState;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// callback for Ge processing
        /// </summary>
        /// <param name="ge">Ge notification message</param>
        /// <param name="c">current context, with Gs in it</param>
        private void ProcessGroupEnd(GroupEndData ge, FormatMessagesContextManager.OutputContext c)
        {
            //Console.WriteLine("ProcessGroupEnd");
            GroupOutputContext goc = (GroupOutputContext)c;

            goc.GroupEnd();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// class factory for output context
        /// </summary>
        /// <param name="parentContext">parent context in the stack</param>
        /// <param name="formatInfoData"> fromat info data received from the pipeline</param>
        /// <returns></returns>
        private FormatMessagesContextManager.OutputContext CreateOutputContext(
            FormatMessagesContextManager.OutputContext parentContext,
            FormatInfoData formatInfoData)
        {
            FormatStartData formatStartData = formatInfoData as FormatStartData;

            // initialize the format context
            if (formatStartData != null)
            {
                FormatOutputContext foc = new FormatOutputContext(parentContext, formatStartData);

                return(foc);
            }

            GroupStartData gsd = formatInfoData as GroupStartData;

            // we are starting a group, initialize the group context
            if (gsd != null)
            {
                GroupOutputContext goc = null;

                switch (ActiveFormattingShape)
                {
                case FormatShape.Table:
                {
                    goc = new TableOutputContext(this, parentContext, gsd);
                    break;
                }

                case FormatShape.List:
                {
                    goc = new ListOutputContext(this, parentContext, gsd);
                    break;
                }

                case FormatShape.Wide:
                {
                    goc = new WideOutputContext(this, parentContext, gsd);
                    break;
                }

                case FormatShape.Complex:
                {
                    goc = new ComplexOutputContext(this, parentContext, gsd);
                    break;
                }

                default:
                {
                    Diagnostics.Assert(false, "Invalid shape. This should never happen");
                }
                break;
                }
                goc.Initialize();
                return(goc);
            }

            return(null);
        }
Ejemplo n.º 4
0
        private void ProcessGroupStart(FormatMessagesContextManager.OutputContext c)
        {
            GroupOutputContext context = (GroupOutputContext)c;

            if (context.Data.groupingEntry != null)
            {
                this.lo.WriteLine("");
                ComplexWriter writer = new ComplexWriter();
                writer.Initialize(this.lo, this.lo.ColumnNumber);
                writer.WriteObject(context.Data.groupingEntry.formatValueList);
                this.LineOutput.WriteLine("");
            }
            context.GroupStart();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// callback for Gs processing
        /// </summary>
        /// <param name="c">the context containing the Gs entry</param>
        private void ProcessGroupStart(FormatMessagesContextManager.OutputContext c)
        {
            //Console.WriteLine("ProcessGroupStart");
            GroupOutputContext goc = (GroupOutputContext)c;

            if (goc.Data.groupingEntry != null)
            {
                _lo.WriteLine(string.Empty);

                ComplexWriter writer = new ComplexWriter();
                writer.Initialize(_lo, _lo.ColumnNumber);
                writer.WriteObject(goc.Data.groupingEntry.formatValueList);
            }
            goc.GroupStart();
        }
Ejemplo n.º 6
0
        private FormatMessagesContextManager.OutputContext CreateOutputContext(FormatMessagesContextManager.OutputContext parentContext, FormatInfoData formatInfoData)
        {
            FormatStartData formatData = formatInfoData as FormatStartData;

            if (formatData != null)
            {
                return(new FormatOutputContext(parentContext, formatData));
            }
            GroupStartData data2 = formatInfoData as GroupStartData;

            if (data2 == null)
            {
                return(null);
            }
            GroupOutputContext context2 = null;

            switch (this.ActiveFormattingShape)
            {
            case FormatShape.Table:
                context2 = new TableOutputContext(this, parentContext, data2);
                break;

            case FormatShape.List:
                context2 = new ListOutputContext(this, parentContext, data2);
                break;

            case FormatShape.Wide:
                context2 = new WideOutputContext(this, parentContext, data2);
                break;

            case FormatShape.Complex:
                context2 = new ComplexOutputContext(this, parentContext, data2);
                break;
            }
            context2.Initialize();
            return(context2);
        }