LocaleType.java

  1. /*
  2.  *   Copyright (C) Christian Schulte <cs@schulte.it>, 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 5043 2015-05-27 07:03:39Z schulte $
  29.  *
  30.  */
  31. package org.jomc.ant.types;

  32. import org.apache.commons.lang.builder.ToStringBuilder;

  33. /**
  34.  * Datatype holding a {@code language}, {@code country} and {@code variant} property.
  35.  *
  36.  * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
  37.  * @version $JOMC: LocaleType.java 5043 2015-05-27 07:03:39Z schulte $
  38.  */
  39. public class LocaleType implements Cloneable
  40. {

  41.     /**
  42.      * The language.
  43.      */
  44.     private String language;

  45.     /**
  46.      * The country.
  47.      */
  48.     private String country;

  49.     /**
  50.      * The variant.
  51.      */
  52.     private String variant;

  53.     /**
  54.      * Creates a new {@code LocaleType} instance.
  55.      */
  56.     public LocaleType()
  57.     {
  58.         super();
  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.      * Sets the value of the {@code language} property.
  73.      *
  74.      * @param value The new value of the {@code language} property or {@code null}.
  75.      *
  76.      * @see #getLanguage()
  77.      */
  78.     public final void setLanguage( final String value )
  79.     {
  80.         this.language = value;
  81.     }

  82.     /**
  83.      * Gets the value of the {@code country} property.
  84.      *
  85.      * @return The value of the {@code country} property.
  86.      *
  87.      * @see #setCountry(java.lang.String)
  88.      */
  89.     public final String getCountry()
  90.     {
  91.         return this.country;
  92.     }

  93.     /**
  94.      * Sets the value of the {@code country} property.
  95.      *
  96.      * @param value The new value of the {@code country} property or {@code null}.
  97.      *
  98.      * @see #getCountry()
  99.      */
  100.     public final void setCountry( final String value )
  101.     {
  102.         this.country = value;
  103.     }

  104.     /**
  105.      * Gets the value of the {@code variant} property.
  106.      *
  107.      * @return The value of the {@code variant} property.
  108.      *
  109.      * @see #setVariant(java.lang.String)
  110.      */
  111.     public final String getVariant()
  112.     {
  113.         return this.variant;
  114.     }

  115.     /**
  116.      * Sets the value of the {@code variant} property.
  117.      *
  118.      * @param value The new value of the {@code variant} property or {@code null}.
  119.      *
  120.      * @see #getVariant()
  121.      */
  122.     public final void setVariant( final String value )
  123.     {
  124.         this.variant = value;
  125.     }

  126.     /**
  127.      * Creates and returns a copy of this object.
  128.      *
  129.      * @return A copy of this object.
  130.      */
  131.     @Override
  132.     public LocaleType clone()
  133.     {
  134.         try
  135.         {
  136.             return (LocaleType) super.clone();
  137.         }
  138.         catch ( final CloneNotSupportedException e )
  139.         {
  140.             throw new AssertionError( e );
  141.         }
  142.     }

  143.     /**
  144.      * Creates and returns a string representation of the object.
  145.      *
  146.      * @return A string representation of the object.
  147.      */
  148.     @Override
  149.     public String toString()
  150.     {
  151.         return ToStringBuilder.reflectionToString( this );
  152.     }

  153. }