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
MessageImpl.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 System.Text;
20 
21 namespace Lucene.Net.Messages
22 {
23 
24  /// <summary> Default implementation of Message interface.
25  /// For Native Language Support (NLS), system of software internationalization.
26  /// </summary>
27  [Serializable]
28  public class MessageImpl : Message
29  {
30 
31  private const long serialVersionUID = - 3077643314630884523L;
32 
33  private System.String key;
34 
35  private System.Object[] arguments = new System.Object[0];
36 
37  public MessageImpl(System.String key)
38  {
39  this.key = key;
40  }
41 
42  public MessageImpl(System.String key, params System.Object[] args):this(key)
43  {
44  this.arguments = args;
45  }
46 
47  public virtual object[] GetArguments()
48  {
49  return this.arguments;
50  }
51 
52  public virtual string Key
53  {
54  get { return this.key; }
55  }
56 
57  public virtual string GetLocalizedMessage()
58  {
59  return GetLocalizedMessage(System.Threading.Thread.CurrentThread.CurrentCulture);
60  }
61 
62  public virtual string GetLocalizedMessage(System.Globalization.CultureInfo locale)
63  {
64  return NLS.GetLocalizedMessage(Key, locale, GetArguments());
65  }
66 
67  public override string ToString()
68  {
69  System.Object[] args = GetArguments();
70  StringBuilder argsString = new StringBuilder();
71  if (args != null)
72  {
73  for (int i = 0; i < args.Length; i++)
74  {
75  argsString.Append(i == 0 ? " " : ", ").Append(args[i]);
76  }
77  }
78  return argsString.ToString();
79  }
80  }
81 }