Lucene.Net  3.0.3
Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Pages
TypeAttribute.cs
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 using System;
19 using Attribute = Lucene.Net.Util.Attribute;
20 
21 namespace Lucene.Net.Analysis.Tokenattributes
22 {
23 
24  /// <summary> A Token's lexical type. The Default value is "word". </summary>
25  [Serializable]
26  public class TypeAttribute:Attribute, ITypeAttribute, System.ICloneable
27  {
28  private System.String type;
29  public const System.String DEFAULT_TYPE = "word";
30 
31  public TypeAttribute():this(DEFAULT_TYPE)
32  {
33  }
34 
35  public TypeAttribute(System.String type)
36  {
37  this.type = type;
38  }
39 
40  /// <summary>Returns this Token's lexical type. Defaults to "word". </summary>
41  public virtual string Type
42  {
43  get { return type; }
44  set { this.type = value; }
45  }
46 
47  public override void Clear()
48  {
49  type = DEFAULT_TYPE;
50  }
51 
52  public override bool Equals(System.Object other)
53  {
54  if (other == this)
55  {
56  return true;
57  }
58 
59  if (other is TypeAttribute)
60  {
61  return type.Equals(((TypeAttribute) other).type);
62  }
63 
64  return false;
65  }
66 
67  public override int GetHashCode()
68  {
69  return type.GetHashCode();
70  }
71 
72  public override void CopyTo(Attribute target)
73  {
74  ITypeAttribute t = (ITypeAttribute) target;
75  t.Type = type;
76  }
77 
78  override public System.Object Clone()
79  {
80  TypeAttribute impl = new TypeAttribute();
81  impl.type = type;
82  return impl;
83  }
84  }
85 }