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.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:cs@schulte.it">Christian Schulte</a> 39 * @version $JOMC: LocaleType.java 5043 2015-05-27 07:03:39Z schulte $ 40 * @since 1.2 41 */ 42 public class LocaleType implements Cloneable 43 { 44 45 /** 46 * The language. 47 */ 48 private String language; 49 50 /** 51 * The country. 52 */ 53 private String country; 54 55 /** 56 * The variant. 57 */ 58 private String variant; 59 60 /** 61 * Creates a new {@code LocaleType} instance. 62 */ 63 public LocaleType() 64 { 65 super(); 66 } 67 68 /** 69 * Gets the value of the {@code language} property. 70 * 71 * @return The value of the {@code language} property. 72 * 73 * @see #setLanguage(java.lang.String) 74 */ 75 public final String getLanguage() 76 { 77 return this.language; 78 } 79 80 /** 81 * Sets the value of the {@code language} property. 82 * 83 * @param value The new value of the {@code language} property or {@code null}. 84 * 85 * @see #getLanguage() 86 */ 87 public final void setLanguage( final String value ) 88 { 89 this.language = value; 90 } 91 92 /** 93 * Gets the value of the {@code country} property. 94 * 95 * @return The value of the {@code country} property. 96 * 97 * @see #setCountry(java.lang.String) 98 */ 99 public final String getCountry() 100 { 101 return this.country; 102 } 103 104 /** 105 * Sets the value of the {@code country} property. 106 * 107 * @param value The new value of the {@code country} property or {@code null}. 108 * 109 * @see #getCountry() 110 */ 111 public final void setCountry( final String value ) 112 { 113 this.country = value; 114 } 115 116 /** 117 * Gets the value of the {@code variant} property. 118 * 119 * @return The value of the {@code variant} property. 120 * 121 * @see #setVariant(java.lang.String) 122 */ 123 public final String getVariant() 124 { 125 return this.variant; 126 } 127 128 /** 129 * Sets the value of the {@code variant} property. 130 * 131 * @param value The new value of the {@code variant} property or {@code null}. 132 * 133 * @see #getVariant() 134 */ 135 public final void setVariant( final String value ) 136 { 137 this.variant = value; 138 } 139 140 /** 141 * Creates and returns a copy of this object. 142 * 143 * @return A copy of this object. 144 */ 145 @Override 146 public LocaleType clone() 147 { 148 try 149 { 150 return (LocaleType) super.clone(); 151 } 152 catch ( final CloneNotSupportedException e ) 153 { 154 throw new AssertionError( e ); 155 } 156 } 157 158 /** 159 * Creates and returns a string representation of the object. 160 * 161 * @return A string representation of the object. 162 */ 163 @Override 164 public String toString() 165 { 166 return ToStringBuilder.reflectionToString( this ); 167 } 168 169 }