// ----------------------------------------------------------------------- // // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // // ----------------------------------------------------------------------- namespace Lucene.Net.Util { using System; using System.Collections.Generic; using System.Linq; using System.Text; using Lucene.Net.Support; /// /// The state of an attribute source. /// /// /// /// In the java version this class is AttributeSource.State. However, the type is /// public and does nothing that requires for it to be a nested class. Thus it /// was moved outside of into its own class. /// /// public sealed class AttributeSourceState : ICloneable, ICloneable { /// /// Gets or sets the attribute. /// /// The attribute. public AttributeBase Attribute { get; set; } /// /// Gets or sets the next state. /// /// The next. public AttributeSourceState Next { get; set; } /// /// Fully clones this instance. /// /// an instance of the cloned . public AttributeSourceState Clone() { AttributeSourceState state = new AttributeSourceState { Attribute = this.Attribute.Clone() }; if (this.Next != null) state.Next = this.Next.Clone(); return state; } object ICloneable.Clone() { return this.Clone(); } } }