protected internal AbstractField(System.String name, Field.Store store, Field.Index index, Field.TermVector termVector)
		{
			if (name == null)
				throw new System.NullReferenceException("name cannot be null");
			this.internalName = StringHelper.Intern(name); // field names are interned

		    this.internalIsStored = store.IsStored();
		    this.internalIsIndexed = index.IsIndexed();
		    this.internalIsTokenized = index.IsAnalyzed();
		    this.internalOmitNorms = index.OmitNorms();
			
			this.internalIsBinary = false;
			
			SetStoreTermVector(termVector);
		}
		private bool CanCreateFieldsForNestedArray(object value, Field.Index fieldIndexingOptions)
		{
			if (!fieldIndexingOptions.IsAnalyzed())
			{
				return true;
			}

			if (value == null || value is DynamicNullObject)
			{
				return false;
			}

			return true;
		}