private static StatementRow GetRow(EPStatement statement)
        {
            string description   = null;
            string hint          = null;
            var    hintDelimiter = "";
            var    priority      = 0;
            IDictionary <string, string> tags = null;
            var drop = false;

            var annotations = statement.Annotations;

            foreach (var anno in annotations)
            {
                if (anno is HintAttribute hintAttribute)
                {
                    if (hint == null)
                    {
                        hint = "";
                    }

                    hint         += hintDelimiter + hintAttribute.Value;
                    hintDelimiter = ",";
                }
                else if (anno is TagAttribute tagAttribute)
                {
                    if (tags == null)
                    {
                        tags = new Dictionary <string, string>();
                    }

                    tags.Put(tagAttribute.Name, tagAttribute.Value);
                }
                else if (anno is PriorityAttribute priorityAttribute)
                {
                    priority = priorityAttribute.Value;
                }
                else if (anno is DropAttribute)
                {
                    drop = true;
                }
                else if (anno is DescriptionAttribute descriptionAttribute)
                {
                    description = descriptionAttribute.Value;
                }
            }

            return(new StatementRow(
                       statement.DeploymentId,
                       statement.Name,
                       (string)statement.GetProperty(StatementProperty.EPL),
                       statement.UserObjectCompileTime,
                       statement.UserObjectRuntime,
                       description,
                       hint,
                       priority,
                       drop,
                       tags
                       ));
        }