001/* 002 * Copyright (C) Christian Schulte, 2005-206 003 * All rights reserved. 004 * 005 * Redistribution and use in source and binary forms, with or without 006 * modification, are permitted provided that the following conditions 007 * are met: 008 * 009 * o Redistributions of source code must retain the above copyright 010 * notice, this list of conditions and the following disclaimer. 011 * 012 * o Redistributions in binary form must reproduce the above copyright 013 * notice, this list of conditions and the following disclaimer in 014 * the documentation and/or other materials provided with the 015 * distribution. 016 * 017 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 018 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 019 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 020 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, 021 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 022 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 023 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 024 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 025 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 026 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 027 * 028 * $JOMC: LocaleType.java 4613 2012-09-22 10:07:08Z schulte $ 029 * 030 */ 031package org.jomc.ant.types; 032 033import org.apache.commons.lang.builder.ToStringBuilder; 034 035/** 036 * Datatype holding a {@code language}, {@code country} and {@code variant} property. 037 * 038 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> 039 * @version $JOMC: LocaleType.java 4613 2012-09-22 10:07:08Z schulte $ 040 */ 041public class LocaleType implements Cloneable 042{ 043 044 /** The language. */ 045 private String language; 046 047 /** The country. */ 048 private String country; 049 050 /** The variant. */ 051 private String variant; 052 053 /** Creates a new {@code LocaleType} instance. */ 054 public LocaleType() 055 { 056 super(); 057 } 058 059 /** 060 * Gets the value of the {@code language} property. 061 * 062 * @return The value of the {@code language} property. 063 * 064 * @see #setLanguage(java.lang.String) 065 */ 066 public final String getLanguage() 067 { 068 return this.language; 069 } 070 071 /** 072 * Sets the value of the {@code language} property. 073 * 074 * @param value The new value of the {@code language} property or {@code null}. 075 * 076 * @see #getLanguage() 077 */ 078 public final void setLanguage( final String value ) 079 { 080 this.language = value; 081 } 082 083 /** 084 * Gets the value of the {@code country} property. 085 * 086 * @return The value of the {@code country} property. 087 * 088 * @see #setCountry(java.lang.String) 089 */ 090 public final String getCountry() 091 { 092 return this.country; 093 } 094 095 /** 096 * Sets the value of the {@code country} property. 097 * 098 * @param value The new value of the {@code country} property or {@code null}. 099 * 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}