protected internal override object CreateValue(IndexReader reader, object entryKey)
            {
                Entry entry = (Entry)entryKey;

                System.String field  = entry.field;
                IntParser     parser = (IntParser)entry.custom;

                int[]    retArray = new int[reader.MaxDoc()];
                TermDocs termDocs = reader.TermDocs();
                TermEnum termEnum = reader.Terms(new Term(field));

                try
                {
                    do
                    {
                        Term term = termEnum.Term();
                        if (term == null || (object)term.Field() != (object)field)
                        {
                            break;
                        }
                        int termval = parser.ParseInt(term.Text());
                        termDocs.Seek(termEnum);
                        while (termDocs.Next())
                        {
                            retArray[termDocs.Doc()] = termval;
                        }
                    }while (termEnum.Next());
                }
                finally
                {
                    termDocs.Close();
                    termEnum.Close();
                }
                return(retArray);
            }
Example #2
0
            protected internal override System.Object CreateValue(IndexReader reader, Entry entryKey)
            {
                Entry entry = (Entry)entryKey;

                System.String field  = entry.field;
                IntParser     parser = (IntParser)entry.custom;

                if (parser == null)
                {
                    try
                    {
                        return(wrapper.GetInts(reader, field, Lucene.Net.Search.FieldCache_Fields.DEFAULT_INT_PARSER));
                    }
                    catch (System.FormatException ne)
                    {
                        return(wrapper.GetInts(reader, field, Lucene.Net.Search.FieldCache_Fields.NUMERIC_UTILS_INT_PARSER));
                    }
                }
                int[]    retArray = null;
                TermDocs termDocs = reader.TermDocs();
                TermEnum termEnum = reader.Terms(new Term(field));

                try
                {
                    do
                    {
                        Term term = termEnum.Term();
                        if (term == null || (System.Object)term.Field() != (System.Object)field)
                        {
                            break;
                        }
                        int termval = parser.ParseInt(term.Text());
                        if (retArray == null)
                        {
                            // late init
                            retArray = new int[reader.MaxDoc()];
                        }
                        termDocs.Seek(termEnum);
                        while (termDocs.Next())
                        {
                            retArray[termDocs.Doc()] = termval;
                        }
                    }while (termEnum.Next());
                }
                catch (StopFillCacheException stop)
                {
                }
                finally
                {
                    termDocs.Close();
                    termEnum.Close();
                }
                if (retArray == null)
                {
                    // no values
                    retArray = new int[reader.MaxDoc()];
                }
                return(retArray);
            }
Example #3
0
        public void ParseInt_GivenStringNumberToLargeInt_ShouldIntSizeException(string number)
        {
            //Arrange
            var inputString = number;
            // Act
            Action actual = () => IntParser.ParseInt(inputString);

            // Assert
            Assert.Throws <IntSizeException>(actual);
        }
Example #4
0
        public void ParseInt_GivenIncorrectStringNumber_ShouldIntFormatException()
        {
            //Arrange
            var inputString = "12Fr444";
            // Act
            Action actual = () => IntParser.ParseInt(inputString);

            // Assert
            Assert.Throws <IntFormatException>(actual);
        }
Example #5
0
        public void ParseInt_GivenNull_ArgumentNullException()
        {
            //Arrange
            string inputString = null;
            // Act
            Action actual = () => IntParser.ParseInt(inputString);

            // Assert
            Assert.Throws <ArgumentNullException>(actual);
        }
Example #6
0
 // inherit javadocs
 public virtual int[] GetInts(IndexReader reader, System.String field, IntParser parser)
 {
     field = String.Intern(field);
     System.Object ret = Lookup(reader, field, parser);
     if (ret == null)
     {
         int[] retArray = new int[reader.MaxDoc()];
         if (retArray.Length > 0)
         {
             TermDocs termDocs = reader.TermDocs();
             TermEnum termEnum = reader.Terms(new Term(field, ""));
             try
             {
                 if (termEnum.Term() == null)
                 {
                     throw new System.SystemException("no terms in field " + field);
                 }
                 do
                 {
                     Term term = termEnum.Term();
                     if (term.Field() != field)
                     {
                         break;
                     }
                     int termval = parser.ParseInt(term.Text());
                     termDocs.Seek(termEnum);
                     while (termDocs.Next())
                     {
                         retArray[termDocs.Doc()] = termval;
                     }
                 }while (termEnum.Next());
             }
             finally
             {
                 termDocs.Close();
                 termEnum.Close();
             }
         }
         Store(reader, field, parser, retArray);
         return(retArray);
     }
     return((int[])ret);
 }
Example #7
0
        public void ParseInt_GivenStringNumber_ParseToIntNumber(string value, int expected)
        {
            var actual = IntParser.ParseInt(value);

            Assert.Equal(expected, actual);
        }
Example #8
0
		// inherit javadocs
		public virtual int[] GetInts(IndexReader reader, System.String field, IntParser parser)
		{
			field = String.Intern(field);
			System.Object ret = Lookup(reader, field, parser);
			if (ret == null)
			{
				int[] retArray = new int[reader.MaxDoc()];
				if (retArray.Length > 0)
				{
					TermDocs termDocs = reader.TermDocs();
					TermEnum termEnum = reader.Terms(new Term(field, ""));
					try
					{
						if (termEnum.Term() == null)
						{
							throw new System.SystemException("no terms in field " + field);
						}
						do 
						{
							Term term = termEnum.Term();
							if (term.Field() != field)
								break;
							int termval = parser.ParseInt(term.Text());
							termDocs.Seek(termEnum);
							while (termDocs.Next())
							{
								retArray[termDocs.Doc()] = termval;
							}
						}
						while (termEnum.Next());
					}
					finally
					{
						termDocs.Close();
						termEnum.Close();
					}
				}
				Store(reader, field, parser, retArray);
				return retArray;
			}
			return (int[]) ret;
		}