View Javadoc

1   /*
2    *   Copyright (C) Christian Schulte, 2005-206
3    *   All rights reserved.
4    *
5    *   Redistribution and use in source and binary forms, with or without
6    *   modification, are permitted provided that the following conditions
7    *   are met:
8    *
9    *     o Redistributions of source code must retain the above copyright
10   *       notice, this list of conditions and the following disclaimer.
11   *
12   *     o Redistributions in binary form must reproduce the above copyright
13   *       notice, this list of conditions and the following disclaimer in
14   *       the documentation and/or other materials provided with the
15   *       distribution.
16   *
17   *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
18   *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19   *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
20   *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
21   *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22   *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23   *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24   *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25   *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26   *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27   *
28   *   $JOMC: LocaleType.java 3881 2011-10-24 01:00:55Z schulte2005 $
29   *
30   */
31  package org.jomc.mojo;
32  
33  import org.apache.commons.lang.builder.ToStringBuilder;
34  
35  /**
36   * Datatype holding a {@code language}, {@code country} and {@code variant} property.
37   *
38   * @author <a href="mailto:schulte2005@users.sourceforge.net">Christian Schulte</a>
39   * @version $JOMC: LocaleType.java 3881 2011-10-24 01:00:55Z schulte2005 $
40   * @since 1.2
41   */
42  public class LocaleType implements Cloneable
43  {
44  
45      /** The language. */
46      private String language;
47  
48      /** The country. */
49      private String country;
50  
51      /** The variant. */
52      private String variant;
53  
54      /** Creates a new {@code LocaleType} instance. */
55      public LocaleType()
56      {
57          super();
58      }
59  
60      /**
61       * Gets the value of the {@code language} property.
62       *
63       * @return The value of the {@code language} property.
64       *
65       * @see #setLanguage(java.lang.String)
66       */
67      public final String getLanguage()
68      {
69          return this.language;
70      }
71  
72      /**
73       * Sets the value of the {@code language} property.
74       *
75       * @param value The new value of the {@code language} property or {@code null}.
76       *
77       * @see #getLanguage()
78       */
79      public final void setLanguage( final String value )
80      {
81          this.language = value;
82      }
83  
84      /**
85       * Gets the value of the {@code country} property.
86       *
87       * @return The value of the {@code country} property.
88       *
89       * @see #setCountry(java.lang.String)
90       */
91      public final String getCountry()
92      {
93          return this.country;
94      }
95  
96      /**
97       * Sets the value of the {@code country} property.
98       *
99       * @param value The new value of the {@code country} property or {@code null}.
100      *
101      * @see #getCountry()
102      */
103     public final void setCountry( final String value )
104     {
105         this.country = value;
106     }
107 
108     /**
109      * Gets the value of the {@code variant} property.
110      *
111      * @return The value of the {@code variant} property.
112      *
113      * @see #setVariant(java.lang.String)
114      */
115     public final String getVariant()
116     {
117         return this.variant;
118     }
119 
120     /**
121      * Sets the value of the {@code variant} property.
122      *
123      * @param value The new value of the {@code variant} property or {@code null}.
124      *
125      * @see #getVariant()
126      */
127     public final void setVariant( final String value )
128     {
129         this.variant = value;
130     }
131 
132     /**
133      * Creates and returns a copy of this object.
134      *
135      * @return A copy of this object.
136      */
137     @Override
138     public LocaleType clone()
139     {
140         try
141         {
142             return (LocaleType) super.clone();
143         }
144         catch ( final CloneNotSupportedException e )
145         {
146             throw new AssertionError( e );
147         }
148     }
149 
150     /**
151      * Creates and returns a string representation of the object.
152      *
153      * @return A string representation of the object.
154      */
155     @Override
156     public String toString()
157     {
158         return ToStringBuilder.reflectionToString( this );
159     }
160 
161 }