8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package jdk.jpackage.internal;
27
28 import java.util.Map;
29 import java.util.ResourceBundle;
30 import java.util.function.BiFunction;
31 import java.util.function.Function;
32
33 class WindowsBundlerParam<T> extends StandardBundlerParam<T> {
34
35 private static final ResourceBundle I18N = ResourceBundle.getBundle(
36 "jdk.jpackage.internal.resources.WinResources");
37
38 WindowsBundlerParam(String id, Class<T> valueType,
39 Function<Map<String, ? super Object>, T> defaultValueFunction,
40 BiFunction<String,
41 Map<String, ? super Object>, T> stringConverter) {
42 super(id, valueType, defaultValueFunction, stringConverter);
43 }
44
45 static final BundlerParamInfo<String> INSTALLER_FILE_NAME =
46 new StandardBundlerParam<> (
47 "win.installerName",
68 if (nm == null) return null;
69
70 return nm.replaceAll("[^-a-zA-Z\\.0-9]", "");
71 },
72 (s, p) -> s);
73
74 static final StandardBundlerParam<String> MENU_GROUP =
75 new StandardBundlerParam<>(
76 Arguments.CLIOptions.WIN_MENU_GROUP.getId(),
77 String.class,
78 params -> I18N.getString("param.menu-group.default"),
79 (s, p) -> s
80 );
81
82 static final BundlerParamInfo<Boolean> INSTALLDIR_CHOOSER =
83 new StandardBundlerParam<> (
84 Arguments.CLIOptions.WIN_DIR_CHOOSER.getId(),
85 Boolean.class,
86 params -> Boolean.FALSE,
87 (s, p) -> Boolean.valueOf(s)
88 );
89 }
|
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package jdk.jpackage.internal;
27
28 import java.text.MessageFormat;
29 import java.util.Map;
30 import java.util.ResourceBundle;
31 import java.util.function.BiFunction;
32 import java.util.function.Function;
33
34 class WindowsBundlerParam<T> extends StandardBundlerParam<T> {
35
36 private static final ResourceBundle I18N = ResourceBundle.getBundle(
37 "jdk.jpackage.internal.resources.WinResources");
38
39 WindowsBundlerParam(String id, Class<T> valueType,
40 Function<Map<String, ? super Object>, T> defaultValueFunction,
41 BiFunction<String,
42 Map<String, ? super Object>, T> stringConverter) {
43 super(id, valueType, defaultValueFunction, stringConverter);
44 }
45
46 static final BundlerParamInfo<String> INSTALLER_FILE_NAME =
47 new StandardBundlerParam<> (
48 "win.installerName",
69 if (nm == null) return null;
70
71 return nm.replaceAll("[^-a-zA-Z\\.0-9]", "");
72 },
73 (s, p) -> s);
74
75 static final StandardBundlerParam<String> MENU_GROUP =
76 new StandardBundlerParam<>(
77 Arguments.CLIOptions.WIN_MENU_GROUP.getId(),
78 String.class,
79 params -> I18N.getString("param.menu-group.default"),
80 (s, p) -> s
81 );
82
83 static final BundlerParamInfo<Boolean> INSTALLDIR_CHOOSER =
84 new StandardBundlerParam<> (
85 Arguments.CLIOptions.WIN_DIR_CHOOSER.getId(),
86 Boolean.class,
87 params -> Boolean.FALSE,
88 (s, p) -> Boolean.valueOf(s)
89 );
90
91 static final BundlerParamInfo<String> WINDOWS_INSTALL_DIR =
92 new StandardBundlerParam<>(
93 "windows-install-dir",
94 String.class,
95 params -> {
96 String dir = INSTALL_DIR.fetchFrom(params);
97 if (dir != null) {
98 if (dir.contains(":") || dir.contains("..")) {
99 Log.error(MessageFormat.format(I18N.getString(
100 "message.invalid.install.dir"), dir,
101 APP_NAME.fetchFrom(params)));
102 } else {
103 if (dir.startsWith("\\")) {
104 dir = dir.substring(1);
105 }
106 if (dir.endsWith("\\")) {
107 dir = dir.substring(0, dir.length() - 1);
108 }
109 return dir;
110 }
111 }
112 return APP_NAME.fetchFrom(params); // Default to app name
113 },
114 (s, p) -> s
115 );
116 }
|