private void AddCustomFields(Document luceneDocument)
        {
            var customProperties = programElement.GetCustomProperties();

            foreach (var customProperty in customProperties)
            {
                luceneDocument.Add(new Field(customProperty.Name, customProperty.GetValue(programElement, null) as string, Field.Store.YES, Field.Index.ANALYZED));
            }
        }
示例#2
0
        public static SandoDocument Create(ProgramElement programElement)
        {
            Contract.Requires(programElement != null, "DocumentFactory:Create - programElement cannot be null!");
            Contract.Ensures(Contract.Result<SandoDocument>() != null, "DocumentFactory:Create - an object must be returned from this method!");

            if(programElement as ClassElement != null)
            {
                return new ClassDocument(programElement as ClassElement);
            }
            if(programElement as CommentElement != null)
            {
                return new CommentDocument(programElement as CommentElement);
            }
            if(programElement as EnumElement != null)
            {
                return new EnumDocument(programElement as EnumElement);
            }
            if(programElement as FieldElement != null)
            {
                return new FieldDocument(programElement as FieldElement);
            }
            if(programElement as MethodElement != null)
            {
                return new MethodDocument(programElement as MethodElement);
            }
            if(programElement as MethodPrototypeElement != null)
            {
                return new MethodPrototypeDocument(programElement as MethodPrototypeElement);
            }
            if(programElement as PropertyElement != null)
            {
                return new PropertyDocument(programElement as PropertyElement);
            }
            if (programElement as StructElement != null)
            {
                return new StructDocument(programElement as StructElement);
            }
            if(programElement as TextFileElement != null)
            {
                return new TextFileDocument(programElement as TextFileElement);
            }
            if (programElement as XmlXElement!= null)
            {
                return new XmlXElementDocument(programElement as XmlXElement);
            }

            if(programElement.GetCustomProperties().Count>0)
            {
                return new SandoDocument(programElement);
            }

            //if this code is reached, contract will fail
            return null;
        }
示例#3
0
        public static SandoDocument Create(ProgramElement programElement)
        {
            Contract.Requires(programElement != null, "DocumentFactory:Create - programElement cannot be null!");
            Contract.Ensures(Contract.Result <SandoDocument>() != null, "DocumentFactory:Create - an object must be returned from this method!");

            if (programElement as ClassElement != null)
            {
                return(new ClassDocument(programElement as ClassElement));
            }
            if (programElement as CommentElement != null)
            {
                return(new CommentDocument(programElement as CommentElement));
            }
            if (programElement as EnumElement != null)
            {
                return(new EnumDocument(programElement as EnumElement));
            }
            if (programElement as FieldElement != null)
            {
                return(new FieldDocument(programElement as FieldElement));
            }
            if (programElement as MethodElement != null)
            {
                return(new MethodDocument(programElement as MethodElement));
            }
            if (programElement as MethodPrototypeElement != null)
            {
                return(new MethodPrototypeDocument(programElement as MethodPrototypeElement));
            }
            if (programElement as PropertyElement != null)
            {
                return(new PropertyDocument(programElement as PropertyElement));
            }
            if (programElement as StructElement != null)
            {
                return(new StructDocument(programElement as StructElement));
            }
            if (programElement as TextLineElement != null)
            {
                return(new TextLineDocument(programElement as TextLineElement));
            }
            if (programElement as XmlXElement != null)
            {
                return(new XmlXElementDocument(programElement as XmlXElement));
            }

            if (programElement.GetCustomProperties().Count > 0)
            {
                return(new SandoDocument(programElement));
            }

            //if this code is reached, contract will fail
            return(null);
        }
示例#4
0
        public static IEnumerable <String> ExtractElementWords(ProgramElement element)
        {
            var list = new List <string>();

            if (element as ClassElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractClassWords(element as ClassElement));
                return(list);
            }
            if (element as CommentElement != null)
            {
                list.AddRange(ExtractCommentWords(element as CommentElement));
                return(list);
            }
            if (element as FieldElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractFieldWords(element as FieldElement));
                return(list);
            }
            if (element as MethodElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractMethodWords(element as MethodElement));
                return(list);
            }
            if (element as MethodPrototypeElement != null)
            {
                list.AddRange(ExtractMethodPrototypeWords(element as MethodPrototypeElement));
                return(list);
            }
            if (element as PropertyElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractPropertyWords(element as PropertyElement));
                return(list);
            }
            if (element as StructElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractStructWords(element as StructElement));
                return(list);
            }
            if (element as TextLineElement != null)
            {
                list.AddRange(ExtractTextLineElement(element as TextLineElement));
                return(list);
            }
            if (element as XmlXElement != null)
            {
                list.AddRange(ExtractXmlWords(element as XmlXElement));
                return(list);
            }

            if (element.GetCustomProperties().Count > 0)
            {
                list.AddRange(ExtractUnknownElementWords(element));
                return(list);
            }
            list.Clear();
            return(list);
        }
示例#5
0
        public static IEnumerable<String> ExtractElementWords(ProgramElement element)
        {
            var list = new List<string>();

            if (element as ClassElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractClassWords(element as ClassElement));
                return list;
            }
            if (element as CommentElement != null)
            {
                list.AddRange(ExtractCommentWords(element as CommentElement));
                return list;
            }
            if (element as FieldElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractFieldWords(element as FieldElement));
                return list;
            }
            if (element as MethodElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractMethodWords(element as MethodElement));
                return list;
            }
            if (element as MethodPrototypeElement != null)
            {
                list.AddRange(ExtractMethodPrototypeWords(element as MethodPrototypeElement));
                return list;
            }
            if (element as PropertyElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractPropertyWords(element as PropertyElement));
                return list;
            }
            if (element as StructElement != null)
            {
                AddElementName(element, list);
                list.AddRange(ExtractStructWords(element as StructElement));
                return list;
            }
            if (element as TextFileElement != null)
            {
                list.AddRange(ExtractTextLineElement(element as TextFileElement));
                return list;
            }
            if (element as XmlXElement != null)
            {
                list.AddRange(ExtractXmlWords(element as XmlXElement));
                return list;
            }

            if (element.GetCustomProperties().Count > 0)
            {
                list.AddRange(ExtractUnknownElementWords(element));
                return list;
            }
            list.Clear();
            return list;
        }