1 /*
2 * This file is part of hyphenType. hyphenType is free software: you can
3 * redistribute it and/or modify it under the terms of the GNU General Public
4 * License as published by the Free Software Foundation, either version 3 of the
5 * License, or (at your option) any later version. hyphenType is distributed in
6 * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
7 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
8 * the GNU General Public License for more details. You should have received a
9 * copy of the GNU General Public License along with hyphenType. If not, see
10 * <http://www.gnu.org/licenses/>.
11 */
12 package org.hyphenType.datastructure.annotations;
13
14 import java.io.File;
15 import java.lang.annotation.ElementType;
16 import java.lang.annotation.Retention;
17 import java.lang.annotation.RetentionPolicy;
18 import java.lang.annotation.Target;
19
20 /**
21 * @author Aurelio Akira M. Matsui
22 */
23 @Retention(RetentionPolicy.RUNTIME)
24 @Target(ElementType.METHOD)
25 public @interface OptionValue {
26 String name() default "";
27
28 String option();
29
30 boolean mandatory() default false;
31
32 /**
33 * The separator that a user can use to separate elements of arrays, if the
34 * type of this option value is an array. This parameter will be ignored if
35 * the type of this option value is not an array.
36 *
37 * @return The separator for array values.
38 */
39 String arraySeparator() default ",";
40
41 /**
42 * If true and if the type of this option value is an array, hyphenType will
43 * use {@link File#pathSeparator} despite of the value of
44 * {@link OptionValue#arraySeparator()}. Setting this parameter to true
45 * makes it easy to build arrays that behave accordingly to the platform.
46 *
47 * @return
48 */
49 boolean arrayUseFileSeparator() default false;
50 }