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 3881 2011-10-24 01:00:55Z schulte2005 $ 029 * 030 */ 031 package org.jomc.mojo; 032 033 import 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:schulte2005@users.sourceforge.net">Christian Schulte</a> 039 * @version $JOMC: LocaleType.java 3881 2011-10-24 01:00:55Z schulte2005 $ 040 * @since 1.2 041 */ 042 public class LocaleType implements Cloneable 043 { 044 045 /** The language. */ 046 private String language; 047 048 /** The country. */ 049 private String country; 050 051 /** The variant. */ 052 private String variant; 053 054 /** Creates a new {@code LocaleType} instance. */ 055 public LocaleType() 056 { 057 super(); 058 } 059 060 /** 061 * Gets the value of the {@code language} property. 062 * 063 * @return The value of the {@code language} property. 064 * 065 * @see #setLanguage(java.lang.String) 066 */ 067 public final String getLanguage() 068 { 069 return this.language; 070 } 071 072 /** 073 * Sets the value of the {@code language} property. 074 * 075 * @param value The new value of the {@code language} property or {@code null}. 076 * 077 * @see #getLanguage() 078 */ 079 public final void setLanguage( final String value ) 080 { 081 this.language = value; 082 } 083 084 /** 085 * Gets the value of the {@code country} property. 086 * 087 * @return The value of the {@code country} property. 088 * 089 * @see #setCountry(java.lang.String) 090 */ 091 public final String getCountry() 092 { 093 return this.country; 094 } 095 096 /** 097 * Sets the value of the {@code country} property. 098 * 099 * @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 }