136 * so that when the same string is parsed, it will yield the same components
137 * of the original compound name.
138 *
139 *<h1>Multithreaded Access</h1>
140 * A {@code CompoundName} instance is not synchronized against concurrent
141 * multithreaded access. Multiple threads trying to access and modify a
142 * {@code CompoundName} should lock the object.
143 *
144 * @author Rosanna Lee
145 * @author Scott Seligman
146 * @since 1.3
147 */
148
149 public class CompoundName implements Name {
150
151 /**
152 * Implementation of this compound name.
153 * This field is initialized by the constructors and cannot be null.
154 * It should be treated as a read-only variable by subclasses.
155 */
156 protected transient NameImpl impl;
157 /**
158 * Syntax properties for this compound name.
159 * This field is initialized by the constructors and cannot be null.
160 * It should be treated as a read-only variable by subclasses.
161 * Any necessary changes to mySyntax should be made within constructors
162 * and not after the compound name has been instantiated.
163 */
164 protected transient Properties mySyntax;
165
166 /**
167 * Constructs a new compound name instance using the components
168 * specified in comps and syntax. This protected method is intended
169 * to be used by subclasses of CompoundName when they override
170 * methods such as clone(), getPrefix(), getSuffix().
171 *
172 * @param comps A non-null enumeration of the components to add.
173 * Each element of the enumeration is of class String.
174 * The enumeration will be consumed to extract its
175 * elements.
|
136 * so that when the same string is parsed, it will yield the same components
137 * of the original compound name.
138 *
139 *<h1>Multithreaded Access</h1>
140 * A {@code CompoundName} instance is not synchronized against concurrent
141 * multithreaded access. Multiple threads trying to access and modify a
142 * {@code CompoundName} should lock the object.
143 *
144 * @author Rosanna Lee
145 * @author Scott Seligman
146 * @since 1.3
147 */
148
149 public class CompoundName implements Name {
150
151 /**
152 * Implementation of this compound name.
153 * This field is initialized by the constructors and cannot be null.
154 * It should be treated as a read-only variable by subclasses.
155 */
156 @SuppressWarnings("unexportedinapi")
157 protected transient NameImpl impl;
158 /**
159 * Syntax properties for this compound name.
160 * This field is initialized by the constructors and cannot be null.
161 * It should be treated as a read-only variable by subclasses.
162 * Any necessary changes to mySyntax should be made within constructors
163 * and not after the compound name has been instantiated.
164 */
165 protected transient Properties mySyntax;
166
167 /**
168 * Constructs a new compound name instance using the components
169 * specified in comps and syntax. This protected method is intended
170 * to be used by subclasses of CompoundName when they override
171 * methods such as clone(), getPrefix(), getSuffix().
172 *
173 * @param comps A non-null enumeration of the components to add.
174 * Each element of the enumeration is of class String.
175 * The enumeration will be consumed to extract its
176 * elements.
|