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 4613 2012-09-22 10:07:08Z schulte $ 29 * 30 */ 31 package org.jomc.ant.types; 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 4613 2012-09-22 10:07:08Z schulte $ 40 */ 41 public class LocaleType implements Cloneable 42 { 43 44 /** The language. */ 45 private String language; 46 47 /** The country. */ 48 private String country; 49 50 /** The variant. */ 51 private String variant; 52 53 /** Creates a new {@code LocaleType} instance. */ 54 public LocaleType() 55 { 56 super(); 57 } 58 59 /** 60 * Gets the value of the {@code language} property. 61 * 62 * @return The value of the {@code language} property. 63 * 64 * @see #setLanguage(java.lang.String) 65 */ 66 public final String getLanguage() 67 { 68 return this.language; 69 } 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 /** 84 * Gets the value of the {@code country} property. 85 * 86 * @return The value of the {@code country} property. 87 * 88 * @see #setCountry(java.lang.String) 89 */ 90 public final String getCountry() 91 { 92 return this.country; 93 } 94 95 /** 96 * Sets the value of the {@code country} property. 97 * 98 * @param value The new value of the {@code country} property or {@code null}. 99 * 100 * @see #getCountry() 101 */ 102 public final void setCountry( final String value ) 103 { 104 this.country = value; 105 } 106 107 /** 108 * Gets the value of the {@code variant} property. 109 * 110 * @return The value of the {@code variant} property. 111 * 112 * @see #setVariant(java.lang.String) 113 */ 114 public final String getVariant() 115 { 116 return this.variant; 117 } 118 119 /** 120 * Sets the value of the {@code variant} property. 121 * 122 * @param value The new value of the {@code variant} property or {@code null}. 123 * 124 * @see #getVariant() 125 */ 126 public final void setVariant( final String value ) 127 { 128 this.variant = value; 129 } 130 131 /** 132 * Creates and returns a copy of this object. 133 * 134 * @return A copy of this object. 135 */ 136 @Override 137 public LocaleType clone() 138 { 139 try 140 { 141 return (LocaleType) super.clone(); 142 } 143 catch ( final CloneNotSupportedException e ) 144 { 145 throw new AssertionError( e ); 146 } 147 } 148 149 /** 150 * Creates and returns a string representation of the object. 151 * 152 * @return A string representation of the object. 153 */ 154 @Override 155 public String toString() 156 { 157 return ToStringBuilder.reflectionToString( this ); 158 } 159 160 }