src/jdk.jpackage/share/classes/jdk/jpackage/internal/FileAssociation.java
author herrick
Fri, 18 Oct 2019 14:14:37 -0400
branchJDK-8200758-branch
changeset 58696 61c44899b4eb
permissions -rw-r--r--
8223325: Improve wix sources generated by jpackage Submitted-by: asemenyuk Reviewed-by: aherrick, almatvee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
58696
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     1
/*
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     2
 * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     4
 *
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    10
 *
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    15
 * accompanied this code).
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    16
 *
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    20
 *
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    23
 * questions.
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    24
 */
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    25
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    26
package jdk.jpackage.internal;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    27
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    28
import java.io.File;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    29
import java.nio.file.Path;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    30
import java.util.*;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    31
import java.util.stream.Collectors;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    32
import static jdk.jpackage.internal.StandardBundlerParam.*;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    33
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    34
final class FileAssociation {
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    35
    void verify() {
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    36
        if (extensions.isEmpty()) {
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    37
            Log.error(I18N.getString(
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    38
                    "message.creating-association-with-null-extension"));
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    39
        }
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    40
    }
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    41
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    42
    static List<FileAssociation> fetchFrom(Map<String, ? super Object> params) {
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    43
        String launcherName = APP_NAME.fetchFrom(params);
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    44
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    45
        return FILE_ASSOCIATIONS.fetchFrom(params).stream().filter(
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    46
                Objects::nonNull).map(fa -> {
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    47
                    FileAssociation assoc = new FileAssociation();
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    48
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    49
                    assoc.launcherPath = Path.of(launcherName);
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    50
                    assoc.description = FA_DESCRIPTION.fetchFrom(fa);
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    51
                    assoc.extensions = Optional.ofNullable(
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    52
                            FA_EXTENSIONS.fetchFrom(fa)).orElse(Collections.emptyList());
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    53
                    assoc.mimeTypes = Optional.ofNullable(
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    54
                            FA_CONTENT_TYPE.fetchFrom(fa)).orElse(Collections.emptyList());
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    55
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    56
                    File icon = FA_ICON.fetchFrom(fa);
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    57
                    if (icon != null) {
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    58
                        assoc.iconPath = icon.toPath();
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    59
                    }
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    60
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    61
                    return assoc;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    62
                }).collect(Collectors.toList());
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    63
    }
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    64
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    65
    Path launcherPath;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    66
    Path iconPath;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    67
    List<String> mimeTypes;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    68
    List<String> extensions;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    69
    String description;
61c44899b4eb 8223325: Improve wix sources generated by jpackage
herrick
parents:
diff changeset
    70
}