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.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", 49 String.class, 50 params -> { 51 String nm = APP_NAME.fetchFrom(params); 52 if (nm == null) return null; 53 54 String version = VERSION.fetchFrom(params); 55 if (version == null) { 56 return nm; 57 } else { 58 return nm + "-" + version; 59 } 60 }, 61 (s, p) -> s); 62 63 static final BundlerParamInfo<String> APP_REGISTRY_NAME = 64 new StandardBundlerParam<> ( 65 Arguments.CLIOptions.WIN_REGISTRY_NAME.getId(), 66 String.class, 67 params -> { 68 String nm = APP_NAME.fetchFrom(params); 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 = | 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.incubator.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.incubator.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", 49 String.class, 50 params -> { 51 String nm = APP_NAME.fetchFrom(params); 52 if (nm == null) return null; 53 54 String version = VERSION.fetchFrom(params); 55 if (version == null) { 56 return nm; 57 } else { 58 return nm + "-" + version; 59 } 60 }, 61 (s, p) -> s); 62 63 static final StandardBundlerParam<String> MENU_GROUP = 64 new StandardBundlerParam<>( 65 Arguments.CLIOptions.WIN_MENU_GROUP.getId(), 66 String.class, 67 params -> I18N.getString("param.menu-group.default"), 68 (s, p) -> s 69 ); 70 71 static final BundlerParamInfo<Boolean> INSTALLDIR_CHOOSER = 72 new StandardBundlerParam<> ( 73 Arguments.CLIOptions.WIN_DIR_CHOOSER.getId(), 74 Boolean.class, 75 params -> Boolean.FALSE, 76 (s, p) -> Boolean.valueOf(s) 77 ); 78 79 static final BundlerParamInfo<String> WINDOWS_INSTALL_DIR = |