001package org.unix4j.unix.xargs;
002
003import java.util.Arrays;
004import java.util.Collections;
005import java.util.EnumSet;
006import java.util.Iterator;
007import org.unix4j.option.Option;
008
009import org.unix4j.unix.Xargs;
010
011/**
012 * Option sets for the {@link Xargs xargs} command with 
013 * the following options: {@link #z z}, {@link #x x}, {@link #r r}, {@link #t t}.
014 * <p>
015 * Application code does normally not directly refer to this class;
016 * {@link Xargs#Options} should be used instead to specify command 
017 * options. See also {@link org.unix4j.unix.xargs.XargsOptions} for more information.
018 */
019public enum XargsOptionSet_rtxz implements XargsOptions {
020        /** Option set with the following active options: {@link #delimiter0 z}, {@link #exactArgs x}, {@link #noRunIfEmpty r}, {@link #verbose t}.*/
021        Active_rtxz(
022                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
023                true, 
024                /*active:*/XargsOption.delimiter0, XargsOption.exactArgs, XargsOption.noRunIfEmpty, XargsOption.verbose
025        ),
026        /** Option set with the following active options: {@link #delimiter0 z}, {@link #exactArgs x}, {@link #noRunIfEmpty r}, {@link #verbose t}.*/
027        Active_rtxz_long(
028                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
029                false, 
030                /*active:*/XargsOption.delimiter0, XargsOption.exactArgs, XargsOption.noRunIfEmpty, XargsOption.verbose
031        ),
032        /** Option set with the following active options: {@link #delimiter0 z}, {@link #exactArgs x}, {@link #noRunIfEmpty r}.*/
033        Active_rxz(
034                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/Active_rtxz, /*verbose:*/Active_rtxz_long, 
035                true, 
036                /*active:*/XargsOption.delimiter0, XargsOption.exactArgs, XargsOption.noRunIfEmpty
037        ),
038        /** Option set with the following active options: {@link #delimiter0 z}, {@link #exactArgs x}, {@link #noRunIfEmpty r}.*/
039        Active_rxz_long(
040                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/Active_rtxz, /*verbose:*/Active_rtxz_long, 
041                false, 
042                /*active:*/XargsOption.delimiter0, XargsOption.exactArgs, XargsOption.noRunIfEmpty
043        ),
044        /** Option set with the following active options: {@link #delimiter0 z}, {@link #exactArgs x}, {@link #verbose t}.*/
045        Active_txz(
046                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/Active_rtxz, /*noRunIfEmpty:*/Active_rtxz_long, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
047                true, 
048                /*active:*/XargsOption.delimiter0, XargsOption.exactArgs, XargsOption.verbose
049        ),
050        /** Option set with the following active options: {@link #delimiter0 z}, {@link #exactArgs x}, {@link #verbose t}.*/
051        Active_txz_long(
052                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/Active_rtxz, /*noRunIfEmpty:*/Active_rtxz_long, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
053                false, 
054                /*active:*/XargsOption.delimiter0, XargsOption.exactArgs, XargsOption.verbose
055        ),
056        /** Option set with the following active options: {@link #delimiter0 z}, {@link #noRunIfEmpty r}, {@link #verbose t}.*/
057        Active_rtz(
058                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/Active_rtxz, /*exactArgs:*/Active_rtxz_long, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
059                true, 
060                /*active:*/XargsOption.delimiter0, XargsOption.noRunIfEmpty, XargsOption.verbose
061        ),
062        /** Option set with the following active options: {@link #delimiter0 z}, {@link #noRunIfEmpty r}, {@link #verbose t}.*/
063        Active_rtz_long(
064                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/Active_rtxz, /*exactArgs:*/Active_rtxz_long, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
065                false, 
066                /*active:*/XargsOption.delimiter0, XargsOption.noRunIfEmpty, XargsOption.verbose
067        ),
068        /** Option set with the following active options: {@link #exactArgs x}, {@link #noRunIfEmpty r}, {@link #verbose t}.*/
069        Active_rtx(
070                /*z:*/Active_rtxz, /*delimiter0:*/Active_rtxz_long, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
071                true, 
072                /*active:*/XargsOption.exactArgs, XargsOption.noRunIfEmpty, XargsOption.verbose
073        ),
074        /** Option set with the following active options: {@link #exactArgs x}, {@link #noRunIfEmpty r}, {@link #verbose t}.*/
075        Active_rtx_long(
076                /*z:*/Active_rtxz, /*delimiter0:*/Active_rtxz_long, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
077                false, 
078                /*active:*/XargsOption.exactArgs, XargsOption.noRunIfEmpty, XargsOption.verbose
079        ),
080        /** Option set with the following active options: {@link #delimiter0 z}, {@link #exactArgs x}.*/
081        Active_xz(
082                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/Active_rxz, /*noRunIfEmpty:*/Active_rxz_long, /*t:*/Active_txz, /*verbose:*/Active_txz_long, 
083                true, 
084                /*active:*/XargsOption.delimiter0, XargsOption.exactArgs
085        ),
086        /** Option set with the following active options: {@link #delimiter0 z}, {@link #exactArgs x}.*/
087        Active_xz_long(
088                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/Active_rxz, /*noRunIfEmpty:*/Active_rxz_long, /*t:*/Active_txz, /*verbose:*/Active_txz_long, 
089                false, 
090                /*active:*/XargsOption.delimiter0, XargsOption.exactArgs
091        ),
092        /** Option set with the following active options: {@link #delimiter0 z}, {@link #noRunIfEmpty r}.*/
093        Active_rz(
094                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/Active_rxz, /*exactArgs:*/Active_rxz_long, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/Active_rtz, /*verbose:*/Active_rtz_long, 
095                true, 
096                /*active:*/XargsOption.delimiter0, XargsOption.noRunIfEmpty
097        ),
098        /** Option set with the following active options: {@link #delimiter0 z}, {@link #noRunIfEmpty r}.*/
099        Active_rz_long(
100                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/Active_rxz, /*exactArgs:*/Active_rxz_long, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/Active_rtz, /*verbose:*/Active_rtz_long, 
101                false, 
102                /*active:*/XargsOption.delimiter0, XargsOption.noRunIfEmpty
103        ),
104        /** Option set with the following active options: {@link #delimiter0 z}, {@link #verbose t}.*/
105        Active_tz(
106                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/Active_txz, /*exactArgs:*/Active_txz_long, /*r:*/Active_rtz, /*noRunIfEmpty:*/Active_rtz_long, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
107                true, 
108                /*active:*/XargsOption.delimiter0, XargsOption.verbose
109        ),
110        /** Option set with the following active options: {@link #delimiter0 z}, {@link #verbose t}.*/
111        Active_tz_long(
112                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/Active_txz, /*exactArgs:*/Active_txz_long, /*r:*/Active_rtz, /*noRunIfEmpty:*/Active_rtz_long, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
113                false, 
114                /*active:*/XargsOption.delimiter0, XargsOption.verbose
115        ),
116        /** Option set with the following active options: {@link #exactArgs x}, {@link #noRunIfEmpty r}.*/
117        Active_rx(
118                /*z:*/Active_rxz, /*delimiter0:*/Active_rxz_long, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/Active_rtx, /*verbose:*/Active_rtx_long, 
119                true, 
120                /*active:*/XargsOption.exactArgs, XargsOption.noRunIfEmpty
121        ),
122        /** Option set with the following active options: {@link #exactArgs x}, {@link #noRunIfEmpty r}.*/
123        Active_rx_long(
124                /*z:*/Active_rxz, /*delimiter0:*/Active_rxz_long, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/Active_rtx, /*verbose:*/Active_rtx_long, 
125                false, 
126                /*active:*/XargsOption.exactArgs, XargsOption.noRunIfEmpty
127        ),
128        /** Option set with the following active options: {@link #exactArgs x}, {@link #verbose t}.*/
129        Active_tx(
130                /*z:*/Active_txz, /*delimiter0:*/Active_txz_long, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/Active_rtx, /*noRunIfEmpty:*/Active_rtx_long, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
131                true, 
132                /*active:*/XargsOption.exactArgs, XargsOption.verbose
133        ),
134        /** Option set with the following active options: {@link #exactArgs x}, {@link #verbose t}.*/
135        Active_tx_long(
136                /*z:*/Active_txz, /*delimiter0:*/Active_txz_long, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/Active_rtx, /*noRunIfEmpty:*/Active_rtx_long, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
137                false, 
138                /*active:*/XargsOption.exactArgs, XargsOption.verbose
139        ),
140        /** Option set with the following active options: {@link #noRunIfEmpty r}, {@link #verbose t}.*/
141        Active_rt(
142                /*z:*/Active_rtz, /*delimiter0:*/Active_rtz_long, /*x:*/Active_rtx, /*exactArgs:*/Active_rtx_long, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
143                true, 
144                /*active:*/XargsOption.noRunIfEmpty, XargsOption.verbose
145        ),
146        /** Option set with the following active options: {@link #noRunIfEmpty r}, {@link #verbose t}.*/
147        Active_rt_long(
148                /*z:*/Active_rtz, /*delimiter0:*/Active_rtz_long, /*x:*/Active_rtx, /*exactArgs:*/Active_rtx_long, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
149                false, 
150                /*active:*/XargsOption.noRunIfEmpty, XargsOption.verbose
151        ),
152        /** Option set with the following active options: {@link #delimiter0 z}.*/
153        Active_z(
154                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/Active_xz, /*exactArgs:*/Active_xz_long, /*r:*/Active_rz, /*noRunIfEmpty:*/Active_rz_long, /*t:*/Active_tz, /*verbose:*/Active_tz_long, 
155                true, 
156                /*active:*/XargsOption.delimiter0
157        ),
158        /** Option set with the following active options: {@link #delimiter0 z}.*/
159        Active_z_long(
160                /*z:*/null /*already set*/, /*delimiter0:*/null /*already set*/, /*x:*/Active_xz, /*exactArgs:*/Active_xz_long, /*r:*/Active_rz, /*noRunIfEmpty:*/Active_rz_long, /*t:*/Active_tz, /*verbose:*/Active_tz_long, 
161                false, 
162                /*active:*/XargsOption.delimiter0
163        ),
164        /** Option set with the following active options: {@link #exactArgs x}.*/
165        Active_x(
166                /*z:*/Active_xz, /*delimiter0:*/Active_xz_long, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/Active_rx, /*noRunIfEmpty:*/Active_rx_long, /*t:*/Active_tx, /*verbose:*/Active_tx_long, 
167                true, 
168                /*active:*/XargsOption.exactArgs
169        ),
170        /** Option set with the following active options: {@link #exactArgs x}.*/
171        Active_x_long(
172                /*z:*/Active_xz, /*delimiter0:*/Active_xz_long, /*x:*/null /*already set*/, /*exactArgs:*/null /*already set*/, /*r:*/Active_rx, /*noRunIfEmpty:*/Active_rx_long, /*t:*/Active_tx, /*verbose:*/Active_tx_long, 
173                false, 
174                /*active:*/XargsOption.exactArgs
175        ),
176        /** Option set with the following active options: {@link #noRunIfEmpty r}.*/
177        Active_r(
178                /*z:*/Active_rz, /*delimiter0:*/Active_rz_long, /*x:*/Active_rx, /*exactArgs:*/Active_rx_long, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/Active_rt, /*verbose:*/Active_rt_long, 
179                true, 
180                /*active:*/XargsOption.noRunIfEmpty
181        ),
182        /** Option set with the following active options: {@link #noRunIfEmpty r}.*/
183        Active_r_long(
184                /*z:*/Active_rz, /*delimiter0:*/Active_rz_long, /*x:*/Active_rx, /*exactArgs:*/Active_rx_long, /*r:*/null /*already set*/, /*noRunIfEmpty:*/null /*already set*/, /*t:*/Active_rt, /*verbose:*/Active_rt_long, 
185                false, 
186                /*active:*/XargsOption.noRunIfEmpty
187        ),
188        /** Option set with the following active options: {@link #verbose t}.*/
189        Active_t(
190                /*z:*/Active_tz, /*delimiter0:*/Active_tz_long, /*x:*/Active_tx, /*exactArgs:*/Active_tx_long, /*r:*/Active_rt, /*noRunIfEmpty:*/Active_rt_long, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
191                true, 
192                /*active:*/XargsOption.verbose
193        ),
194        /** Option set with the following active options: {@link #verbose t}.*/
195        Active_t_long(
196                /*z:*/Active_tz, /*delimiter0:*/Active_tz_long, /*x:*/Active_tx, /*exactArgs:*/Active_tx_long, /*r:*/Active_rt, /*noRunIfEmpty:*/Active_rt_long, /*t:*/null /*already set*/, /*verbose:*/null /*already set*/, 
197                false, 
198                /*active:*/XargsOption.verbose
199        );
200        private XargsOptionSet_rtxz(
201                XargsOptionSet_rtxz z, XargsOptionSet_rtxz delimiter0, XargsOptionSet_rtxz x, XargsOptionSet_rtxz exactArgs, XargsOptionSet_rtxz r, XargsOptionSet_rtxz noRunIfEmpty, XargsOptionSet_rtxz t, XargsOptionSet_rtxz verbose, 
202                boolean useAcronym,
203                XargsOption... activeOptions
204        ) {
205                this.z = z == null ? this : z;
206                this.delimiter0 = delimiter0 == null ? this : delimiter0;
207                this.x = x == null ? this : x;
208                this.exactArgs = exactArgs == null ? this : exactArgs;
209                this.r = r == null ? this : r;
210                this.noRunIfEmpty = noRunIfEmpty == null ? this : noRunIfEmpty;
211                this.t = t == null ? this : t;
212                this.verbose = verbose == null ? this : verbose;
213                this.useAcronym = useAcronym;
214                this.options = activeOptions.length == 0 ? EnumSet.noneOf(XargsOption.class) : EnumSet.copyOf(Arrays.asList(activeOptions));
215        }
216        private final boolean useAcronym;
217        /**
218         * Option {@code "-z"}: Input items are terminated by a null character instead of by 
219                        whitespace, and the quotes and backslash are not special (every
220                        character is taken literally). Disables the end of file string,
221                        which is treated like any other argument. Useful when input items 
222                        might contain white space, quote marks, or backslashes. The find 
223                        --print0 option produces input suitable for this mode.
224                        <p>
225                        (This option is ignored if an explicit delimiter operand is specified).
226         * <p>
227         * The option {@code "-z"} is equivalent to the {@code "--}{@link #delimiter0 delimiter0}{@code "} option.
228         * <p>
229         * Technically speaking, this field points to a set with the options of the 
230         * current set plus the option {@code "-z"}. If the option {@code "-z"}
231         * is already set, the field {@code z} points to the enum constant itself
232         * as it already represents the current set of options.
233         */
234        public final XargsOptionSet_rtxz z;
235        /**
236         * Option {@code "--delimiter0"}: Input items are terminated by a null character instead of by 
237                        whitespace, and the quotes and backslash are not special (every
238                        character is taken literally). Disables the end of file string,
239                        which is treated like any other argument. Useful when input items 
240                        might contain white space, quote marks, or backslashes. The find 
241                        --print0 option produces input suitable for this mode.
242                        <p>
243                        (This option is ignored if an explicit delimiter operand is specified).
244         * <p>
245         * The option {@code "--delimiter0"} is equivalent to the {@code "-}{@link #z z}{@code "} option.
246         * <p>
247         * Technically speaking, this field points to a set with the options of the 
248         * current set plus the option {@code "--delimiter0"}. If the option {@code "--delimiter0"}
249         * is already set, the field {@code delimiter0} points to the enum constant itself
250         * as it already represents the current set of options.
251         */
252        public final XargsOptionSet_rtxz delimiter0;
253        /**
254         * Option {@code "-x"}: Terminate immediately if {@code maxArgs} is specified but the found
255                        number of variable items is less than {@code maxArgs}.          
256<p>
257                        (This option is ignored if no {@code maxArgs} operand is specified).
258         * <p>
259         * The option {@code "-x"} is equivalent to the {@code "--}{@link #exactArgs exactArgs}{@code "} option.
260         * <p>
261         * Technically speaking, this field points to a set with the options of the 
262         * current set plus the option {@code "-x"}. If the option {@code "-x"}
263         * is already set, the field {@code x} points to the enum constant itself
264         * as it already represents the current set of options.
265         */
266        public final XargsOptionSet_rtxz x;
267        /**
268         * Option {@code "--exactArgs"}: Terminate immediately if {@code maxArgs} is specified but the found
269                        number of variable items is less than {@code maxArgs}.          
270<p>
271                        (This option is ignored if no {@code maxArgs} operand is specified).
272         * <p>
273         * The option {@code "--exactArgs"} is equivalent to the {@code "-}{@link #x x}{@code "} option.
274         * <p>
275         * Technically speaking, this field points to a set with the options of the 
276         * current set plus the option {@code "--exactArgs"}. If the option {@code "--exactArgs"}
277         * is already set, the field {@code exactArgs} points to the enum constant itself
278         * as it already represents the current set of options.
279         */
280        public final XargsOptionSet_rtxz exactArgs;
281        /**
282         * Option {@code "-r"}: If the standard input does not contain any nonblanks, do not run the
283                        command. Normally, the command is run once even if there is no 
284                        input.
285         * <p>
286         * The option {@code "-r"} is equivalent to the {@code "--}{@link #noRunIfEmpty noRunIfEmpty}{@code "} option.
287         * <p>
288         * Technically speaking, this field points to a set with the options of the 
289         * current set plus the option {@code "-r"}. If the option {@code "-r"}
290         * is already set, the field {@code r} points to the enum constant itself
291         * as it already represents the current set of options.
292         */
293        public final XargsOptionSet_rtxz r;
294        /**
295         * Option {@code "--noRunIfEmpty"}: If the standard input does not contain any nonblanks, do not run the
296                        command. Normally, the command is run once even if there is no 
297                        input.
298         * <p>
299         * The option {@code "--noRunIfEmpty"} is equivalent to the {@code "-}{@link #r r}{@code "} option.
300         * <p>
301         * Technically speaking, this field points to a set with the options of the 
302         * current set plus the option {@code "--noRunIfEmpty"}. If the option {@code "--noRunIfEmpty"}
303         * is already set, the field {@code noRunIfEmpty} points to the enum constant itself
304         * as it already represents the current set of options.
305         */
306        public final XargsOptionSet_rtxz noRunIfEmpty;
307        /**
308         * Option {@code "-t"}: Print the command line on the standard error output before executing
309                        it.
310         * <p>
311         * The option {@code "-t"} is equivalent to the {@code "--}{@link #verbose verbose}{@code "} option.
312         * <p>
313         * Technically speaking, this field points to a set with the options of the 
314         * current set plus the option {@code "-t"}. If the option {@code "-t"}
315         * is already set, the field {@code t} points to the enum constant itself
316         * as it already represents the current set of options.
317         */
318        public final XargsOptionSet_rtxz t;
319        /**
320         * Option {@code "--verbose"}: Print the command line on the standard error output before executing
321                        it.
322         * <p>
323         * The option {@code "--verbose"} is equivalent to the {@code "-}{@link #t t}{@code "} option.
324         * <p>
325         * Technically speaking, this field points to a set with the options of the 
326         * current set plus the option {@code "--verbose"}. If the option {@code "--verbose"}
327         * is already set, the field {@code verbose} points to the enum constant itself
328         * as it already represents the current set of options.
329         */
330        public final XargsOptionSet_rtxz verbose;
331        private final EnumSet<XargsOption> options;
332        
333        //inherit javadoc
334        @Override
335        public Class<XargsOption> optionType() {
336                return XargsOption.class;
337        }
338        //inherit javadoc
339        @Override
340        public boolean isSet(XargsOption option) {
341                return options.contains(option);
342        }
343        //inherit javadoc
344        @Override
345        public int size() {
346                return options.size();
347        }
348        /**
349         * Returns the set with the active options. The returned set a new defensive
350         * copy instance created when this method is called, modifications of this
351         * set will therefore not alter {@code this} option set.
352         * 
353         * @return a copy of the set with the active options.
354         */
355        @Override
356        public EnumSet<XargsOption> asSet() {
357                return EnumSet.copyOf(options);
358        }
359        /**
360         * Returns an immutable iterator with the active options of this option set.
361         * 
362         * @return an immutable iterator for over the active options
363         */
364        @Override
365        public Iterator<XargsOption> iterator() {
366                return Collections.unmodifiableSet(options).iterator();
367        }
368        /**
369         * Returns true if the {@link Option#acronym() acronym} should be used in
370         * for the specified {@code option} string representations. 
371         * <p>
372         * In particular and independent from the {@code option} argument, this 
373         * option set returns true if the last option added to this set was an 
374         * acronym, and false if it was a long option name. 
375         * <p>
376         * For instance, the set defined as
377         * <pre>
378         *    XargsOptionSet_rtxz.delimiter0.x;
379         * </pre>
380         * uses acronyms, that is, this method always returns true for the above 
381         * set. 
382         * <p>
383         * On the other hand, long option names are used and this method always 
384         * returns false for the set
385         * <pre>
386         *    XargsOptionSet_rtxz.z.exactArgs;
387         * </pre>
388         * <p>
389         * Note that a repeated option is <i>not</i> treated as the last set option.
390         * For instance, the first and last option of the following set are 
391         * equivalent and acronyms are used:
392         * <pre>
393         *    XargsOptionSet_rtxz.z.x.delimiter0;
394         * </pre>
395         * <p>
396         * This method always returns true for the empty set with no active options.
397         *  
398         * @param option
399         *            the option of interest, has no impact on the result returned
400         *            by this method
401         * @return true if option acronyms should be used for string representations
402         *         of any option of this option set
403         */
404        @Override
405        public boolean useAcronymFor(XargsOption option) {
406                return useAcronym;
407        }
408}