Lucene.Net.Analysis.MockAnalyzer.MaybePayload C# (CSharp) Method

MaybePayload() private method

private MaybePayload ( Lucene.Net.Analysis.TokenFilter stream, string fieldName ) : Lucene.Net.Analysis.TokenFilter
stream Lucene.Net.Analysis.TokenFilter
fieldName string
return Lucene.Net.Analysis.TokenFilter
        private TokenFilter MaybePayload(TokenFilter stream, string fieldName)
        {
            lock (this)
            {
                int? val;
                PreviousMappings.TryGetValue(fieldName, out val);
                if (val == null)
                {
                    val = -1; // no payloads
                    if (LuceneTestCase.Rarely(Random))
                    {
                        switch (Random.Next(3))
                        {
                            case 0: // no payloads
                                val = -1;
                                break;

                            case 1: // variable length payload
                                val = int.MaxValue;
                                break;

                            case 2: // fixed length payload
                                val = Random.Next(12);
                                break;
                        }
                    }
                    if (LuceneTestCase.VERBOSE)
                    {
                        if (val == int.MaxValue)
                        {
                            Console.WriteLine("MockAnalyzer: field=" + fieldName + " gets variable length payloads");
                        }
                        else if (val != -1)
                        {
                            Console.WriteLine("MockAnalyzer: field=" + fieldName + " gets fixed length=" + val + " payloads");
                        }
                    }
                    PreviousMappings[fieldName] = val; // save it so we are consistent for this field
                }

                if (val == -1)
                {
                    return stream;
                }
                else if (val == int.MaxValue)
                {
                    return new MockVariableLengthPayloadFilter(Random, stream);
                }
                else
                {
                    return new MockFixedLengthPayloadFilter(Random, stream, (int)val);
                }
            }
        }