// -----------------------------------------------------------------------
//
//
// 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();
}
}
}