1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
/* * @(#)TextSyntax.java 1.8 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package javax.print.attribute; import java.io.Serializable; import java.util.Locale; /** * Class TextSyntax is an abstract base class providing the common * implementation of all attributes whose value is a string. The text attribute * includes a locale to indicate the natural language. Thus, a text attribute * always represents a localized string. Once constructed, a text attribute's * value is immutable. * <P> * * @author David Mendenhall * @author Alan Kaminsky */ public abstract class TextSyntax implements Serializable, Cloneable { private static final long serialVersionUID = -8130648736378144102L; /** * String value of this text attribute. * @serial */ private String value; /** * Locale of this text attribute. * @serial */ private Locale locale; /** * Constructs a TextAttribute with the specified string and locale. * * @param value Text string. * @param locale Natural language of the text string. null * is interpreted to mean the default locale for as returned * by <code>Locale.getDefault()</code> * * @exception NullPointerException * (unchecked exception) Thrown if <CODE>value</CODE> is null. */ protected TextSyntax(String value, Locale locale) { this.value = verify (value); this.locale = verify (locale); } private static String verify(String value) { if (value == null) { throw new NullPointerException(" value is null"); } return value; } private static Locale verify(Locale locale) { if (locale == null) { return Locale.getDefault(); } return locale; } /** * Returns this text attribute's text string. * @return the text string. */ public String getValue() { return value; } /** * Returns this text attribute's text string's natural language (locale). * @return the locale */ public Locale getLocale() { return locale; } /** * Returns a hashcode for this text attribute. * * @return A hashcode value for this object. */ public int hashCode() { return value.hashCode() ^ locale.hashCode(); } /** * Returns whether this text attribute is equivalent to the passed in * object. To be equivalent, all of the following conditions must be true: * <OL TYPE=1> * <LI> * <CODE>object</CODE> is not null. * <LI> * <CODE>object</CODE> is an instance of class TextSyntax. * <LI> * This text attribute's underlying string and <CODE>object</CODE>'s * underlying string are equal. * <LI> * This text attribute's locale and <CODE>object</CODE>'s locale are * equal. * </OL> * * @param object Object to compare to. * * @return True if <CODE>object</CODE> is equivalent to this text * attribute, false otherwise. */ public boolean equals(Object object) { return(object != null && object instanceof TextSyntax && this.value.equals (((TextSyntax) object).value) && this.locale.equals (((TextSyntax) object).locale)); } /** * Returns a String identifying this text attribute. The String is * the attribute's underlying text string. * * @return A String identifying this object. */ public String toString(){ return value; } }