Lucene.Net.Util.LuceneTestCase.NewField C# (CSharp) Method

NewField() public method

LUCENENET specific Is non-static because OLD_FORMAT_IMPERSONATION_IS_ACTIVE is now non-static.
public NewField ( Random random, string name, string value, FieldType type ) : Field
random Random
name string
value string
type FieldType
return Field
        public Field NewField(Random random, string name, string value, FieldType type)
        {
            name = new string(name.ToCharArray());
            if (Usually(random) || !type.Indexed)
            {
                // most of the time, don't modify the params
                return new Field(name, value, type);
            }

            // TODO: once all core & test codecs can index
            // offsets, sometimes randomly turn on offsets if we are
            // already indexing positions...

            FieldType newType = new FieldType(type);
            if (!newType.Stored && random.NextBoolean())
            {
                newType.Stored = true; // randomly store it
            }

            if (!newType.StoreTermVectors && random.NextBoolean())
            {
                newType.StoreTermVectors = true;
                if (!newType.StoreTermVectorOffsets)
                {
                    newType.StoreTermVectorOffsets = random.NextBoolean();
                }
                if (!newType.StoreTermVectorPositions)
                {
                    newType.StoreTermVectorPositions = random.NextBoolean();

                    if (newType.StoreTermVectorPositions && !newType.StoreTermVectorPayloads && !OLD_FORMAT_IMPERSONATION_IS_ACTIVE)
                    {
                        newType.StoreTermVectorPayloads = random.NextBoolean();
                    }
                }
            }

            // TODO: we need to do this, but smarter, ie, most of
            // the time we set the same value for a given field but
            // sometimes (rarely) we change it up:
            /*
		        if (newType.OmitsNorms()) {
		          newType.setOmitNorms(random.NextBoolean());
		        }
		    */

            return new Field(name, value, newType);
        }

Same methods

LuceneTestCase::NewField ( string name, string value, FieldType type ) : Field