// -----------------------------------------------------------------------
//
// TODO: Update copyright text.
//
// -----------------------------------------------------------------------
namespace Lucene.Net.Support
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
///
/// Extension and static methods for the ICharSequence interface.
///
internal static class CharSequenceExtensions
{
public static bool IsCharSequence(this object value)
{
return value is ICharSequence || value is string || value is IEnumerable;
}
internal static int CreateHashCode(ICharSequence value)
{
int result = 0;
int end = value.Length;
for (int i = 0; i < end; i++)
result = (31 * result) + value.CharAt(i);
return result;
}
internal static bool IsCharSequenceEqual(ICharSequence value, object obj)
{
ICharSequence sequence = obj as ICharSequence;
if (sequence == null)
return false;
if (value.Length != sequence.Length)
return false;
for (int i = 0; i < value.Length; i++)
{
if (value.CharAt(i) != sequence.CharAt(i))
return false;
}
return true;
}
}
}