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 name, String description, String id, 39 Class<T> valueType, 40 Function<Map<String, ? super Object>, T> defaultValueFunction, 41 BiFunction<String, 42 Map<String, ? super Object>, T> stringConverter) { 43 super(name, description, id, valueType, 44 defaultValueFunction, stringConverter); 45 } 46 47 static final BundlerParamInfo<String> INSTALLER_FILE_NAME = 48 new StandardBundlerParam<> ( 49 I18N.getString("param.installer-name.name"), 50 I18N.getString("param.installer-name.description"), 51 "win.installerName", 52 String.class, 53 params -> { 54 String nm = APP_NAME.fetchFrom(params); 55 if (nm == null) return null; 56 57 String version = VERSION.fetchFrom(params); 58 if (version == null) { 59 return nm; 60 } else { 61 return nm + "-" + version; 62 } 63 }, 64 (s, p) -> s); 65 66 static final BundlerParamInfo<String> APP_REGISTRY_NAME = 67 new StandardBundlerParam<> ( 68 I18N.getString("param.registry-name.name"), 69 I18N.getString("param.registry-name.description"), 70 Arguments.CLIOptions.WIN_REGISTRY_NAME.getId(), 71 String.class, 72 params -> { 73 String nm = APP_NAME.fetchFrom(params); 74 if (nm == null) return null; 75 76 return nm.replaceAll("[^-a-zA-Z\\.0-9]", ""); 77 }, 78 (s, p) -> s); 79 80 static final StandardBundlerParam<String> MENU_GROUP = 81 new StandardBundlerParam<>( 82 I18N.getString("param.menu-group.name"), 83 I18N.getString("param.menu-group.description"), 84 Arguments.CLIOptions.WIN_MENU_GROUP.getId(), 85 String.class, 86 params -> params.containsKey(VENDOR.getID()) 87 ? VENDOR.fetchFrom(params) 88 : params.containsKey(CATEGORY.getID()) 89 ? CATEGORY.fetchFrom(params) 90 : I18N.getString("param.menu-group.default"), 91 (s, p) -> s 92 ); 93 94 static final BundlerParamInfo<Boolean> INSTALLDIR_CHOOSER = 95 new StandardBundlerParam<> ( 96 I18N.getString("param.installdir-chooser.name"), 97 I18N.getString("param.installdir-chooser.description"), 98 Arguments.CLIOptions.WIN_DIR_CHOOSER.getId(), 99 Boolean.class, 100 params -> Boolean.FALSE, 101 (s, p) -> Boolean.valueOf(s) 102 ); 103 } | 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 -> params.containsKey(VENDOR.getID()) 79 ? VENDOR.fetchFrom(params) 80 : I18N.getString("param.menu-group.default"), 81 (s, p) -> s 82 ); 83 84 static final BundlerParamInfo<Boolean> INSTALLDIR_CHOOSER = 85 new StandardBundlerParam<> ( 86 Arguments.CLIOptions.WIN_DIR_CHOOSER.getId(), 87 Boolean.class, 88 params -> Boolean.FALSE, 89 (s, p) -> Boolean.valueOf(s) 90 ); 91 } |