1 /* 2 * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 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", 48 String.class, 49 params -> { 50 String nm = APP_NAME.fetchFrom(params); 51 if (nm == null) return null; 52 53 String version = VERSION.fetchFrom(params); 54 if (version == null) { 55 return nm; 56 } else { 57 return nm + "-" + version; 58 } 59 }, 60 (s, p) -> s); 61 62 static final BundlerParamInfo<String> APP_REGISTRY_NAME = 63 new StandardBundlerParam<> ( 64 Arguments.CLIOptions.WIN_REGISTRY_NAME.getId(), 65 String.class, 66 params -> { 67 String nm = APP_NAME.fetchFrom(params); 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 }