示例#1
0
 /// <summary>Ctor. </summary>
 /// <param name="streamSelector">selects the stream</param>
 /// <param name="selectList">is a list of elements in the select-clause</param>
 protected SelectClause(
     StreamSelector streamSelector,
     List <SelectClauseElement> selectList)
 {
     _streamSelector = streamSelector;
     _selectList     = selectList;
 }
示例#2
0
        /// <summary>Renders the clause in textual representation. </summary>
        /// <param name="writer">to output to</param>
        /// <param name="formatter">for NewLine-whitespace formatting</param>
        /// <param name="isTopLevel">to indicate if this insert-into-clause is inside other clauses.</param>
        public void ToEPL(
            TextWriter writer,
            EPStatementFormatter formatter,
            bool isTopLevel)
        {
            formatter.BeginInsertInto(writer, isTopLevel);
            writer.Write("insert ");
            if (StreamSelector != StreamSelector.ISTREAM_ONLY)
            {
                writer.Write(StreamSelector.GetEPL());
                writer.Write(" ");
            }

            writer.Write("into ");
            writer.Write(StreamName);

            if (ColumnNames.Count > 0)
            {
                writer.Write("(");
                string delimiter = "";
                foreach (var name in ColumnNames)
                {
                    writer.Write(delimiter);
                    writer.Write(name);
                    delimiter = ", ";
                }

                writer.Write(")");
            }
        }
示例#3
0
        /// <summary>Creates a wildcard select-clause, additional expressions can still be added. </summary>
        /// <param name="streamSelector">can be used to select insert or remove streams</param>
        /// <returns>select-clause</returns>
        public static SelectClause CreateWildcard(StreamSelector streamSelector)
        {
            var selectList = new List <SelectClauseElement>();

            selectList.Add(new SelectClauseWildcard());
            return(new SelectClause(streamSelector, selectList));
        }
示例#4
0
 /// <summary>Creates the insert-into clause. </summary>
 /// <param name="streamName">the name of the stream to insert into</param>
 /// <param name="columns">is a list of column names</param>
 /// <param name="streamSelector">selects the stream</param>
 /// <returns>clause</returns>
 public static InsertIntoClause Create(string streamName, string[] columns, StreamSelector streamSelector)
 {
     if (streamSelector == StreamSelector.RSTREAM_ISTREAM_BOTH)
     {
         throw new ArgumentException("Insert into only allows istream or rstream selection, not both");
     }
     return(new InsertIntoClause(streamName, columns, streamSelector));
 }
示例#5
0
 /// <summary>Ctor. </summary>
 /// <param name="streamName">is the stream name to insert into</param>
 /// <param name="columnNames">column names</param>
 /// <param name="streamSelector">selector for either insert stream (the default) or remove stream or both</param>
 public InsertIntoClause(
     string streamName,
     IList <string> columnNames,
     StreamSelector streamSelector)
 {
     StreamSelector = streamSelector;
     StreamName     = streamName;
     ColumnNames    = columnNames;
 }
示例#6
0
        /// <summary>Creates a select-clause consisting of a list of property names. </summary>
        /// <param name="propertyNames">is the names of properties to select</param>
        /// <param name="streamSelector">can be used to select insert or remove streams</param>
        /// <returns>select-clause</returns>
        public static SelectClause Create(StreamSelector streamSelector,
                                          params String[] propertyNames)
        {
            var selectList = new List <SelectClauseElement>();

            foreach (String name in propertyNames)
            {
                selectList.Add(new SelectClauseExpression(new PropertyValueExpression(name)));
            }
            return(new SelectClause(streamSelector, selectList));
        }
示例#7
0
        /// <summary>Maps the SODA-selector to the internal representation</summary>
        /// <param name="selector">is the SODA-selector to map</param>
        /// <returns>internal stream selector</returns>
        public static SelectClauseStreamSelectorEnum MapFromSODA(this StreamSelector selector)
        {
            switch (selector)
            {
            case StreamSelector.ISTREAM_ONLY:
                return(SelectClauseStreamSelectorEnum.ISTREAM_ONLY);

            case StreamSelector.RSTREAM_ONLY:
                return(SelectClauseStreamSelectorEnum.RSTREAM_ONLY);

            case StreamSelector.RSTREAM_ISTREAM_BOTH:
                return(SelectClauseStreamSelectorEnum.RSTREAM_ISTREAM_BOTH);

            default:
                throw new ArgumentException("Invalid selector '" + selector + "' encountered");
            }
        }
示例#8
0
        public static string GetEPL(this StreamSelector enumValue)
        {
            switch (enumValue)
            {
                case StreamSelector.RSTREAM_ONLY:
                    return "rstream";

                case StreamSelector.ISTREAM_ONLY:
                    return "istream";

                case StreamSelector.RSTREAM_ISTREAM_BOTH:
                    return "irstream";

                default:
                    throw new ArgumentException("invalid value for enum value", nameof(enumValue));
            }
        }
示例#9
0
 /// <summary>Creates an empty select-clause. </summary>
 /// <param name="streamSelector">can be used to select insert or remove streams</param>
 /// <returns>select-clause</returns>
 public static SelectClause Create(StreamSelector streamSelector)
 {
     return(new SelectClause(streamSelector, new List <SelectClauseElement>()));
 }
示例#10
0
 /// <summary>Sets the stream selector. </summary>
 /// <param name="streamSelector">stream selector to set</param>
 public SelectClause SetStreamSelector(StreamSelector streamSelector)
 {
     _streamSelector = streamSelector;
     return(this);
 }
示例#11
0
 // Constructor
 internal AudioStreamSwitcher(ItvApp.AddIn addin)
 {
     _streamSelector = addin.StreamSelector;
     _audioStreams   = new List <StreamInfo>();
 }